8051单片机实验课件单片机实验.ppt

上传人(卖家):晟晟文业 文档编号:4538335 上传时间:2022-12-17 格式:PPT 页数:51 大小:2.28MB
下载 相关 举报
8051单片机实验课件单片机实验.ppt_第1页
第1页 / 共51页
8051单片机实验课件单片机实验.ppt_第2页
第2页 / 共51页
8051单片机实验课件单片机实验.ppt_第3页
第3页 / 共51页
8051单片机实验课件单片机实验.ppt_第4页
第4页 / 共51页
8051单片机实验课件单片机实验.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、2022-12-17电子工程设计中心关于关于 8051单片机实验单片机实验1.1.首次多专业集中设课首次多专业集中设课2.2.以程序设计为主要内容以程序设计为主要内容 熟悉单片机程序开发环境熟悉单片机程序开发环境 掌握单片机内、外资源使用方法掌握单片机内、外资源使用方法 单片机汇编语言程序编写与调试单片机汇编语言程序编写与调试2022-12-17电子工程设计中心实验环境实验环境1.1.单片机仿真器单片机仿真器可以控制程序运行过程的可以控制程序运行过程的“单片机单片机”2022-12-17电子工程设计中心2.2.单片机实验板单片机实验板单片机程序运行载体单片机程序运行载体2022-12-17电子

2、工程设计中心3.3.单片机程序集成开发环境单片机程序集成开发环境中文版中文版 MedWinMedWin 2.39 2.39文本编辑器文本编辑器生成、编辑程序文本生成、编辑程序文本编译器编译器/汇编器汇编器将将C/C/汇编语言源程序汇编语言源程序 翻译为二进制机器程序翻译为二进制机器程序链接器链接器将二进制机器程序转换为带将二进制机器程序转换为带 调试信息的可执行程序调试信息的可执行程序调试器调试器用多种调试方式运行程序用多种调试方式运行程序2022-12-17电子工程设计中心实验方法实验方法1.1.功能演示功能演示2.2.程序编写调试练习程序编写调试练习调用单片机内、外部资源的示例调用单片机内

3、、外部资源的示例了解各种资源的使用方法了解各种资源的使用方法修改示例程序,上机调试实现新的功能修改示例程序,上机调试实现新的功能锻炼初步的程序设计、调试能力锻炼初步的程序设计、调试能力2022-12-17电子工程设计中心运行集成开发环境运行集成开发环境1.1.目标板、仿真器加电目标板、仿真器加电加电顺序加电顺序先目标板;后仿真器先目标板;后仿真器 真实环境仿真真实环境仿真/模拟仿真选择模拟仿真选择断电顺序断电顺序先先仿真器仿真器;后;后目标板目标板2.2.启动集成开发环境启动集成开发环境 关闭注册提示关闭注册提示 选择工作目录选择工作目录2022-12-17电子工程设计中心创建源程序创建源程序

4、/生成并下载目标程序生成并下载目标程序1.1.调用文本编辑功能调用文本编辑功能录入源程序文本录入源程序文本生成生成 .asm.asm文件文件2.2.调用汇编功能调用汇编功能对对.asm.asm文件汇编文件汇编生成生成 .obj.obj文件文件3.3.调用链接功能调用链接功能对对.objobj文件链接文件链接生成生成 .hex.hex文件文件4.4.将目标代码装入仿真器进行调试将目标代码装入仿真器进行调试2022-12-17电子工程设计中心调试手段调试手段1.1.观察项观察项2.2.运行方式运行方式 程序运行中,内、外部资源工作状态的程序运行中,内、外部资源工作状态的观察窗口。观察窗口。全速运行

5、全速运行单步运行单步运行跟踪运行跟踪运行运行到断点运行到断点运行到光标运行到光标2022-12-17电子工程设计中心并行数据操作程序调试练习并行数据操作程序调试练习例例1 1:跑马灯:跑马灯通过通过 P1P1口采用负逻辑控制,口采用负逻辑控制,0 0点亮,点亮,1 1熄灭。熄灭。2022-12-17电子工程设计中心程序清单程序清单 MOV A,#0FFH ;清除挂接在总线上的数码管的显示内容清除挂接在总线上的数码管的显示内容 MOV DPTR,#00H MOVX DPTR,A MOV A,#07FH ;赋初始值并在发光二极管上显示该数值赋初始值并在发光二极管上显示该数值 MOV P1,ALOO

