当前位置:文档之家› 单片机实验指导书2012版

单片机实验指导书2012版

实验一8051简单编程与调试

实验目的

通过简单小程序的输入和调试,熟悉并掌握Keil 的使用。学会Proteus与Keil的整合调试。

实验基本要求

建立三个项目,分别输入存储块清零、二进制BCD码及二进制ASCII码转换的汇编源程序,并进行仿真调试。画出实验程序的流程框图。

实验步骤

采用Keil Cx51 开发8051单片机应用程序一般需要经过下面几个步骤:

1、在 Vision2集成开发环境中创建一个新项目(Project),并为该项目选定合适的单片机CPU器件。

在菜单栏中选择“Project”→“New Project”,弹出“Create New Project”对话框,选择目标路径,在“文件名”栏中输入项目名后,单击“保存(S)”按钮,弹出“Selecte Device for Target”对话窗口。在此对话窗口的“Data base”栏中,单击“Atmel”前面的“+”号,或者直接双击“Atmel”,在其子类中选择“A T89C51”,确定CPU类型。如图所示。

点击“确定”按钮后,弹出如下的对话框

如果是进行汇编语言编程选择“否”。

2、利用μVision2的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文件。

在μVision2的菜单栏中选择“File”→“New”命令,新建文档,然后在菜单栏中选择“File”→“Save”命令,保存此文档,这时会弹出“Save As”对话窗口,在“文件名(N)”一栏中,为此文本命名,注意要填写扩展名“.asm”。单击“保存(S)”按钮,这样在编写汇编代码时,Keil会自动识别汇编语言的关键字,并以不同的颜色显示,以减少输入代码时出现的语法错误。程序编写完后,再次保存。

在Keil中“Project Workspace”子窗口中,单击“Target 1”前面的“+”号,展开此目录。在“Source Group 1”文件夹上单击鼠标右键,在右键菜单中选择“Add File to ‘Group Source 1’”,弹出“Add File to Group”对话窗口,在此对话窗口的“文件类型”栏中,选择“Asm Source File”,并找到刚才编写的.asm 文件,双击此文件,将其添加到Source Group中,此时“Project Workspace”子窗口如图所示。

3、通过μVision2的各种选项,配置Cx51编译器、Ax51宏汇编器、BL51/.Lx51连接定位器以及Debug 调试器。

在“Project Workspace”窗口中的“Target 1”文件夹上单击鼠标右键,在弹出的右键菜单中选择“Option for Target”选项,这时会弹出“Options for Target”对话窗口,在此对话窗口中选择“Output”选项卡,选中“Create HEX File”选项,如图所示。

4、利用μVision2的构造(Buid)功能对项目中的源程序文件进行编译连接,生成绝对代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源程序中的错误后重新构造整个项目。

在Keil的菜单栏中选择“Project”→“Build Target”命令,编译汇编源文件。如果编译成功,则在“Output Window”子窗口中会显示如图所示的信息;如果编译不成功,双击“Output Window”窗口中的错误信息,则会在编辑窗口中指示错误语句。

5、将没有错误的绝对代码装入μVision2调试器进行仿真调试,调试成功后将HEX文件写入到单片机应用系统的EPROM中。

在Keil的菜单栏中,选择“Debug”→“Start/Stop Debug Session”选项,进入程序调试环境,如图所示。按“F11”键,单步运行程序。在“Project Workspace”窗口中,可以查看累加器、通用寄存器及特殊功能寄存器的变化。在“Memory”窗口中,可以看到每执行一条语句后存储空间的变化。在“Address”栏中,输入“D: 30H”,查看A T89C51的片内直接寻址空间。

程序调试完毕后,再次在菜单栏中选择“Debug”→“Start/Stop Debug Session”选项,退出调试环境。

在Proteus中调试程序

打开Proteus ISIS编辑环境,在菜单栏中选择“File”→“Load Design”弹出“Load ISIS Design File”对话窗口,选择要打开的Proteus的.DSN设计文件。在本实验中,设计文件为本实验子目录下的Basic.DSN

单击鼠标右键选中A T89C51并单击鼠标左键,打开“Edit Component”对话窗口,在此窗口中的“Program

File”栏中,选择先前用Keil生成的.HEX文件,如图所示。

单击Proteus ISIS界面左下角的按钮,进入程序调试状态,并在“Debug”菜单中打开“8051 CPU Registers”、“8051 CPU Internal (IDATA) Memory”及“8051 CPU SFR Memory”三个观察窗口,按“F11”键,单步运行程序。在程序运行过程中,可以在这三个窗口中看到各寄存器及存储单元的动态变化。

Proteus 与Keil整合调试及电路仿真

在Proteus的“Debug”菜单中选择“Use Remote Debug Monitor”选项,如图所示。

选择Keil的“Project”→“Options for Target ‘Target 1’”,在弹出的对话框中,单击Debug选项卡,单击右上部的下三角按钮选择“Proteus VSM Monitor-51 Driver”如图所示。

单击“Setting”进入对话框填写如图所示的IP地址和端口号。

在Keil中,在菜单栏中选择“Debug”→“Start/Stop Debug Session”选项,Keil系统进入调试状态。同时Proteus也进入调试状态。这时可以调整这两个软件窗口的大小,使它们同时出现在桌面上,这样就可以同时观察这两个软件运行的情况了。

在Proteus的调试状态下,在“Debug”菜单中打开“8051 CPU Registers”、“8051 CPU Internal(IDATA) Memory”、“8051 CPU SFR Memory”三个观察窗口,在单步运行程序的过程中,可以在这三个窗口中看到各寄存器以及存储单元的动态变化。

实验内容1

Porteus模型为BASIC.DSN如下图所示。

一、存储块置全“1”源代码:

汇编语言源程序:

ORG 00H

START EQU 30H

MOV R1,#START ;起始地址

MOV R7,#32 ;Rn中设置32字节计数值

MOV A,#0FFH

LOOP: MOV @R1,A

INC R1 ;指向下一个地址

DJNZ R7,LOOP ;计数值减1,不为零继续

SJMP $

END

在下划线处填入适当指令。

输入源程序,编译无误后,用单步执行的方法,观察各个相应存储单元和寄存器中内容的变化。解释START EQU 30H。

【答】将30H定义为START

二、二进制BCD码转换源代码:

汇编语言源程序:

RESULT EQU 30H

ORG 00H

LJMP START

START: MOV SP,#40H ;堆栈指针指向40H

MOV A,#123

LCALL BINTOBAC

SJMP $

BINTOBAC: MOV B,#100

DIV AB ;除以100得百位数

MOV RESULT,A

MOV A,B

MOV B,#10

DIV AB ;余数除以10得十位数

MOV RESULT+1,A

MOV RESULT+2,B ;余数为个位数

RET

END

在下划线处填入适当指令。

用单步执行的方法,观察子程序调用过程中堆栈指针的变化。

三、二进制ASCII码转换源代码:

汇编语言源程序:

RESULT EQU 30H

ORG 00H

START:

MOV A,#1AH

LCALL BINTOHEX ;调用BINTOHEX子程序

LJMP $

BINTOHEX:

MOV DPTR,#ASCIITAB ;表的首址ASCIITAB送DPTR

MOV B,A ;暂存A

SWAP A

ANL A,#0FH ;取A的高四位

MOVC A,@A+DPTR ;查ASCII表

MOV RESULT, A

MOV A,B ;恢复A

ANL A,#0FH ;取低四位

