实验一应用系统开发过程及常用指令实单片机.docx
《实验一应用系统开发过程及常用指令实单片机.docx》由会员分享,可在线阅读,更多相关《实验一应用系统开发过程及常用指令实单片机.docx(32页珍藏版)》请在冰点文库上搜索。
![实验一应用系统开发过程及常用指令实单片机.docx](https://file1.bingdoc.com/fileroot1/2023-6/8/370d7588-ebd4-4d6b-b566-9792eb612ded/370d7588-ebd4-4d6b-b566-9792eb612ded1.gif)
实验一应用系统开发过程及常用指令实单片机
实验一:
应用系统开发过程及常用指令实验
一、实验目的:
⑴了解80C51典型应用系统的开发过程及Win51组合软件的使用
⑵掌握80C51的寻址方式及常用指令的使用方法。
二、实验内容:
数据传送:
8031内部RAM40H-4FH置初值AOHAFH,然后将40H-4FH的内容传送到外部RAM中的2000H-200FH单元,再把外部数据RAM中的2000H-200FH单元的内容传送到8031内部RAM中的50H-5FH单元。
实验参考程序如下:
地址机器代码汇编程序
ORG1000H
1000803DSJMPMAIN
ORG103FH
103F7840MAIN:
MOVR0,#40H
10417A10MOVR2,#10H
104374A0MOVA,#0A0H
1045F6A1:
MOV@R0,A
104608INCR0
104704INCA
1048DAFBDJNZR2,A1
104A7840MOVR0,#40H
104C902000MOVDPTR,#2000H
104F7A10MOVR2,#10H
1051E6A2:
MOVA,@R0
1052F0MOVX@DPTR,A
105308INCR0
1054A3INCDPTR
1055DAFADJNZR2,A2
10577850MOVR0,#50H
1059902000MOVDPTR,#2000H
105C7A10MOVR2,#10H
105EF0A3:
MOVXA,@DPTR
105FF6MOV@R0,A
106008INCR0
1061A3INCDPTR
1062DAFADJNZR2,A3
106480FEA4:
SJMPA4
END
三、实验步骤:
1、演示80C51典型应用系统的开发过程
2、进入Win51组合软件的操作环境
3、在Win51组合软件环境中,编辑源程序;
4、源程序编辑好后,就可对源文件进行编译,生成目标代码并传送到开发系统的RAM中.
5、运行、调试程序和结果检查
①在Debug窗口下,分别采用单步、宏单步、执行到光标处等命令运行程序到104C,105C,1064处,观察40H~4FH,2000H~200FH、50H~5FH中的内容.
②修改40H~4FH、2000H~200FH、50H~5FH中的内容。
然后分别在104C,105C,1064C处,采用设置断点的方法运行程序,再观察40H~4FH,2000H~200FH,50H~5FH中的内容
四、思考题
1、从103F~104A,104A~1055,1057~1064这三段程序分别完成哪些任务?
2、跳转指令中偏移量如何计算?
五、预习要求:
1、阅读教科书中8031的指令系统,重点掌握的指令有数据传送、跳转指令的使用方法
2、阅读Win51组合软件,掌握组合软件的进入、退出方法。
重点掌握单步运行程序的方法和执行到光标处运行程序的方法
六、实验报告:
1、将数据传送程序加上注释语句
2、回答思考题
实验二:
80C51程序设计实验
(设计性实验)
一、实验目的:
⑴掌握80C51汇编语言程序设计方法
⑵掌握80C51汇编语言程序的调试方法
二、实验任务:
1、完成二字节加法程序的设计与调试。
要求:
加数首地址由R0指出,被加数和结果的存贮单元首地址由R1指出,字节数由R2指出。
2、完成二进制数转换为BCD程序的设计与调试。
要求:
将A中的8位二进制数转换为BCD数,结果放在8031内部RAM的20H~21H单元中。
三、实验准备:
1、根据每个实验内容提出的要求设计相应的程序
2、写出实验步骤及方法
四、实验设备:
1、DICE-598H+开发型实验系统2、配套计算机
五、预习要求:
(1)阅读教科书中8031的指令系统及程序的设计方法,重点掌握算术运算,转移等指令。
(2)阅读Win51组合软件,重点掌握连续运行程序的方法和设置断点运行程序的方法
(3)写出预习报告
六、思考题:
8031单片机的寻址方式有哪些?
七、实验报告要求
(1)整理好执行正确的程序和数据;
(2)回答思考题。
实验三:
中断、定时器系统应用实验
(设计性实验)
一、实验目的:
⑴掌握定时/计数器、中断初始化程序的设计。
⑵掌握使用定时/计数器的方式1、方式2的编程方法
⑶掌握中断的编程方法。
二、实验硬件电路:
LED共阴极接法
三、实验任务:
完成在每隔1秒钟接在P1口的八个发光二极管循环闪亮程序设计和调试。
要求:
1、选择定时器T1为工作方式1,产生100mS定时,使P1口的八个发光二极管循环闪亮。
2、用定时器串联方式,使T0工作于定时(产生100mS定时),使T1工作计数(计数10次,正好1秒)。
每次T0溢出后从P3.0口给T1端送出一个负脉冲,当T1溢出后P1口的八个发光二极管循环闪亮。
T0、T1的溢出,采用中断方式
四、实验准备:
1、根据硬件电路原理图,分析二极管闪亮的条件,(74LS07同相驱动器)
2、根据硬件电路原理图,画出实际接线图
3、根据实验任务设计出相应的程序
4、写出实验步骤和方法
五、实验设备1、DICE-598H+开发型实验系统2、配套计算机
六、预习要求:
1、阅读教科书中有关定时器/计数器的内容、熟悉定时器/计数器的基本结构和工作过程
2、阅读Win51组合软件,掌握连续运行程序的方法。
3、计算定时器/计数器时间常数
4、写出预习报告
七、思考题:
定时器工作于方式1,方式2时其最大定时时间是多少(设单片机的晶振为6MHZ)
八、实验报告要求
(1)整理好执行正确的程序和数据;
(2)回答思考题
实验四:
显示接口实验
一、实验目的:
⑴ 掌握单片机与8155接口方法
⑵ 掌握动态扫描显示程序的编程方法和调试方法
二、实验内容
1、编制动态显示扫描程序,显示位数为6位,显示缓冲区地址为78H-7DH,8155控制口地址:
FF20H;8155A口:
FF21H;8155B口:
FF22H字形“0”到“F”“P”“-”等。
2、编制自动计数程序,要求显示器显示000~060每秒增1
三、实验硬件电路:
参考程序如下:
ORG0000H
DIS:
MOVA,#03H
MOVDPTR,#0ff20H
MOVX@DPTR,A
LD2:
MOVR0,#78H
MOVR3,#20H
MOVA,R3
LD0:
MOVDPTR,#0ff21H
MOVX@DPTR,A
INCDPTR
MOVA,@R0
ADDA,#0EH
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL1
INCR0
MOVA,R3
JBACC.0,LD1
RRA
MOVR3,A
AJMPLD0
LD1:
AJMPLD2
DB0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H
DB88H,83H,0c6H,0a1H,86H,8eH
DL1:
MOVR5,#02H
DL0:
MOVR7,#02H
DL:
MOVR6,#0FFH
DL6:
DJNZR6,DL6
DJNZR7,DL
DJNZR5,DL0
RET
END
四、实验步骤:
1读懂源程序并写出程序流程图
2、进入Win51组合软件的操作环境
3、在Win51组合软件环境中,编辑源程序;
4、源程序编辑好后,就可对源文件进行编译,生成目标代码并传送到开发系统的RAM中.
5、运行、调试程序和结果检查
①把需显示的数字送到显示缓冲区(78H,79H,7AH)
②采用单步,宏单步,执行到光标处,设置断点等方法,态观察程序走向是否正确及硬件连接是否正确;
③连续运行程序,观察LED的输出。
④改变R5,R7的初值,观察输出的变化。
五、思考题:
本次实验8155的工作方式?
指出程序中的那些语句决定了8155的工作方式
六、预习要求:
按照实验内容2的要求编写程序。
七、实验报告:
1、将动态显示程序加上注释语句,并说出其功能。
2、回答思考题。
实验五:
键盘接口实验
一、实验目的:
⑴熟悉单片机通过8155与键盘的接口方法
⑵掌握键盘扫描及处理程序的编程方法和调试方法
二、实验内容:
程序运行后,在没有键入时,在LED上显示1,按下数字键,数码管上应能显示相应数字。
三、实验硬件电路
ORG0000H
MOV78H,#01H
MOV79H,#01H
MOV7AH,#01H
MOV7BH,#01H
MOV7CH,#01H
MOV7DH,#01H
MOVDPTR,#0FF20H
MOVA,#03H
MOVX@DPTR,A
KEY1:
ACALLKS1
JNZLK1
NI:
ACALLDIS
AJMPKEY1
LK1:
ACALLDIS
ACALLDIS
ACALLKS1
JNZLK2
ACALLDIS
AJMPKEY1
LK2:
MOVR2,#0FEH
MOVR4,#00H
LK4:
MOVDPTR,#0FF21H
MOVA,R2
MOVX@DPTR,A
INCDPTR
INCDPTR
MOVXA,@DPTR
JBACC.0,LONE
MOVA,#00H
AJMPLKP
LONE:
JBACC.1,LTRE
MOVA,#08H
AJMPLKP
LTRE:
JBACC.2,NEXT
MOVA,#18H
LKP:
ADDA,R4
MOVDPTR,#TAB
MOVCA,@A+DPTR
PUSHACC
LK3:
ACALLDIS
ACALLKS1
JNZLK3
POPACC
MOV78H,79H
MOV79H,7AH
MOV7AH,A
NEXT:
INCR4
MOVA,R2
JNBACC.7,KND
RLA
MOVR2,A
AJMPLK4
TAB:
DB07H,04H,08H,05H,09H,06H,0AH,0BH
DB01H,00H,02H,0FH,03H,0EH,0CH,0DH
KND:
AJMPKEY1
KS1:
MOVDPTR,#0FF21H
MOVA,#00H
MOVX@DPTR,A
INCDPTR
INCDPTR
MOVXA,@DPTR
CPLA
ANLA,#0FH
RET
DIS:
MOVR0,#78H
MOVR3,#20H
MOVA,R3
LD0:
MOVDPTR,#0ff21H
MOVX@DPTR,A
INCDPTR
MOVA,@R0
ADDA,#0DH
MOVCA,@A+PC
MOVX@DPTR,A
ACALLDL1
INCR0
MOVA,R3
JBACC.0,LD1
RRA
MOVR3,A
AJMPLD0
LD1:
RET
DB0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H
DB80H,90H,88H,83H,0c6H,0a1H,86H,8eH
DL1:
MOVR5,#02H
DL0:
MOVR7,#02H
DL:
MOVR6,#0FFH
DL6:
DJNZR6,DL6
DJNZR7,DL
DJNZR5,DL0
RET
END
四、实验步骤:
1、进入Win51组合软件的操作环境
2、在Win51组合软件环境中,编辑源程序;
3、源程序编辑好后,就可对源文件进行编译,生成目标代码并传送到开发系统的RAM中.
4、运行、调试程序和结果检查
⑴采用单步,宏单步,执行到光标处,设置断点等方法,观察程序走向是否正确;
⑵ 连续运行程序,依次按动数字键观察LED的显示是否相符。
五、思考题:
字型码是如何确定的,
六、预习要求:
1、了解键盘接口的功能
2、熟悉键扫描、键处理程序的设计思路。
七、实验报告:
1、将键盘接口程序加上注释语句,并说出其功能。
2、回答思考题。
实验六:
A/D转换器接口实验
一、实验目的:
⑴ 熟悉单片机与A/D转换芯片的接口方法。
⑵ 了解A/D转换芯片的转换性能及编程方法。
⑶ 通过实验了解单片机如何进行数据采集。
二、实验内容:
利用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,并在数码管显示出来。
三、实验硬件电路
参考程序如下:
ORG0000H
MOVSP,#53H
MOV7EH,#00H
MOV7DH,#08H
MOV7CH,#00H
MOV7BH,#09H
MOV7AH,#10H
MOV79H,#10H
MOVA,#03H
MOVR1,#20H
MOVX@R1,A
L1:
LCALLDIS
MOVA,#00H
MOVDPTR,#8000H
MOVX@DPTR,A
MOVR7,#0FFH
L2:
DJNZR7,L2
MOVXA,@DPTR
MOVR0,#79H
LCALLL3
SJMPL1
L3:
MOVR1,A
ACALLL4
MOVA,R1
SWAPA
L4:
ANLA,#0FH
MOV@R0,A
INCR0
RET
DIS:
SETBRS1
MOVR5,#05H
DIS1:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
DIS2:
MOVR1,#21H
MOVA,30H
MOVX@R1,A
MOVR0,31H
MOVA,@R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVR1,#22H
MOVX@R1,A
MOVA,30H
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
MOVX@R1,A
DJNZR7,DIS2
DJNZR5,DIS1
CLRRS1
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,0FFH,0CH,89H,0DEH
END
四、实验步骤:
1、将0809的零通道INT0用插针接至AIN1孔,CS4位接至8000孔
2、进入Win51组合软件的操作环境
3、在Win51组合软件环境中,编辑源程序;
4、源程序编辑好后,就可对源文件进行编译,生成目标代码并传送到开发系统的RAM中.
5、运行、调试程序和结果检查
⑴采用单步,宏单步,执行到光标处,设置断点等方法,态观察程序走向是否正确;
⑵连续运行程序,数码管上显示当前采集的电压转换的数字量,调节W1可看到数码管的输出发生变化。
五、思考题:
如何用中断方式读取A/D转换结果?
六、预习要求:
熟悉A/D0809的转换原理,熟悉其接口电路,
七、实验报告:
1写出原程序的注释语句,并说明其功能,
2回答思考题。
实验七:
D/A转换器接口实验
一、实验目的:
⑴熟悉单片机与D/A转换芯片的接口方法。
⑵了解D/A转换芯片的转换性能及编程方法。
二、实验内容:
利用实验系统上的0832做D/A转换器实验,从0832输出一个从0V开始逐渐升至5V再降至0V的正弦波电压,数码管显示送入的数字量,
三、实验硬件电路
参考程序如下:
ORG0000H
MOVSP,#53H
MOV7EH,#00H
MOV7DH,#08H
MOV7CH,#03H
MOV7BH,#02H
MOVA,#03H
MOVR1,#20H
MOVX@R1,A
LO20:
MOVR6,#00H
LO21:
MOVDPTR,#8000H
MOVA,R6
MOVX@DPTR,A
MOVR0,#79H
LCALLPTDS
LCALLDIS
MOVR2,#08H
LCALLDL1
INCR6
CJNER6,#0FFH,LO21
LO22:
MOVDPTR,#8000H
DECR6
MOVA,R6
MOVX@DPTR,A
MOVR0,#79H
LCALLPTDS
LCALLDIS
MOVR2,#08H
LCALLDL1
CJNER6,#00H,LO22
SJMPLO20
PTDS:
MOVR1,A
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
DIS:
SETBRS1
MOVR5,#05H
DIS1:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
DIS2:
MOVR1,#21H
MOVA,30H
MOVX@R1,A
MOVR0,31H
MOVA,@R0
MOVDPTR,#DDFF
MOVCA,@A+DPTR
MOVR1,#22H
MOVX@R1,A
MOVA,30H
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
MOVX@R1,A
DJNZR7,DIS2
DJNZR5,DIS1
CLRRS1
RET
DL1:
MOVR5,#02H
DL0:
MOVR7,#02H
DL:
MOVR4,#0FFH
DL6:
DJNZR4,DL6
DJNZR7,DL
DJNZR5,DL0
RET
DDFF:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,0FFH,0CH,89H,0DEH
END
四、实验步骤:
1、把开发系统电源的±12V接到开发系统中,将0832译码线CS5位接至8000孔
2、进入Win51组合软件的操作环境
3、在Win51组合软件环境中,编辑源程序;
4、源程序编辑好后,就可对源文件进行编译,生成目标代码并传送到开发系统的RAM中.
5、运行、调试程序和结果检查
⑴采用单步,宏单步,执行到光标处,设置断点等方法,态观察程序走向是否正确;
⑵连续运行程序,数码管上显示不断加大或减小的数字量,用万用表测试D/A输出孔AOUT,也能测出不断加大或减小的电压值。
五、思考题:
DAC0832有几种工作方式?
如何实现?
六、预习要求:
熟悉DAC0832五、思考题:
如何用中断方式读取A/D转换结果?
七、实验报告:
1写出原程序的注释语句,并说明其功能,
2回答思考题。
实验八:
电脑时钟程序实验
(综合性实验)
一、实验目的:
⑴进一步掌握定时器/计数器的使用方法,
⑵了解、熟悉80C51综合性程序的编程方法
二、实验内容:
从598H+实验系统键盘上输入时间初值,按下EXEC键,数码管上将实时显示时间值。
三、硬件电路:
主要芯片:
8031、8155、75452、74LS240、LED
ORG0000H
LJMPCHK0
ORG000BH
LJMPCLOCK
CHK0:
MOVSP,#60H
LCALLLCK0
LCALLPTDS0
MOVTMOD,#01H
ORLIE,#82H
MOVTL0,#0B7H
MOVTH0,#0CH
MOV23H,#00H
SETBTR0
LOO5:
LCALLSSEE
LCALLPTDS0
SJMPLOO5
PTDS0:
MOVR0,#79H
MOVA,22H
ACALLPTDS
MOVA,21H
ACALLPTDS
MOVA,20H
ACALLPTDS
RET
PTDS:
MOVR1,A
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
CLOCK:
MOVTL0,#0B7H
MOVTH0,#3CH
PUSHPSW
PUSHACC
SETB0D3H
INC23H
MOVA,23H
CJNEA,#0AH,DONE
MOV23H,#00H
MOVA,22H
INCA
DAA
MOV22H,A
CJNEA,#60H,DONE
MOV22H,#00H
MOVA,21H
INCA
DAA
MOV21H,A
CJNEA,#60H,DONE
MOV21H,#00H
MOVA,20H
INCA
DAA
MOV20H,A
CJNEA,#24H,DONE
MOV20H,#00H
DONE:
POPACC
POPPSW
RETI
ORG0D50H
SSEE:
SETBRS1
MOVR5,#05H
SSE2:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
SSE1:
MOVR1,#21H
MOVA,30H
MOVX@R1,A
MOVR0,31H
MOVA,@R0
MOVDPTR,#DDFF
MOVCA,@A+DPTR
MOVR1,#22H
MOVX@R1,A
MOVA,30H
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
MOVX@R1,A
DJNZR7,SSE1
DJNZR5,SSE2
CLRRS1
RET
DDFF:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
ORG1D00H
X3:
MOVR4,A
MOVR