6、P:CALL DELAY CALL DELAY RR A ;A寄存器内容右移寄存器内容右移1位并送发光二极管显示位并送发光二极管显示 MOV P1,A AJMP LOOP ;无限循环无限循环DELAY:MOV R5,#0H ;延时子程序延时子程序D1:MOV R6,#0H DJNZ R6,$DJNZ R5,D1 RET END2022-12-17电子工程设计中心 全速运行(全速运行(3 3种方法)种方法)单步运行单步运行(3 3种方法)种方法)调试调试 观察发光二极管点亮位置移动方向,那观察发光二极管点亮位置移动方向,那条指令决定发光二极管移动方向。条指令决定发光二极管移动方向。观察发光二极管

7、点亮位置移动速度,那观察发光二极管点亮位置移动速度,那段程序决定发光二极管移动速度。段程序决定发光二极管移动速度。观察第观察第3 3次循环结束时寄存器次循环结束时寄存器A A、P1P1的值,的值,发光二极管的点亮状态。发光二极管的点亮状态。2022-12-17电子工程设计中心 跟踪运行跟踪运行(3 3种方法)种方法)观察运行中除了寄存器观察运行中除了寄存器A A、P1P1的值在变,的值在变,还有哪些寄存器的内容在变。还有哪些寄存器的内容在变。2022-12-17电子工程设计中心例例2 2:数码管(:数码管(DS1DS1)点亮控制)点亮控制“共阳共阳”连接,负逻辑编码控制连接,负逻辑编码控制20

8、22-12-17电子工程设计中心ORG 0000HLJMP INITTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H;段码段码0-7DB080H,090H,088H,083H,0C6H,0A1H,086H,08EH;段码段码8-FINIT:MOV A,#0FFH ;清除挂接在总线上的数码管的显示内容清除挂接在总线上的数码管的显示内容MOV DPTR,#00HMOVX DPTR,AMOV R1,#00H;操作数据初始值操作数据初始值MOV A,R1MAIN:MOV DPTR,#TAB;读取与读取与A中数值对应的显示段码中数值对应的显示段码MOVC A,A

9、+DPTRMOV P1,A;段码送并行口段码送并行口1显示显示CALL DELAYCALL DELAYCALL DELAYCALL DELAYCALL DELAY程序清单程序清单2022-12-17电子工程设计中心 INC R1 ;操作数据操作数据(R1)增增1 MOV A,R1 CJNE A,#10H,MAIN;检查操作数据是否大于显示范围(检查操作数据是否大于显示范围(F)SJMP INIT;无限循环无限循环DELAY:MOV R5,#0H;延时子程序延时子程序D1:MOV R6,#0H DJNZ R6,$DJNZ R5,D1 RET END2022-12-17电子工程设计中心 运行到断点

10、运行到断点1 1 运行到断点运行到断点2 2调试调试源程序第源程序第1414行设断点,全速运行至断点行设断点,全速运行至断点单步执行第单步执行第1414、1515行指令,行指令,观察寄存器观察寄存器A A的值及数码管显示数值的值及数码管显示数值源程序第源程序第2424行设断点,全速运行至断点行设断点,全速运行至断点观察寄存器观察寄存器A A的值,的值,A A中能否为其它值中能否为其它值2022-12-17电子工程设计中心例例3 3:数码管(:数码管(DS2DS2)点亮控制)点亮控制通过总线扩展实现的数码管点亮控制通过总线扩展实现的数码管点亮控制2022-12-17电子工程设计中心程序清单程序清

11、单ORG 0000HLJMP INITTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H;段码段码0-7DB080H,090H,088H,083H,0C6H,0A1H,086H,08EH;段码段码8-FINIT:MOV R1,#00H;操作数据初始值操作数据初始值MOV A,R1MAIN:MOV DPTR,#TAB;读取与读取与A中数值对应的显示段码中数值对应的显示段码MOVC A,A+DPTRMOV DPTR,#00H;段码送总线地址段码送总线地址0000H单元显示单元显示MOVX DPTR,ACALL DELAYCALL DELAYCALL DELA