MOVC A,@A+DPTR ;查ASCII表

MOV RESULT+1,A

RET

ASCIITAB:

DB '0123456789ABCDEF' ;定义数字对应的ASCII表

END

在下划线处填入适当指令。

单步运行程序观察查表指令的执行过程。

把LJMP $这条指令注释掉,然后全速运行该程序,然后让其停止观察程序执行到哪里?

【答】一直重复调用不停止

实验内容2

输入、汇编、调试下列四个程序,通过信息窗口观察并回答问题。

1、程序a.asm

ORG 0000H

MOV 30H,#87H

MOV A,#69H

ADD A,30H

NOP

END

问:CY= 0,(A)= F0H,OV= 0,P= 0

将程序中的指令NOP改为指令DA A后

问:CY= 1 ,(A)=56H ,OV= 0 ,P= 0

2、程序b.asm

ORG 0000H

MOV SP,#60H

MOV DPTR,#0A679H

PUSH DPH

PUSH DPL

MOV A,#80H

PUSH ACC

POP B

POP 30H

POP 31H

NOP

END

问:(SP)= 60H,(A)= 80H,(30H)= 79H,(31H)=A6H,

(B)=80H,(DPH)=A6H,(DPL)=79H

3、程序c.asm

ORG 0000H

MOV DPTR,#TAB

MOV A,#05H

MOVC A,@A+DPTR

NOP

ORG 1000H

TAB: DB 6FH,30H,96H,75H,0A8H,0FEH

DB 49H,8AH,5FH,0B6H,7FH,0C4H

END

问:执行完MOVC A,@A+DPTR以后,(A)=FEH

4、程序d.asm

ORG 0000H

MOV A,#02H

MOV B,A

RL A

ADD A,B

MOV DPTR,#TAB

JMP @A+DPTR

NOP

ORG 0800H

TAB: LJMP 1000H

LJMP 2000H

LJMP 3000H

LJMP 4000H

END

问:执行完JMP @A+DPTR以后,PC=0806H

实验二汇编语言程序设计(一)实验目的

通过上机实验掌握单片机汇编语言程序的编写和调试。

实验基本要求

按实验内容上机输入并调试实验程序。画出实验程序的流程框图。

实验内容

Proteus模型为BASIC.DSN。

一、内存块移动

汇编语言源程序:

ORG 00H

START: MOV R0, #30H

MOV R1, #00H ;设置源地址

MOV R2, #40H

MOV R3, #00H ;设置目标地址

MOV R7, #0 ;设置计数值

LOOP: MOV DPH, R0

MOV DPL, R1 ;将源地址(3000H)赋DPTR

MOVX A, @DPTR ;取源地址中的数据

MOV DPH, R2

MOV DPL, R3 ;将目标地址(4000H)赋DPTR

MOVX @DPTR, A ;将源地址中的数据送到目标地址

INC R1 ;源地址加1

INC R3 ;目标地址加1

DJNZ R7, LOOP

LJMP $

END

输入源程序,编译无误后,用单步执行的方法,观察各个相应存储单元和寄存器中内容的变化。

二、程序转跳表

汇编语言源程序:

ORG 00H

START:

MOV A,#0 ;设置地址偏移量

CALL F UNCENTER

MOV A,#1 ;设置地址偏移量

CALL F UNCENTER

MOV A,#2 ;设置地址偏移量

CALL F UNCENTER

MOV A,#3 ;设置地址偏移量

CALL F UNCENTER

LJMP $

FUNCENTER:

ADD A,ACC ;AJMP为二字节指令,地址偏移量*2

MOV DPTR,#FUNCTAB ;设置基址

JMP @A+DPTR ;跳转到目标地址

FUNCTAB:

AJMP FUNC0

AJMP FUNC1

AJMP FUNC2

AJMP FUNC3

FUNC0: MOV 30H,#0

RET

FUNC1: MOV 31H,#1

RET

FUNC2: MOV 32H,#2

RET

FUNC3: MOV 33H,#3

RET

END

输入源程序,编译无误后,用单步执行的方法,观察各个相应存储单元和寄存器中内容的变化。

三、数据排序

汇编语言源程序:

ORG 00H

S IZE EQU 10 ;数据个数

A RRAY EQU 50H ;数据起始地址

F LA

G BIT 00

H ;交换标志

SORT: MOV R0,#ARRAY ;首地址输入到R0

MOV R7,#SIZE-1 ;数据个数减一输入到R7

CLR FLAG ;交换标志置零

COON: MOV A,@R0 ;将首地址中的内容读到A

MOV R2,A ;将数据写入到R2中

INC R0 ;首地址加一

MOV B,@R0 ;将首地址中的内容读到B

CJNE A,B,NOTEQUAL ;不相等则跳转

SJMP NEXT

NOTEQUAL: JC NEXT ;前小后大,不交换

SETB FLAG ;前大后小,置交换标志

XCH A,@R0 ;交换

DEC R0 ;R0减1

XCH A,@R0

INC R0

NEXT: DJNZ R7,COON ;R7不等于0时转到GOON(即没有交换完) JB FLAG,SORT ;FLAG=1时转到SORT使FLAG清零

SJMP $

END

把数据按从小到大排序

四、调试程序S1.asm

程序:S1.asm

ORG 0000H

MOV R0,#30H

MOV R7,#20H

MOV DPTR,#1000H

LOOP1: CLR A

MOVC A,@A+DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R7,LOOP1

NOP

NOP

LJMP $

ORG 1000H

DB 23H,45H,0A5H,7FH,8DH,0CDH,33H,0BFH

DB 0FH,66H,9AH,8CH,33H,69H,50H,2DH

DB 6DH,45H,0FEH,90H,0ABH,3CH,67H,88H

DB 0EDH,0FFH,00H,21H,63H,9DH,77H,45H

END

思考题:

1、在这个程序中的32个数据原来在哪里?这个程序完成了什么操作?

【答】在片内程序存储区;把程序存储区的32个数据传送到内部30H数据区2、如果把MOVC A,@A+DPTR改成MOVX A,@A+DPTR会发生什么情况?【答】把数据区相应寻址地址里存的数据传送到累加器A

3、程序中的ORG指令起什么作用?

【答】用于定位,把ORG之后的程序放在指定的地址里

4、将上述程序修改成将32个数据传送到外部数据区2050H开始的单元中去。【答】

ORG 0000H

MOV R7,#20H

MOV R0,#10H

MOV R1,#00H

MOV R2,#20H

MOV R3,#50H

LOOP: CLR A

MOV DPH,R0

MOV DPL,R1

MOVC A,@A+DPTR

MOV DPH,R2

MOV DPL,R3

MOVX @DPTR,A

INC R1

INC R3

DJNZ R7,LOOP

ORG 1000H

DB 23H,45H,0A5H,7FH,8DH,0CDH,33H,0BFH

DB 0FH,66H,9AH,8CH,33H,69H,50H,2DH

DB 6DH,45H,0FEH,90H,0ABH,3CH,67H,88H

DB 0EDH,0FFH,00H,21H,63H,9DH,77H,45H

END

实验三汇编语言程序设计(二)

实验目的

通过上机实验掌握单片机汇编语言程序的编写和调试。

实验基本要求

按实验内容上机输入并调试实验程序。画出实验程序的流程框图。

实验内容

一、调试S2.asm、S3.asm两个程序并完成思考题

程序:S2.asm

ORG 0000H

MOV 30H,#68H

MOV 31H,#0AFH