12、YCALL DELAYCALL DELAYINC R1;操作数据操作数据(R1)增增1MOV A,R12022-12-17电子工程设计中心 CJNE A,#10H,MAIN;检查操作数据是否大于显示范围(检查操作数据是否大于显示范围(F)SJMP INIT;无限循环无限循环DELAY:MOV R5,#0H;延时子程序延时子程序D1:MOV R6,#0H DJNZ R6,$DJNZ R5,D1 RET END调试调试运行到光标运行到光标光标放在源程序第光标放在源程序第1111行,运行至光标行,运行至光标然后单步执行第然后单步执行第1111、1212、1313行指令行指令2022-12-17电子工

13、程设计中心例例4 4:按键控制操作:按键控制操作利用利用P3P3口的部分口线实现并行数据输入口的部分口线实现并行数据输入2022-12-17电子工程设计中心程序清单程序清单DISP_BUFEQUP1;发光二级管显示端口发光二级管显示端口INPUT_BUFEQU P3;准并行数据(按键状态)输入端口准并行数据(按键状态)输入端口KEYEQU30H;按键状态暂存单元按键状态暂存单元MAIN:MOVDPTR,#0MOVA,#0FFHMOVX DPTR,A;清除挂接在总线上的数码管的显示内容清除挂接在总线上的数码管的显示内容MOVDISP_BUF,A;清除挂接在清除挂接在P1口上的数码管的显示内容口上

14、的数码管的显示内容MOVKEY,#0HMOVA,#0FEH;发光二极管循环移位操作初始值发光二极管循环移位操作初始值L1:RLA;发光二极管循环右移操作发光二极管循环右移操作CALLDELAYMOVDISP_BUF,A;发光二极管显示刷新发光二极管显示刷新CALLPROC;调用延时处理子程序调用延时处理子程序SJMPL12022-12-17电子工程设计中心PROC:PUSHACC;根据键值确定调用延时子程序的次数根据键值确定调用延时子程序的次数MOVA,KEYCJNEA,#01H,PR1SJMPPR7PR1:CJNEA,#02H,PR2SJMPPR6PR2:CJNEA,#03H,PR3SJMP

15、PR5PR3:CJNEA,#04H,PR8SJMPPR4PR4:CALLDELAYPR5:CALLDELAYPR6:CALLDELAYPR7:CALLDISPLAY;调用显示子程序调用显示子程序PR8:POPACCRET2022-12-17电子工程设计中心DISPLAY:MOVDPTR,#TAB;在数码管在数码管2上显示对应的键值上显示对应的键值MOVA,KEYMOVC A,A+DPTRMOVDPTR,#0MOVX DPTR,ARETDELAY:MOVR7,#0H;延时子程序延时子程序D1:MOVR6,#0HDJNZR6,$MOVR5,INPUT_BUF ;从从P3口读入按键状态口读入按键状态

16、CJNER5,#0FBH,D2 ;根据所按的键存储对应的键值根据所按的键存储对应的键值1-4MOVKEY,#1D2:CJNER5,#0F7H,D3MOVKEY,#2D3:CJNER5,#0EFH,D4MOVKEY,#32022-12-17电子工程设计中心D4:CJNER5,#0DFH,D5MOVKEY,#4D5:DJNZR7,D1 RET TAB:DB0FFH,0F9H,0A4H,0B0H,099H;显示字符段码显示字符段码表表END2022-12-17电子工程设计中心本节作业本节作业1.1.观察与思考观察与思考1-11-1到到1-51-52.2.练习题一练习题一 1-1/1-21-1/1-2

17、1-11-1要求:要求:解决问题的思路解决问题的思路/理由理由 解决方法解决方法用什么指令用什么指令 修改后的源程序,该过或添加的修改后的源程序,该过或添加的 指令加下划线指令加下划线2022-12-17电子工程设计中心中断控制操作程序调试练习中断控制操作程序调试练习中断控制原理中断控制原理1010101010101010101010101010101010TCONIPIESCONTIRI+TXRXEX0IE0TF0TF1IE1ET0EX1ET1ESIT0IT1边沿边沿边沿边沿电平电平电平电平PX0PX1PT0PT1PSC/T0C/T1INT0EA矢量矢量地址地址矢量矢量地址地址INT1PCP

18、C高级高级低级低级中断中断请求请求中断中断请求请求2022-12-17电子工程设计中心操作方法操作方法B8HB9HBAHBBHBCH位地址位地址PX0PT0PX1PT1PSIPA8HA9HAAHABHACHAFH位地址位地址EX0ET0EX1ET1ESEAIE88H89H8AH8BH8DH8FH位地址位地址IT0IE0IT1IE1TF0TF1TCON98H99H位地址位地址R1T1SCON中断优先级寄存器中断优先级寄存器IP(B8H)中断允许寄存器中断允许寄存器IE(A8H)定时计数器控制寄存器定时计数器控制寄存器TCON(88H)串行通信控制寄存器串行通信控制寄存器SCON(98H)2022

19、-12-17电子工程设计中心例例5 5:中断控制程序调试:中断控制程序调试外部中断触发电路外部中断触发电路2022-12-17电子工程设计中心 ORG 0000H LJMP INITIAL ;主程序入口主程序入口 ORG 0003H LJMP STAR ;外中断外中断0服务程序入口服务程序入口,开始键(开始键(STAR)ORG 0013H LJMP STOP ;外中断外中断1服务程序入口服务程序入口 停止键(停止键(STOP)ORG 0100HINITIAL:MOV A,#0FFH MOV P1,#0FFH;熄灭全部发光二极管熄灭全部发光二极管 MOV DPTR,#00H MOVX DPTR,

20、A ;清除数码管清除数码管2(DS2)显示)显示 MOV A,#0FEH ;点亮发光二极管的初始数据点亮发光二极管的初始数据 MOV R1,#1H;发光二极管点亮位置初值发光二极管点亮位置初值 MOV IP,#01H;设置设置INT0(开始键(开始键STAR)为高优先级)为高优先级 MOV TCON,#05H;外中断采用边沿触发外中断采用边沿触发 SETB EX1;INT1(停止键(停止键STOP)开中断)开中断 SETB EA;开放中断开放中断程序清单程序清单2022-12-17电子工程设计中心LOOP:CLR EA;关闭中断关闭中断 RL A MOV P1,A;刷新发光二极管控制数据刷新发

21、光二极管控制数据 INC R1;发光二极管点亮位置计数值增发光二极管点亮位置计数值增1 SETB EA;开放中断开放中断 LCALL DELAY1;延时延时 LCALL DELAY1 CJNE R1,#8,LOOP;发光二极管点亮位置计数值有效性检测发光二极管点亮位置计数值有效性检测 MOV R1,#0H;发光二极管点亮位置计数值等于发光二极管点亮位置计数值等于8则回则回0 SJMP LOOP;无限次循环无限次循环;停止键的中断服务程序停止键的中断服务程序STOP:PUSH ACC;保护保护A寄存器内容寄存器内容 MOV A,R1;读取发光二极管点亮位置计数值读取发光二极管点亮位置计数值 MO

22、V DPTR,#TAB MOVC A,A+DPTR;获取发光二极管点亮位置计数值的显示段码获取发光二极管点亮位置计数值的显示段码 MOV DPTR,#00H MOVX DPTR,A;发光二极管点亮位置计数值的显示数据送显示发光二极管点亮位置计数值的显示数据送显示 SETB EX0;INT0(启动键(启动键STAR)开中断)开中断 JNZ$;等待重新启动条件等待重新启动条件-A=02022-12-17电子工程设计中心 MOV A,#0FFH MOVX DPTR,A ;清除数码管清除数码管2(DS2)显示)显示 CLR EX0;禁止禁止INT0中断(避免程序误动作)中断(避免程序误动作)POP A

23、CC;恢复恢复A寄存器内容寄存器内容 CLR IE1;清除清除INT1中断标志(避免程序误动作)中断标志(避免程序误动作)RETI;中断返回中断返回 ;启动键的中断服务程序启动键的中断服务程序STAR:MOV A,#00H;设置启动条件设置启动条件-A=0 CLR IE0;清除清除INT0中断标志(避免程序误动作)中断标志(避免程序误动作)RETI;中断返回中断返回TAB:DB0C0H,0F9H,0A4H,0B0H,099H;0-4段码段码 DB092H,082H,0F8H,080H;5-8段码段码DELAY1:MOV R6,#0;延时子程序延时子程序D1:MOV R7,#0 DJNZ R7,

24、$DJNZ R6,D1 RET2022-12-17电子工程设计中心定时器定时器/计数器操作程序调试练习计数器操作程序调试练习定时器定时器/计数器工作原理计数器工作原理123121230T/C 1T/C 01OSC 1212 计数器计数器TF T0(P3.4)TR0GATE P3.2中断中断计数器溢出,计数器溢出,TF=1发出中断申请发出中断申请2022-12-17电子工程设计中心寄存器寄存器D7D6D5D4D3D2D1D0TMOD GATEM1M0GATEM1M0T/CT/C定时定时/计数器计数器1定时定时/计数器计数器0 定时定时/计数选择计数选择计数器计数器定时器定时器0T/C 1T/C

25、工作方式选择工作方式选择方式方式1方式方式2M1/M0=01M1/M0=10 控制方式选择控制方式选择TRx单独控制单独控制TRx与与INTx共同控制共同控制GATE=0GATE=1操作方法操作方法2022-12-17电子工程设计中心XXXXXXXXTHxD0D1D2D3D4D5D6D7寄存器寄存器XXXXXXXXTLxD0D1D2D3D4D5D6D7寄存器寄存器 计数值装载计数值装载寄存器寄存器D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0 启动控制启动控制2022-12-17电子工程设计中心例例6 6:计数器程序调试:计数器程序调试外部计数脉冲输入电路外部计数脉冲输入电路

26、2022-12-17电子工程设计中心DP2EQU00000HDP_L EQU 30H ;低位数值暂存器低位数值暂存器DP_H EQU 31H;高位数值暂存器高位数值暂存器MAIN:MOV TMOD,#01100110B ;C/T0,C/T1工作在方式工作在方式2MOVA,#0;显示初值为显示初值为0MOVDP_L,AMOVDP_H,ACALLDISPLAY;调用显示子程序显示初值调用显示子程序显示初值0MOVTL0,#0;C/T0置初值置初值0MOVTL1,#0;C/T1置初值置初值0SETBTR1;启动计数器启动计数器1LOOP:MOVA,TL0;读计数器读计数器0的计数值的计数值CJNEA

27、,#10H,L1;如果如果A中为中为16时时MOVTL0,#0;计数器计数器0清清0L1:MOVDP_H,A;在在DS2显示计数器显示计数器0的计数值的计数值MOVA,TL1;读计数器读计数器1的计数值的计数值CJNEA,#10H,L2;如果如果A中为中为16时时MOVTL1,#0;计数器计数器1清清0程序清单程序清单2022-12-17电子工程设计中心L2:MOV DP_L,A;在在DS2显示计数器显示计数器0的计数值的计数值 CALLDISPLAY;调用显示子程序显示计数值调用显示子程序显示计数值 SJMPLOOP ;无限次循环无限次循环DISPLAY:MOVA,DP_L;读低位显示值读低

28、位显示值 CALLDECODE;调用换码子程序调用换码子程序 MOVDPTR,#DP2;显示段码送显示段码送DS2 MOVXDPTR,A MOVA,DP_H;读高位显示值读高位显示值 CALLDECODE;调用换码子程序调用换码子程序 MOVP1,A;显示段码送显示段码送DS1 RETDECODE:MOVDPTR,#TAB MOVCA,A+DPTR RET2022-12-17电子工程设计中心DELAY:MOVR5,#80HD1:MOV R6,#0H DJNZ R6,$DJNZ R5,D1 RETTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H;段码段码

29、0-7 DB080H,090H,088H,083H,0C6H,0A1H,086H,08EH;段码段码8-F END 2022-12-17电子工程设计中心例例7 7:定时器程序调试:定时器程序调试DS1EQUP1;数码管数码管1(DS1)访问地址)访问地址DS2EQU0H;数码管数码管2(DS2)访问地址)访问地址US100EQU30H;100uS 软件计数器地址软件计数器地址MS1 EQU31H;1MS 软件计数器地址软件计数器地址MS100EQU32H;100MS 软件计数器地址软件计数器地址S1EQU33H;1S 软件计数器地址软件计数器地址ORG0000HAJMPMAINORG000BH