MOV 40H,#9AH

MOV 41H,#59H

MOV R0,#30H

MOV R1,#40H

MOV R7,#02H

CLR C

LOOP2: MOV A,@R0

ADDC A,@R1

MOV @R0,A

INC R0

INC R1

DJNZ R7,LOOP2

MOV A,#00H

ADDC A,#00H

MOV @R0,A

LJMP $

END

思考题:

1、程序运行结束时,(32H)=01H,(31H)=09H,(30H)= 02H

2、观察程序运行时,CY,OV,P,AC标志位的变化。

3、修改原始数据为8421码(压缩BCD码),并把程序改成8421码(压缩BCD码)加法程序,并运行该程序。

ORG 0000H

MOV 30H,#68H

MOV 31H,#82H

MOV 40H,#51H

MOV 41H,#69H

MOV R0,#30H

MOV R1,#40H

MOV R7,#02H

CLR C

LOOP: MOV A,@R0

ADDC A,@R1

DA A

MOV @R0,A

INC R1

INC R0

DJNZ R7,LOOP

MOV A,#00H

ADDC A,#00H

MOV @R0,A

SJMP $

END

程序:S3.asm

ORG 0000H

MOV SP,#60H

MOV A,#68H

MOV B,#7EH

MOV DPTR,#20A8H

MOV R0,#74H

MOV R1,#49H

MOV 08H,#30H

MOV 09H,#50H

SETB RS0

PUSH DPH

PUSH DPL

PUSH B

PUSH ACC

MOV @R0,A

XCH A,B

MOV @R1,A

POP ACC

POP DPL

CLR RS0

NOP

NOP

END

思考题:

1、(A)= 68H,(B)= 68H,(DPH)= 20H,(DPL)= 7EH,(SP)= 62H ,

2、(74H)= 00H,(49H)= 00H,(30H)= 68H,(50H)= 7EH

保护和恢复现场数据的规则是什么?

【答】通过使用堆栈

二、编程并调试B1.asm和B2.asm

B1.asm

已知(30H)=89H,(31H)=41H,编写并调试一个程序:将30H,31H中的内容进行字节分离为四个字节,高四位为零,低四位为分离后的内容,存放在32H~35H的单元中。

ORG 0000H

MOV 30H,#89H

MOV 31H,#41H

MOV R0,#30H

MOV R1,#32H

MOV R7,#02H

LOOP: MOV A,@R0

MOV B,A

SWAP A

ANL A,#0FH

MOV @R1,A

INC R1

MOV A,B

ANL A,#0FH

MOV @R1,A

INC R1

INC R0

DJNZ R7,LOOP

SJMP $

END

B2.asm

已知(30H)=89H,(31H)=41H,编写并调试一个程序:将30H,31H中的内容进行循环右移五次。

实验四功能模块一(I/O口)实验目的

通过实验掌握单片机的输入输出应用。

实验基本要求

按实验内容上机输入并调试实验程序。画出实验程序的流程框图。

实验内容1

1、多路开关指示

AT89C51单片机的P1.0~P1.3接4个二极管,P1.4~P1.7接4个开关,编程读取开关状态,使得对应的发光二极管反映开关状态(开关闭合,对应的灯亮)。

Porteus模型为Multi Switch.DSN如下图所示。

程序设计:

开关状态检测,对于单片机来说,是检测其I/O口的输入。可以轮流检测每个开关状态。根据每个开关的状态让相应的发光二极管指示。

汇编语言源程序:

ORG 00H

START: ;读取P1口数据

;交换A中高四位与低四位的位置

;与0F0H相或

;将开关状态送LED显示

;转移到START

END

问题:

为什么A要与0F0H相或?

2、键盘显示

AT89C51的并行口P3上接4×4键盘,P3.0~P3.3为行线,P3.4~P3.7位2列线,在数码管上显示每个按键的序号。

Porteus模型为4X4KeyBoard.DSN如下图所示。

程序设计:

每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码,计算公式为

键值=行号×行数+列号

假设9号键按下,它所在的行号为2,列号为1,该键的行数为4,则键值为2×4+1=9。

汇编语言源程序:

LINE EQU 30H

ROW EQU 31H

VAL EQU 32H

ORG 00H

START: MOV DPTR,#TABLE ;段码表首地址

MOV P2,#00H ;数码管显示初始化

LSCAN: MOV P3,#0F0H ;列线置高电平,行线置低电平L1: JNB P3.0,L2 ;逐行扫描

LCALL DELAY

JNB P3.0,L2

MOV LINE,#00H ;存行号

LJMP RSCAN

L2: JNB P3.1,L3

LCALL DELAY

JNB P3.1,L3

MOV LINE,#01H ;存行号

LJMP RSCAN

L3: JNB P3.2,L4

LCALL DELAY

JNB P3.2,L4

MOV LINE,#02H ;存行号

LJMP RSCAN

L4: JNB P3.3,L1

LCALL DELAY

JNB P3.3,L1

MOV LINE,#03H ;存行号

RSCAN: MOV P3,#0FH ;行线列线电平互换

C1: JNB P3.4,C2 ;逐列扫描

MOV ROW,#00H ;存列号

LJMP CALCU

C2: JNB P3.5,C3

MOV ROW,#01H ;存列号

LJMP CALCU

C3: JNB P3.6,C4

MOV ROW,#02H ;存列号

LJMP CALCU

C4: JNB P3.7,C1

MOV ROW,#03H ;存列号

CALCU: MOV A,LINE ;根据行号和列号计算键值MOV B,#04H

MUL AB

ADD A,ROW

MOV VAL,A ;存键值

单片机实验指导书

目录 实验一系统认识实验 (2) 实验二端口I/O输入输出实验 (14) 实验三外部中断实验 (17) 实验四定时器实验 (21) 实验五串行口通信实验 (25) 实验六串行通信的调试实验 (29) 实验七数码管静态显示实验 (34) 实验八数码管动态显示实验 (39)

实验一系统认识实验 一、实验目的 1.学习Keil C51编译环境的使用; 2.学习STC单片机的下载软件STC-ISP的使用; 3.掌握51单片机输出端口的使用方法。 二、实验内容 任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。 三、接线方案 单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:

图1-1实验线路 四、实验原理 51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为: MOV P0, #0FFH MOV A, P0 若将P0.0位的数据传送至C中,程序为: SETB P0.0 MOV C, P0.0 五、实验步骤 1、连接串行通信电缆和电源线; 2、根据图1-1实验线路进行电路连接; 3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行” “单片机”; 4、打开实验箱上的电源开关。 5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的 文件; 6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM

单片机原理与应用实验教案

《单片机原理及应用》实验教学大纲 课程编号:B04611016 课程类别:专业课 实验学时:16学时 学分:2.5 适用专业:计算机科学与技术 一、实验教学目的和任务 本课程是计算机及应用专业一门重要的专业课。其教学内容直接面向生产。同时,微机向小型化、超小型化方面发展愈来愈迅猛。单片机应用已渗透社会各个领域,特别在通信技术中的应用,大大提高了通信技术水平。学生应具备这方面的知识与技能,为今后参加工作,打下坚实的基础。 二、实验教学基本要求 本课程是一门很注重实践的课程。以研究MCS-51系列单片机入手,掌握其硬件结构、指令系统和程序设计,以及常用接口技术和典型应用实例。 三、实验教学内容 实验项目一:清零程序 1、实验目的及要求 要求学生掌握软件的结构和键盘的调试。 2、实验内容及学时分配(2学时) (1)了解MCS-51软件的构造 (2)掌握清零程序的输入方法 (3)了解起始伪指令的输入方法 实验项目二:拼字和拆字程序 1、实验目的及要求 要求学生掌握存储器分配和汇编语言的简单应用。