30、;定时器定时器/计数器计数器0中断服务程序入口地址中断服务程序入口地址AJMPTIMERMAIN:MOVA,#0FFH;清除显示清除显示MOVDS1,AMOVDPTR,#DS2MOVX DPTR,ACLRA;软件计数器清软件计数器清02022-12-17电子工程设计中心MOVUS100,AMOVMS1,AMOVMS100,AMOVS1,AMOVTMOD,#02H;定时器定时器/计数器计数器0 工作于方式二工作于方式二MOVTL0,#155;定时器定时器/计数器计数器0 100uS计数值计数值MOVTH0,#155;定时器定时器/计数器计数器0 重装填计数值重装填计数值SETBTR0;启动定时器

31、启动定时器/计数器计数器0 计数计数SETBET0;开放定时器开放定时器/计数器计数器0 中断中断SETBEA;中断允许中断允许SJMP$TIMER:INC US100;100uS软件计数器加软件计数器加1MOVR0,#US100CJNER0,#10,TIM3;计数未达到计数未达到1MS转转TIM3MOVUS100,#0;否则否则100uS软件计数器清软件计数器清0INCMS1;1MS软件计数器加软件计数器加1INCR02022-12-17电子工程设计中心CJNER0,#100,TIM3;计数未达到计数未达到100MS转转TIM3MOVMS1,#0;否则否则1MS软件计数器清软件计数器清0IN

32、CMS100;100MS软件计数器加软件计数器加1INCR0CJNER0,#10,TIM2;计数未达到计数未达到1S转转TIM2MOVMS100,#0;100MS软件计数器清软件计数器清0INCS1;1S软件计数器加软件计数器加1INCR0CJNER0,#10,TIM1;计数未达到计数未达到10S转转TIM1MOVS1,#0;1S软件计数器清软件计数器清0TIM1:MOVA,S1;读取秒计数值读取秒计数值CALLDECODE;转换为显示段码转换为显示段码MOVDS1,A;秒计数值送数码管秒计数值送数码管1显示显示TIM2:MOVA,MS100;读取读取100毫秒计数值毫秒计数值CALLDECO

33、DE;转换为显示段码转换为显示段码MOVDPTR,#DS2MOVX DPTR,A;100毫秒计数值送数码管毫秒计数值送数码管2显示显示TIM3:RETI;中断返回中断返回2022-12-17电子工程设计中心DECODE:MOVDPTR,#TAB;段码表头地址送段码表头地址送DPTRMOVC A,A+DPTR;读取显示段码数据读取显示段码数据RET;子程序返回子程序返回TAB:DB 0C0H,0F9H,0A4H,0B0H,099H;0-4段码段码DB 092H,082H,0F8H,080H,090H;5-9段码段码END2022-12-17电子工程设计中心本节作业本节作业1.1.练习题二练习题二

34、 2-1 2-1(1 1)2.2.练习题二练习题二 2-1 2-1(2 2)-(4 4)任选)任选1 1题题以上各题要求同以上各题要求同1-11-13.3.练习题二练习题二 2-32-32022-12-17电子工程设计中心串行数据传送操作程序调试练习串行数据传送操作程序调试练习准备工作准备工作1.1.串行通信接口工作方式设置串行通信接口工作方式设置2.2.串行通信中断控制设置串行通信中断控制设置3.3.波特率发生器设置波特率发生器设置计数值计数值波特率波特率 256112f322SOCMODE2022-12-17电子工程设计中心例例8 8:串行通信程序调试:串行通信程序调试PCPC机串行通信程

35、序调试环境机串行通信程序调试环境2022-12-17电子工程设计中心DP2EQU00000H;数码管数码管2(DS2)访问地址)访问地址TIM_LEQU 0FDH;定时器定时器/计数器计数器1计数值(计数值(9600波特率)波特率)TIM_HEQU 0FDH ;定时器定时器/计数器计数器1 重装填计数值重装填计数值DP_L EQU 40H ;数码管数码管2(DS2)显示数据缓冲器)显示数据缓冲器DP_H EQU 41H;数码管数码管1(DS1)显示数据缓冲器)显示数据缓冲器FLAGBIT01H;按键有效标志按键有效标志ORG 0000HLJMP MAIN;转主程序转主程序ORG 0023HLJ

36、MP RECE;转串行通信中断服务程序转串行通信中断服务程序MAIN:MOV TMOD,#00100000B;定时器定时器/计数器计数器1 工作于方式二工作于方式二 MOV TH1,#TIM_H ;定时器定时器/计数器计数器1重装填值重装填值MOV TL1,#TIM_L ;定时器定时器/计数器计数器1计数值计数值SETB TR1 ;启动定时器启动定时器/计数器计数器1计数计数 MOV SCON,#01010000B ;串行端口工作于方式串行端口工作于方式1SETB ES ;开放串行端口中断开放串行端口中断SETB EA ;中断中断允许允许2022-12-17电子工程设计中心LOOP:CALLK