2、实验内容及学时分配(2学时) (1)进一步掌握MCS-51软件的基本使用方法 (2)掌握指令的寻址方式 (3)掌握数据传送指令和地址内容的分配 实验项目三:数据区传送子程序 1、实验目的及要求 要求学生掌握RAM数据存储器实际操作。 2、实验内容及学时分配(2学时) (1)掌握MCS-51逻辑运算指令和位操作指令 (2)进一步掌握数据传送子程序的简单方法 (3)掌握查表程序的编写 实验项目四:数据排序实验 1、实验目的及要求 要求学生掌握汇编语言的应用和实际操作。 2、实验内容及学时分配(2学时) (1)掌握MCS51逻辑运算指令和位操作指令 (2)进一步掌握简单顺序程序的编写和调试方法(3)掌握查表程序的编写 实验项目五:查找相同个数 1、实验目的及要求 熟悉汇编语言程序,使用环移指令和加1指令。 2、实验内容及学时分配(2学时) (1)掌握赋值指令 (2)掌握带进位的环移指令和加1程序的编写实验项目六:双字节无符号数的乘法实验 1、实验目的及要求

单片机实验指导书

μVision2 支持所有的Keil 80C51 的工具软件,包括C51 编译器、宏汇编器、链接器/定位器、软硬件调试器和目标文件到HEX 格式文件转换器等,μVision2 可以自动完成编译、汇编、链接程序等操作。 μVision2 具有强大的软件环境、友好的操作界面和简单快捷的操作方法。 双击桌面上的Keil μVision2 快捷图标,可以进入如图1-1 所示的集成开发调试环境,各种调试工具、命令菜单都集成在此开发环境中。菜单栏提供了各种操作菜单,如编辑器操作、工程维护、程序调试、窗体选择以及操作帮助等。工具栏按钮和快捷键可以快速执行μVision2命令。常用的菜单栏及相对应的工具栏按钮与快捷键介绍如表1-1~表1-6所列。 图1-1μVision2 集成环境界面 表1-1 文件菜单和文件命令(File)

表1-2 编辑菜单和编辑器命令(Edit) 表1-3视图菜单(View)

表1-4工程菜单和工程命令(Project) 表1-5 调试菜单和调试命令(Debug)

表1-6外围器件菜单(Peripheral)

第2章单片机原理实验 通过本章的实验,旨在使学生掌握Keil C51 的操作方法,学习80C51 的指令系统及汇编语言的程序设计方法。 2.1系统认识实验 2.1.1实验目的 1. 学习Keil C51 集成开发环境的操作; 2. 熟悉TD-51 系统板的结构及使用。 2.1.2实验设备 PC机一台 2.1.3实验内容 编写实验程序,将00H~0FH共16个数写入单片机内部RAM的30H~3FH空间。 通过本实验,学生需要掌握Keil C51软件的基本操作,便于后面的学习。 2.1.4实验步骤 1. 创建Keil C51 应用程序 在Keil C51 集成开发环境下使用工程的方法来管理文件,所有的源文件、头文件甚至说明性文档都可以放在工程项目文件里统一管理。 下面创建一个新的工程文件C51.Uv2,以此详细介绍如何创建一个Keil C51 应用程序。 (1)运行Keil C51软件,进入Keil C51集成开发环境。 (2)选择工具栏的Project选项,如图2-1-1 所示,弹出下拉菜单,选择NewProject命令,建立一个新的μVision2工程。这时会弹出如图2-1-2所示的工程文件保存对话框,选择工程目录并输入文件名C51后,单击保存。

单片机实验指导书

单片机实验指导书 一、硬件实验系统介绍 (一)电路原理 实验板的主要组成有STC-89C51,电源开关、复位电路,发光二极管、数码管、键盘、模/数转换电路(ADC0809电路),数/模转换电路(DAC0832电路)、12232F液晶显示电路,温度检测模块、DS1302时钟电路,I2C总线电路(AT24C02电路),串行接口(MAX232电路、MAX485电路),步进电机调速电路等组成。 详细的电路原理图见附件 (二)各模块开关控制简表 二、单片机实验板使用说明 (一)程序下载 1、下载软件为STC-ISP V3.X,建议使用V3.5版本。 2、程序下载前,建议将所有器件的开关置于关闭状态,尤其是MAX485的开关S7,必须关闭;RS232的开关S6必须打开。

3、开始下载程序前,关闭实验板的总电源,等待下载软件提示上电后,再打开实验板电源。 (二)程序运行 1、将程序涉及到的元件开关打开,原则上关闭与程序无关的元件开关。 2、各元件的电源开关均靠近本元件。 (三)注意事项 由于ADC0809采用了最简化设计,使用液晶模块12232F时,须将DAC0832和ADC0809的电源开关打开,选择开关S13,S14拨向ADC0809侧,同时,程序中将P1.1和P1.2清零。 2. LED显示可采用动态扫描或串行74LS164显示,采用一种显示方式时,须将另一种方式的电源关闭,以免发生冲突。使用动态扫描显示时,拨码开关均拨向下方与地断开,由74LS14(反向驱动)控制位选;使用串行静态显示时,拨码开关拨向上方与地接通。 3.由于P2.5作了DS1302的片选控制,在电机调速模块应使其清零 三、Keil软件使用简要说明 1、建立工程文件:单击“工程”菜单中的“新工程”命令。选择路径、输入项目名称,不需要扩 展名。在Select Device for Target窗口中,选择“Atmel”中的“89C**”系列。 2、工程对象选项设定:单击“工程”菜单中的“options for Target属性”命令。 a)在“目标”标签中,晶体X晶振频率(MHz),默认为24MHz,是CPU所支持的最高频率, 可以有针对性修改。其它采用默认设置。 b)在“输出”标签中,在“建立 hex格式文件”前打勾选中,其它采用默认设置。 3、建立源程序文件:单击“文件”菜单中的“新建”,编辑源程序。完成后,选择“保存”文件, 扩展名为“.asm”格式保存。 4、添加文件到当前项目组中。 a)单击工程管理器中“Target1”前的“+”号,出现“Source Group1”后再单击,加亮 后右击,在下拉窗口中选择“增加文件到Source Group1”。 b)选择刚才以ASM格式编辑保存的文件*.ASM(注意文件类型),鼠标单击“Add”按钮。 5、编译文件:执行“工程”菜单中的“重新构造所有目标文件”。无错误时,自动产生“*.hex” 文件。 6、如果有错误,根据提示信息修改源程序,直至编译通过。编译通过后将产生以HEX为扩展名的 目标文件。 硬件及接口实验 实验一简单点亮历程的流水灯实验 一、实验题目 1.P2口做输出口,接八只发光二极管,编写程序,使发光二极管从上到下循环点亮,时间间隔1S。 2.P2口做输出口,接八只发光二极管,编写程序,使发光二极管从下到上循环点亮,时间间隔2S。 二、实验目的 1.学习熟悉汇编软件Keil和程序下载软件的使用。 2.学习P2口的使用方法和移位指令的使用。 3.学习延时子程序的编写和使用。 三、有关说明 P2口为准双向口,P2口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“l”,该位才能作为输入。51单片机中所有口锁存器在复位时均置为“l"如果后来在口锁存器写过“0”,在需要时应写入一个“l”,使它成为一个输入。 再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