37、EYBOARD ;调用键值读取子程序调用键值读取子程序CJNEA,#0FFH,L0;键值不为键值不为FFH表示收到数据表示收到数据CLRFLAG;清除有键按下标志清除有键按下标志SJMPLOOP ;键值为键值为FFH(无按键按下)不作处理(无按键按下)不作处理L0:JBFLAG,LOOP;按下的按键尚未释放不作处理按下的按键尚未释放不作处理ADDA,#30H;键值小于键值小于10,加,加30H转换为转换为ASCII码码MOVSBUF,A;发送发送SETBFLAG;置位有键按下的标志置位有键按下的标志SJMPLOOP;无限次循环无限次循环 RECE:JNB TI,REC1;非发送转接收处理非发送

38、转接收处理CLRTI ;清除发送中断标志清除发送中断标志 RETI ;中断返回中断返回REC1:PUSH ACC ;保护累加器保护累加器AMOVA,SBUF ;接收串行数据接收串行数据 PUSHACC;暂存暂存ANLA,#0FH;取低取低4位位MOVDP_L,A;送低位显示数据缓冲器送低位显示数据缓冲器2022-12-17电子工程设计中心POP ACC ;读取暂存数据读取暂存数据 SWAPAANLA,#0FH;取高取高4位位MOVDP_H,A;送高位显示数据缓冲器送高位显示数据缓冲器CALLDISPLAY ;调用显示子程序调用显示子程序POP ACC ;恢复累加器恢复累加器A CLRRI;清除

39、接收中断标志清除接收中断标志RETI ;中断返回中断返回 KBD:MOVA,P3;读取按键状态数据读取按键状态数据RRA;按键状态数据右移按键状态数据右移2位,取得有效数据位,取得有效数据RRARRCA;按键状态数据带进位右移按键状态数据带进位右移1位,按键位,按键K1状态装入状态装入CYJCK1;按键按键K1未按下转按键未按下转按键K5的处理的处理MOVA,#1;否则按键否则按键K1代码代码1送送A寄存器寄存器SJMPK5;返回返回K1:RRCA;按键状态数据带进位右移按键状态数据带进位右移1位,按键位,按键K5状态装入状态装入CYJCK2;按键按键K5未按下转按键未按下转按键K9的处理的处

40、理MOVA,#2;否则按键否则按键K5代码代码2送送A寄存器寄存器SJMPK5;返回返回2022-12-17电子工程设计中心K2:RRCA;按键状态数据带进位右移按键状态数据带进位右移1位,按键位,按键K9状态装入状态装入CYJCK3;按键按键K9未按下转按键未按下转按键K13的处理的处理MOVA,#3;否则按键否则按键K9代码代码3送送A寄存器寄存器SJMPK5;返回返回K3:RRCA;按键状态数据带进位右移按键状态数据带进位右移1位,按键位,按键K13状态装入状态装入CYJCK4;按键按键K13未按下转无按键按下的处理未按下转无按键按下的处理MOVA,#4;否则按键否则按键K13代码代码4

41、送送A寄存器寄存器SJMPK5;返回返回K4:MOVA,#0FFH;无按键按下代码无按键按下代码0FFH送送A寄存器寄存器K5:RET;返回返回DSPY:MOVA,DP_L;接收数据显示子程序接收数据显示子程序CALLDECODEMOVDPTR,#DP2MOVX DPTR,AMOVA,DP_HCALLDECODEMOVP1,ARET2022-12-17电子工程设计中心DCODE:MOV DPTR,#TAB;换码子程序换码子程序 MOVC A,A+DPTR RETDELAY:MOV R5,#80H;延时子程序延时子程序D1:MOV R6,#0H DJNZR6,$DJNZR5,D1RETTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H;0-7段码段码DB080H,090H,088H,083H,0C6H,0A1H,086H,08EH;8-F段码段码END 2022-12-17电子工程设计中心本节作业本节作业练习题三练习题三 3-1 3-1 要求同要求同1-11-1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(8051单片机实验课件单片机实验.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|