单片机实验指导书

目录 Wave 6000(fo r wind o ws)使用简介 (1) 存储器块清零 (2) 数据传送实验 (3) 二进制到ASCII码转换 (4) P口输入输出 (5) 计数器实验 (6) 定时器实验 (7) 外部中断实验 (8) 串并转换实验 (9) *串行口、外部中断综合实验 (11)

Wave 6000 (for windows) 使用简介 一、注意: 1、目录不使用长文件名,编译器不支持长文件名(缺省目录为C:\W AVE6000)。 2、C:\WAVE6000\HELP文件夹内有帮助文件。 3、参考网址: https://www.doczj.com/doc/5219352208.html, 二、基本操作步骤简介:[1] 1、双击桌面图标; 2、文件→关闭项目(目的:避免编译器不编译当前编辑的源程序文件); 3、仿真器→仿真器设置→仿真器→:选择仿真器,S51; 选择CPU,8752; 使用伟福软件模拟器,划勾;[2] 4、文件→新建文件→(键入ORG 00H后)另存为…… (在文件名输入处,键入****.asm,****处为任意文件名); 5、完成程序输入,保存; 6、项目→编译;(如果程序有语法错误等,屏幕下方有提示信息,其中有问题代码所在行数。) 7、执行→…… 8、窗口→CPU窗口(打开了Project,SFR,Disassembly,两个窗口):[3] Project,SFR窗口包含Project,REG,SFR,Watch四个小窗口;在SFR窗口,依次单击ACC,B,IE,IP,P0,P1,P2,P3,PCON,PSW等寄存器,观察屏幕上的变化;每单击一个上述寄存器后,用数字小键盘输入任意两位数,观察变化,找出对应关系; 9、窗口→数据窗口→DATA(内部RAM) CODE(ROM) XDATA(外部RAM), 上述三个窗口,单击任一单元,可通过键盘修改数据;右击,练习菜单提示。在相关程序单步运行时,可以即时观察数据变化。 注: [1] 帮助→WAVE6000使用手册,可以打开pdf格式说明文件,详解在第23至52页; [2] 在使用仿真头和实验台进行实验时,不划勾,不使用“伟福软件模拟器”; [3] 界面上出现的任何窗口都可以拖动位置和尺寸,而且关闭后可以通过窗口打开。

单片机实验指导书

《单片机应用实验》 实 验 指 导 书

目录 实验一Keil μVision的使用 (1) 实验二汇编语言程序设计 (5) 实验三C51程序设计与Proteus仿真 (9) 实验四中断与定时/计数器 (13)

实验一 Keil μVision 的使用 一、实验目的 掌握Keil μVision 的使用; 掌握单片机汇编程序的调试方法。 二、实验原理 Keil μVision 是美国Keil Software 公司出品的单片机集成开发环境,具有单片机C 语言或汇编语言程序编辑、编译或汇编、连接、调试等功能,允许设置断点,查看程序存储器、数据存储器和SFR 的内容,以图形的方式显示SFR 或变量内容随时间的变化,是目前单片机开发最常用的软件工具。 运行Keil μVision 后,程序窗口如图1-1所示。其中项目窗口用于管理工程项目所包含的文件,源程序窗口用于程序编辑,编译信息窗口输出编译或汇编的状态信息。各个窗口可以悬浮(Floating )在主窗口之上,也可以停泊(Docking )在主窗口中,单击程序主窗口Window 菜单的Rest View to Defaults 命令,将窗口恢复成默认状态。 图1-1 Keil μVision 程序窗口 三、实验环境 Windows XP ; Keil μVision 4; 四、实验内容 1.建立项目 双击桌面Keil μVision 图标或单击开始菜单的Keil μVision 命令运行程序,出现图1-1所示的程序窗口。 在主程序菜单栏单击Project 菜单的New μVision Project 命令,出现创建新文件对话框,为项目文件命名并选择存放路径(建议为每一个项目建立独立的文件夹)。单击保存按钮,出现图1-2所示器件选择对话框,在Data base 列表中选择Atmel 公司的A T89C52,作为项 项目窗口 源程序窗口 编译信息窗口

单片机实验指导书

单片机实验指导书

目录 一、基础知识 1.A VR MEGA16学习板简介 (1) 2.A VR Studio 使用环境简介 (3) 3.ICC使用环境简介 (7) 4.下载程序说明 (12) 二、实验内容 1.熟悉实验环境 (14) 2.I/O口实验 (18) 3.秒表时间显示实验 (19) 4.串口通信实验 (21)

一、基础知识 1. AVR MEGA16学习板简介 a. 简介: A VR MEGA16 学习板专为A VR单片机初学者设计,简单实用是本学习板的最大特点。布局合理,模块划分清晰符合正常使用习惯。电路简单,安排了最常用最实用的功能电路,接口上尽量不复用。人性化设计,学习板没有追求那些高级的热门的功能实验,集成了A VR单片机学习必不可少的A VR ISP下载线,可以直接与PC机连接通过STK500 标准界面进行程序下载。 b. 学习板实物图片: c. 硬件资源: AT Mega16,A VR 单片机主芯片,内包含有:16K Flash、512Byte EEPROM、1K SRAM。 学习板上CPU 可升级到AT Mega32,以完成更大容量需要。 AT24C02,I2C总线器件,EEPROM数据存储器,256Byte EEPROM。 74HC595,SPI 总线器件,SPI 总线并口扩展器件,8 位移位寄存器。 DS1302,时钟芯片。 RS232,RS232 接口芯片。 8 个输入按键、1 个中断输入按键、1 个复位按键。 4 位动态扫描LED 数码管、8 位LED 发光二极管。 1 个无源蜂鸣器,1 个A/D 输入可调电阻器。 LCD 接口,液晶显示屏接口,可接LCD1602 及LCD12864 液晶屏,LCD 为选配件。 A VR JTAG 仿真接口,A VR ISP 下载接口。 板上集成有STK500 V2.0 版本的A VRISP 下载器 d. A VR MEGA16学习板接口说明:

单片机实验指导书

单片机原理实验指导书

目录 实验1:汇编分支程序和循环程序示例 (1) 实验2:汇编流水灯程序固化 (3) 实验3:流水灯的C51语言实现 (5) 实验4:左右循环流水灯 (7) 实验5:简易秒计数器 (9) 实验6:独立按键接口 (11) 实验7:矩阵按键接口 (19) 实验8:LCD1602显示接口 (23) 实验9:单外部中断示例 (27) 实验10:双外部中断示例 (29) 实验11:计数器应用示例 (31) 实验12:定时器(定时较大和较小)应用示例 (33) 实验13:门控应用示例 (35) 实验14:PC与单片机通信 (38) 实验15:DS18B20温度显示 (40) 实验16:EEPROM读写 (45) 实验17:TLC5615的DA转换应用 (51) 实验18:TLC549的AD转换应用 (54)

实验1:汇编分支程序和循环程序示例 实验目的: 理解,熟悉汇编语言分支程序和循环程序编程方式,方法。 实验要求: 1 分支程序: 设变量x以补码的形式存放在片内RAM的30H单元,变量y与x的关系是:当x大于0时,y=x;当x=0时,y=20H;当x小于0时,y=x+5。编制程序,根据x的大小求y并送回原单元。 2.循环程序: 编写程序,将内部RAM的30H至3FH单元初始化为00H实验原理: 图1.1 分支程序 图1.2 循环程序 实验步骤:

1.应用KEIL软件建立工程,编写代码 2.编译代码,生成HEX文件,进入调试模式。 3.查看相关寄存器以及RAM的变化。 4.程序代码: ;分支程序示例 ORG 0000H LJMP START ORG 0040H START: MOV A,30H ; JZ NEXT ; A中数据为0,转NEXT ANL A,#80H ; 否,保留符号位 JZ DONE ; X>0 MOV A,#50H ; X<0 ADD A,30H MOV 30H,A ; SJMP DONE ; NEXT: MOV 30H,#20H DONE: SJMP DONE END ;循环程序示例 ORG 0000H LJMP MAIN ORG 0040H MAIN: MOV R0,#30H ; MOV A,#55H MOV R7,#16 LOOP: MOV @R0,A INC R0 DJNZ R7,LOOP SJMP $ ; END

单片机实验指导书-51分册(精)

目录 第一章系统安装与启动 (2 第二章MCS-51单片机硬件接口实验部分 (3 实验一I/O口输入、输出实验 (3 实验二扩展输入、输出实验 (5 实验三扩展存储器读写实验 (7 实验四FlashMemory读写实验 (9 实验五定时/计数器实验 (11 实验六8253定时/计数器实验 (12 实验七外部中断实验 (14 实验八串转并与并转串实验 (16 实验九串行静态数码显示实验 (18 实验十8255输入、输出实验 (20 实验十一8255控制键盘与显示实验 (22 实验十二8279控制键盘与显示实验 (24 实验十三音频驱动实验 (26 实验十四LED点阵显示实验 (29 实验十五LCD显示实验 (31 实验十六电子钟实验 (33

实验十七电子琴实验 (34 实验十八交通灯控制实验 (35 实验十九单片机串行口与PC机通信实验 (37 实验二十8251可编程串行口与PC机通信实验 (39 实验二十一并行A/D转换实验 (41 实验二十二并行D/A转换实验 (43 实验二十三串行A/D转换实验 (45 实验二十四串行D/A转换实验 (47 实验二十五并行打印机实验(选 (49 实验二十六I2C串行EEPROM读写实验 (51 实验二十七IC卡读写实验 (56 第三章MCS-51单片机应用实验部分 (60 实验二十八V/F转换与F/V转换实验 (60 实验二十九语音芯片控制实验 (63 实验三十日历时钟芯片控制实验 (68 实验三十一直流电机测速与控制实验 (77 实验三十二步进电机控制实验 (79 实验三十三压力测量显示实验 (81 实验三十四温度传感器与温度控制实验 (83

单片机实验指导书

单片机实验指导书 近年来,单片机技术的发展十分迅速。越来越多的工程师和科技爱好者开始接触和学习单片机技术,这促使单片机实验指导书的需求越来越大。然而,这方面的书籍并不是很多,而且很多都只是简略介绍了一些基础的知识,很难满足读者的需求。因此,我们有必要撰写一本全面、详实的单片机实验指导书,以供广大读者参考。 一、实验前的准备工作 在进行单片机实验之前,需要进行一些准备工作。首先,应确保实验所需要的单片机、电路板、电路图和元件都准备齐全;其次,应找到合适的实验环境,比如一间安静、干净、通风的实验室;最后,需要特别注意使用电器设备时的安全问题,确保自己和他人的安全。 二、实验的流程和步骤 在开始实验之前,需要认真研读实验指导书中的介绍和分析,了解实验的目的、原理和步骤。然后,按照指导书中的步骤依次

进行实验。实验完成后,应按照要求记录实验数据,并进行分析 和归纳总结。如果有问题需要解决,可以查阅相关的资料和文献,或向老师和同学请教。 三、实验中的注意事项 在进行单片机实验时,一定要注意以下几点:首先,要认真选 择合适的元件和器材,确保其质量和性能符合要求;其次,要遵 守电器设备的使用规范,比如正确连接电源和地线、避免引起短 路等;最后,要防止过度使用单片机,以免出现电磁干扰、损坏 设备等问题。 四、实验课堂作业 单片机实验课堂作业的目的是让学生加深对单片机知识的理解 和掌握。作业内容应与实验内容相密切相关,包括设计实验电路、编写程序、测试运行结果等。同时,作业应具有一定难度和挑战性,以激发学生的兴趣和创造力。

总之,单片机实验指导书是单片机科技研究和应用的基础。只 有通过认真研读和实践,才能真正掌握单片机技术,应用到实际 生产和工程中。希望我们的实验指导书能够对广大读者有所帮助。

单片机原理实验指导书

实验一仿真软件的使用,简单程序设计 一.实验目的: 1.掌握单片机仿真软件的基本操作方法; 2.熟悉汇编语言源程序的编辑、汇编、运行和检查运行结果的方法(能查看各存储空间中值的变化); 3.掌握简单程序编写的基本方法和技巧; 二.实验内容: 1. 将内部RAM的30H—33H四个存储单元內分别存放01H、02H、03H、04H 四个数;然后送至工作寄存器R0—R3。 2.将内部RAM的30H—33H四个存储单元內的数分别传送至外部RAM的2030H--2033H存储单元中。 3. 将内部RAM的30—32H的连续3个字节中的无符号数相加,结果的低位送33H单元,高位送34H单元 三.实验步骤: 1.实验内容1的步骤 (1)新建文件,输入能实现实验内容1的源程序并以.ASM为扩展名存盘; (2)编译并运行程序,检查运行结果:检查R0—R3的内容; (3)单步运行程序,并检查运行结果:检査R0—R3的内容; (4)查看程序的机器码。 2.实验内容2的步骤 (1)新建文件,输入能实现实验内容2的源程序并以.ASM为扩展名存盘(2)编译并运行程序,检查运行结果:检査外部RAM 2030H—2033H单元的內容 (3)单步运行程序,并检查运行结果; (4)查看程序的机器码。 3.实验内容3的步骤 (1)新建文件,输入能实现实验内容3的源程序并以.ASM为扩展名存盘; (2)编译并运行程序,检查运行结果; (3)单步运行程序,并检查运行结果,检查33H、34H单元内容; (4)查看程序的机器码

四.实验程序 1.实验内容1的程序 ORG 0000H MOV 30H,#00H MOV 31H,#01H MOV 32H,#02H MOV 33H,#03H MOV R0,30H MOV R1,31H MOV R2,32H MOV R3,33H END 2.实验內容2的程序 ORG 0000H MOV 30H,#00H MOV 31H,#11H MOV 32H,#22H MOV 33H,#33H MOV DPTR,2030H MOV R0,#30H MOV R1,#04H LOOP:MOV A,·R0H MOVX ·DPTR,A INC R0 INC DPTR DJNZ R1,LOOP SJMP $ END 3.实验内容3的程序 ORG 0000H MOV 30H,#0F8H MOV 31H,#0C6H MOV 32H,#0D9H CLR C MOV A,30H

单片机实验指导书

《单片机原理及接口技术》实验指导书 编著:张玲汪用瑜李惠颖

第一章概述 (1) 第二章软件实验 (6) 实验一清零程序 (6) 实验二拆字程序 (7) 实验三拼字程序 (7) 实验四数据区传递子程序 (8) 实验五数据排序实验 (9) 实验六无符号双字节快速乘法子程序 (9) 实验七脉冲计数(定时/计数器实验) (10) 第三章、硬件实验 (12) 实验一P3.3口输人. P1口输出 (12) 实验二8255 PC口控制PB口 (13) 实验三8255控制交通灯 (14) 实验四A/D转换实验 (16) 实验五D/A转换 (17) 实验六8253方波 (19) 实验七步进电机控制 (20) 实验八继电器控制 (21) 实验九电子音响 (22) 实验十小直流电机调速实验 (23) 参考程序 (24) 一、软件实验 (24) 实验一清零程序 (24) 实验二拆字程序 (24) 实验三拼字程序 (24) 实验四数据块传送 (25) 实验五数据排序 (26) 实验六双字节乘洁程序 (27) 实验七脉冲计数 (29) 二、硬件实验 (31) 实验一 P3口、P1口使用 (31) 实验二 8255 PC口控制PB 口 (32) 实验三 8255控制交通灯 (33) 实验四 A/D0809应用实验 (34) 实验五 D/A 0832应用 (36) 实验六定时计数器8253 (37) 实验七步进电机实验 (38) 实验九直流电机调速实验 (44)

第一章概述 一、DVCC系列单片机仿真实验系统键盘简介 系统自带32个标准键盘,16个数字键和16个多功能键,显示部分有6个高亮LED 组成,通常左边4个用于显示地址,右边2个用于数据,为用户现场调试带来方便。 下面介绍键盘功能: 右边十六个功能键,在LED状态输入操作命令,其功能如下: TV/MEM: TV/程序存储器检查 REG/OFST;片内RAM寄存器,特殊功能寄存器检查/偏移量计算 ODRW/INS:外部数据存储器、外部RAM、I/O检查/插入一个字节 EPRGH/DEL: EPROM高速写入/删除一字节 F1/LAST:第一标志键/读上一字节 F2/NEXT:第二标志键/读下一字节 STEP/NVBP:单拍、单拍跟踪/* EXEC/FVBP:连续执行/断点运行 PCDBG/EPRGL:与IBM PV/XT通讯调试/低速固化 EPMOV:固化区内容移入目标RAM EPCH/EPCOM: EPROM查空/EPROM比较 PRT:打印命令 COMP:源程序与目标程序相比较 MOVE:程序块或数据块移动 DAR:反汇编 MON:退出当前操作,返回初态——显示闪动“P.”位 RESET;系统复位按钮,它在硬件上与开发系统复位线连在一起,无论何时按压 RESET键,都使整个系统复位,返回初始状态——闪动“P.” 在数字键的右上角或功能键的右上角,右下角所标的字符标记分别是进入TV状态时,用于输入汇编语言或高级CBASIC高级语言程序时所用到的符号和字母。[SHIFT]为上档键(除TV状态不用)。 二、51系统键盘监控命令简介 1.键盘监控程序工作状态 用户可以通过32个键向本机发出各种操作命令,大多数键均具有2个以上的功能,本机无上下档转换键,计算机到底进行什么操作,不仅与按压什么键有关,也与当前计算机所处的工作状态有关,下面作有关介绍: 2.单板状态:在本状态显示器的左端显示提示符,一个闪动的“P.”字符,表开发机处于始化状态,等待操作。 在计算机接通电源自动复位时处于单板状态; 按压RESET复位键后,使本机处于单板状态; 在大多数情况下,按MON键,也可以使本机进入单板状态(待命状态0)。待命状态0时,可以进入的操作有: *按压任意数字键,进入待命状态1,显示该键入数; *按压F1标志键,进入仿真2态,PC值指向外部用户仿真程序空间,DPTR指向外部数据空间,显示闪动的“H……”; *按压F2标志键,进入仿真1态,PC值指向用户程序空间,DPTR指向外部数据空间显示闪动的“P……”; *按压PCDEG键,进入与IBM PC/XT通讯、调试、反汇编,显示全暗; *按压EPCH键,检查EPROM内容是否是全FFH;

单片机原理及应用实验指导书

C-51的基础知识 C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进、扩充和移植。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。 一、C-51基础 2、运算符 + - * / (加减乘除) > >= < <= (大于大于等于小于小于等于) == != (测试等于测试不等于) && || ! (逻辑与逻辑或逻辑非) >> << (位右移位左移) & | (按位与按位或) ^ ~ (按位异或按位取反) 3、语句 if 分支选择语句

switch/case 多分支选择语句 for 循环语句 while 循环语句 do-while 循环语句 与标准C语言基本相同。 4、C-51中数据类型扩充定义 sfr:特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit:特殊功能位声明 bit:位变量声明 例:sfr SCON = 0X98; sfr16 T1 = 0xFF; sbit CY = PSW^7; 二、单片机集成开发环境 目前单片机开发应用平台常用的有Keil和Wave(伟福)。它们集编辑、编译、仿真于一体,支持汇编和C语言的程序设计,界面友好,易学易用。它们的工作界面如图2-1和图2-2所示。 图2-1 Keil的工作界面

图2-2 Wave的工作界面

实验一单片机控制发光管 一、实验目的 1、熟悉集成开发环境; 2、学习单片机I/O口的控制方法; 3、学习C51语句的编写方法。 二、实验说明 单片机I/O口的使用 对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。 三、实验步骤 1、通过串口线连接电脑与实验箱; 2、打开集成开发系统,首先建立本实验的项目文件,输入编写的程序,进行编译检查有无语法错误,在没有错误情况下生成.HEX文件; 3、在XLISP软件环境中,把生成的.HEX下载到单片机中,运行程序观察二极管显示情况是否与设计目标一致。如有出入,修改源程序重新生成.HEX文件,再次下载运行直到达到设计要求。 四、参考实例 1、电亮一个发光管。 参考程序1: #include void main() { P1=0xfe; } 参考程序2: #include sbit D2=P1^2;

单片机实验指导书

目录 第一章开发流程、硬件设定 一、软件开发流程--------------------------------------------------------2 二、硬件接口及开关设置-----------------------------------------------3 三、系统地址分配--------------------------------------------------------4 第二章软件实验 实验一数据区传送子程序--------------------------------------------5 实验二数据排序实验-------------------------------------------------6实验三查找相同数个数----------------------------------------------7实验四脉冲计数(定时/计数器实验)--------------------------8 第三章硬件实验 实验一P1口亮灯实验--------------------------------------------------11实验二 P3口输入,P1口输出-----------------------------------------12实验三8255 PA口控制PB口---------------------------------------13实验四8255控制交通灯-----------------------------------------------14 实验五简单I/O口扩展------------------------------------------------17实验六A/D转换实验----------------------------------------------------18 实验七D/A转换----------------------------------------------------------21 实验八8279键盘显示实验--------------------------------------------23 第四章综合性设计实验 实验一步进电机控制---------------------------------------------------27实验二128*64 LCD液晶显示----------------------------------------34

基于ADuC848开发板的单片机实验和课程设计指导书2012

基于ADuC848 嵌入式系统的实验和课程设计指导书 (内部使用) 主编银翔刘任斌汤春龙 主审黎福海彭楚武 二○一二年二月

目录 第一章硬件系统介绍 (5) 1.1板上资源分布 (5) 1.2单片机ADuC848 (6) 1.2.1 ADuC848的简要介绍(针对本设计所选择的型号) (6) 1.2.2 单片机引脚分布 (6) 1.3 电源模块 (8) 1.4 模数/数模转换 (9) 1.4.1 模数转换 (9) 1.4.2 数模转换 (9) 1.5 RS232串口 (10) 1.6 PS/2接口和红外接收 (11) 1.7 显示模块 (11) 1.7.1 LCD显示 (11) 1.7.2 数码管 (12) 1.7.3 8路LED (13) 1.8 蜂鸣器和红外发送 (14) 1.9 SPI接口、步进电机控制 (15) 1.10 按键输入 (15) 1.11 IIC总线(RTC时钟和EEPROM) (16) 1.12 复位与下载 (17) 第二章基础实验 (18) 汇编实验 (18) 实验一I/O 口控制实验 (18) 实验二定时器、中断实验 (20) 实验三数码显示实验 (24) 实验四蜂鸣器驱动实验 (29) 实验五128×64 点阵型液晶显示实验 (32) 实验六1602字符显示实验 (44) 实验七矩阵键盘实验 (53) 实验八D/A转换实验 (56) 实验九步进电机控制实验 (60) C语言实验 (63) 实验一端口输出操作 (63) 实验二定时器及定时器中断 (66) 实验三数码管显示 (69) 实验四矩阵式键盘识别 (73) 实验五蜂鸣器驱动实验 (77) 实验六1602字符显示实验 (82) 实验七128×64 点阵型液晶显示实验 (85)

单片机实验指导书(2)

实验四数据排序实验 1.实验目的: (1)学习KEIL Uv2/Uv3集成调试环境下的编辑、编译、排错、调试方法。 (2)学习修改和观察变量的方法;综合使用单步、断点调试的方法。 2.实验内容: 编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单字节无符号正整数,按从小到大的次序重新排列。 3.实验器材: (1)G2010+实验箱 1 台 4.程序框图: 6.思考问题: 编一程序把50H-5AH中内容按从大到小排列。 7.软件清单:(实验例程\实验4\ASM51\EX4.ASM)(实验例程\实验4\C51\EX4.C) 实验六 P1口输入输出实验 1.实验目的: (1)掌握P1口作为IO口时的使用方法。 (2)理解读引脚和读锁存器的区别。 2.实验内容: P1.3脚的状态来控制P1.2的LED亮灭。

3.实验器材: (1)G2010+实验箱 1 台 (2)连线若干根 4.实验原理: 由8051组成的单片机系统通常情况下,P0口分时复用作为地址、数据总线,P2口提供A15-A8即高8位地址,P3口用作第二功能,只有P1口通常用作I/0口。P1口是8位准双向口,它的每一位都可独立地定义为输入或输出,因此既可作为8位的并行I/O 口,也可作为8位的输入输出端。当工作在输入方式时,对应位的锁存器必须先置1,才能正确地读到引脚上的信号,否则,执行读引脚指令时,若对应位的锁存器的值为0,读的结果永远为0。每个I/0端口都有两种读入,即读锁存器和读引脚,读引脚指令一般都是以I/0端口为源操作数的指令,如MOV C,P1.3,而读锁存器指令一般为“读-修改-写”指令,如ANL P1.3,C指令,请同学们在实验中体会。图示中,P1.2作为输出口,P1.3作为输入口。 5.接线图案: “总线插孔”框中P1.2孔连“发光二极管组”的L0孔, P1.3孔连“开关量发生器”的K0孔。 6.程序框图: 7.实验步骤: (1) 编写程序实现当P1.3为低电平时,发光管高;P1.3为高电平时,发光管灭。

单片机实验指导书

目录 实验一P1口输入、输出实验 (2) 实验二继电器控制实验 (8) 实验三音频控制实验 (11) 实验四程序调试 (14) 实验五5LED静态串行显示实验 (16) 实验六6LED动态扫描显示实验 (21) 实验七查询式键盘实验 (28) 实验八阵列式键盘实验 (36) 实验九计数器实验 (47) 实验十定时器实验 (49) 实验十一外部中断实验 (54)

实验一P1口输入、输出实验 一、实验目的 1、学习P1口的使用方法 2、学习延时子程序的编写和使用 二、实验说明 P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。三、实验内容及步骤 实验(一): 用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。 1、使用单片机最小应用系统1模块。关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块。 2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加P1_A.ASM源程序,进行编译,直到编译无误。 4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。 5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序,观察发光二极管显示情况。发光二极管单只从右到左轮流循环点亮。 实验(二): 用P1.0、P1.1作输入接两个拨断开关,P1.2、

P1.3作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。 1、用导线分别连接P1.0、P1.1到两个拨断开关,P1. 2、P1.3到两个发光二极管。 2、添加 P1_B.ASM源程序,编译无误后,运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。 四、流程图及源程序 1.流程图

《单片机原理及应用》综合实验(课程设计)指导书

《单片机原理及应用》综合实验(课程设计)指导书 单片机原理及应用综合实验(课程设计)指导书第一部分概述 1.1系统设计的一般原则微型计算机控制系统设计时,一般应做以下考虑:(1)确定设计任务,对设计方案进行调研,包括查阅资料、分析研究、确定系统的技术指标。(2)系统方案设计,包括芯片的选择、综合考虑软件硬件的分工与分配。(3)系统的软件硬件设计。(4)系统调试。 1.2软硬件设计的内容1单片机硬件设计包含以下内容:(1)存储器扩展:程序存储器和数据存储器的扩展;(2)接口扩展:并扩展,串扩展,模拟量接口扩展;(3)定器的扩展;(4)中断源的扩展;另外,在单片机外部电路接口较多时,必须考虑其驱动能力(P2, P0),因为驱动能力不足,会影响系统工作的可靠性。2硬件测试单片机硬件原理设计(方案)完成后,即可进行电路板的设计制作,安装元器件后,编制简单的测试程序,借助单片机仿真开发装置,对硬件进行必要的测试,检查硬件是否能正常工作。通常通过测试程序检查地址线(片选线、选通线)、控制线(读写控制、输入输出控制、时钟信号等)、数据总线(通过测试程序发送特定的数据,如AA、55,检查地址线顺序是否连接正确)、外围芯片等是否正常。3软件设计和调试单片机系统的软件是根据系统功能要求设计的,详细分析系统要求,可靠地实现各种功能。系统的软件设计和硬件设计可以同时进行。在软件调试过程中,对照设计要求,在单片机仿真开发装置上对软件的各个部分进行调试修改。4系统调试检验软硬件设计的正确性,有时需重复几次,直至满足设计要求。第二部分参考方案介绍2.1通用控制器单片机系统部分的方案2.1.1设计内容介绍及实现方案(1)设计要求微控制器:MCS-51系列Intel80 31、ATMEL89CC52程序设计容量不大于8K,预留外部数据存储器空间2K;16点输入(两个字节),16点输出(两个字节),8个模拟量输入通道,1个模拟量输出通道,器不少于2个,可提供2个以上的外部中断源接口。参考资料:集成电路手册查阅相关芯片的管脚定义和芯片功能(2)设计方案根据设计要求,可选以下主要外围芯片:1)程序设计容量不大于8K:可选一片2764,27128,27256,27512,或者2片2732,4片2716;2)外部数据存储器空间2K:可选一片6116,6264;3)8个模拟量输入通道:可选一片ADC0809;4)1个模拟量输出通道:可选一片ADC0832;5)16点输入(开关量):可选一片8155,或者2片74LS244;6)16点输出(开关量):可选一片8155,或者2片74LS273; 7)由于单片机内部具有2个器2个,可提供2个的外部中断源,这一部分可以不用扩展;

相关主题
文本预览
相关文档 最新文档