单片机实验程序_2.docx

上传人:安*** 文档编号:19020305 上传时间:2022-06-03 格式:DOCX 页数:17 大小:18.60KB
返回 下载 相关 举报
单片机实验程序_2.docx_第1页
第1页 / 共17页
单片机实验程序_2.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《单片机实验程序_2.docx》由会员分享,可在线阅读,更多相关《单片机实验程序_2.docx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机实验程序一1修改例程一的源程序1将A寄存器的初值改为80H正逻辑,数据位为1表示发光二极管点亮,再对源程序进行简单修改,使程序运行后发光二极管情况与修改前一样。2将LED向左循环移位点亮改为向右循环移位点亮3加快LED循环移位点亮的速度$include(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令INIT:LCALLInit_Device调用初始设置子程序赋初始值并在发光二极管上显示该数值;1MOVA,#080HCPLAMOVP3,ALOOP:CALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCA

2、LLDELAY2RLA;A寄存器内容右移1位并送1发光二极管显示MOVP3,AAJMPLOOP;无限循环DELAY:MOVR5,#0H;延时子程序D1:MOVR6,#00HDJNZR6,$DJNZR5,D1RET$include(Init_Device.inc);初始设置子程序文件包含伪指令END3可删除几个CALLDELAY语句即可加快循环速度2将例程二0F的循环显示改为09的循环显示$include(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令0000HORGINITLJMPTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,

3、0F8H;字符段码表0-7DB080H,090H;字符段码表8-FlcallINIT:Init_Device;调用初始设置子程序MOVINIT1:R1,#00H;操作数据初始值A,R1MOVA中数值对应的显示段码MOVDPTR,#TABMAIN:;读取与A,A+DPTRMOVC显示MOVP5,A;段码送并行口1DELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALLDELAYCALL1增R1;操作数据(R1)INCA,

4、R1MOVFA,#0AH,MAIN;检查操作数据能否大于显示范围CJNE;无限循环SJMPINIT1;DELAY:延时子程序R5,#0HMOVR6,#0HMOVD1:R6,$DJNZR5,D1DJNZRET$include(Init_Device.inc);初始设置子程序文件包含伪指令END二1.例程5程序修改1将KEY2、KEY4的功能对调2每次停下再启动以后,更改发光二极管点亮的循环方向$include(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令ORG0000HLJMPINITIAL;主程序入口ORG0003HLJMPSTOP;外中断0服务程序入口,开场

5、键STARORG0013HLJMPSTAR;外中断1服务程序入口停止键STOPORG0100HINITIAL:LCALLInit_Device;调用初始设置子程序MOVP3,#0FFH;熄灭全部发光二极管MOVA,#0FFHMOVDPTR,#7F80HMOVXDPTR,A;去除数码管2NUM2显示MOVA,#0FEH;点亮发光二极管的初始数据MOVR1,#1H;发光二极管点亮位置初值MOVR4,#0FHMOVIP,#04H;设置INT0开场键STAR为高优先级MOVTCON,#05H;外中断采用边沿触发SETBEX0;INT1停止键STOP开中断SETBEA;开放中断LOOP:CLREA;关闭

6、中断CJNER4,#0FH,LPRLACJNER4,#0FH,LPMOVP3,ACJNER4,#0FH,LPINCR1CJNER4,#0FH,LPEASETBLCALLDELAY1LCALLDELAY1LCALLDELAY1LCALLDELAY1CJNER1,#8H,LOOPMOVR1,#0HSJMPLOOPLP:CLREACJNER4,#0F0H,LOOPRRACJNER4,#0F0H,LOOPMOVP3,ACJNER4,#0F0H,LOOPDECR1CJNER4,#0F0H,LOOPSETBEALCALLDELAY1LCALLDELAY1LCALLDELAY1LCALLDELAY1CJNE

7、R1,#0H,LPMOVR1,#8HSJMPLP;停止键的中断服务程序STOP:PUSHACC;保护A寄存器内容MOVA,R1;读取发光二极管点亮位置计数值MOVDPTR,#TABMOVCA,A+DPTR;获取发光二极管点亮位置计数值的显示段码MOVDPTR,#7F80HMOVXDPTR,A;发光二极管点亮位置计数值的显示数据送显示SETBEX1;INT0启动键STAR开中断JNZ$;等待重新启动条件-A=0MOVA,#0FFHMOVXDPTR,A;去除数码管2NUM2显示CLREX1;禁止INT0中断避免程序误动作POPACC;恢复A寄存器内容CLRIE1;去除INT1停止键STOP中断标志

8、避免程序误动作RETI;中断返回;启动键的中断服务程序-A=0设置启动条件;A,#00HMOVSTAR:CLRIE0;去除INT0启动键STOP中断标志避免程序误动作PUSHACCMOVA,R4CPLAMOVR4,APOPACCRETI;中断返回TAB:DB0C0H,0F9H,0A4H,0B0H,099H;0-4段码DB092H,082H,0F8H,080H;5-8段码DELAY1:MOVR6,#0;延时子程序D1:MOVR7,#0DJNZR7,$DJNZR6,D1RET$include(Init_Device.inc);初始设置子程序文件包含伪指令END2.修改例程6,将计数范围由0-F扩展

9、至00-FF使用定时器/计时器0,并在2位数码管上用10进制数显示计数结果00-99$include(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令DP2EQU07F80HDP_LEQU30H;低位数值暂存器DP_HEQU31H;高位数值暂存器MAIN:LCALLInit_Device;调用初始设置子程序MOVTMOD,#00000101B;C/T0工作于方式2MOVA,#0;显示初值为0MOVDP_L,AMOVDP_H,ACALLDISPLAY;调用显示子程序显示初值0置初值;C/T0TL0,#0MOVSETBTR0;启动计数器0LOOP:MOVA,TL0;读

10、计数器0的计数值CJNEA,#0AH,L1MOVTL0,#0MOVA,#0INCDP_HMOVA,DP_HCJNEA,#0AH,MMMOVDP_H,#0MM:MOVA,#0L1:MOVDP_L,A;在NUM2显示计数器0的计数值CALLDISPLAY;调用显示子程序显示计数值SJMPLOOP;无限次循环;显示子程序DISPLAY:MOVA,DP_L;读低位显示值CALLDECODE;调用换码子程序MOVDPTR,#DP2;显示段码送NUM2MOVXDPTR,AMOVA,DP_H;读高位显示值CALLDECODE;调用换码子程序MOVP5,ARET;换码子程序DECODE:MOVDPTR,#TA

11、BMOVCA,A+DPTRRETTAB:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H;显示段码0-7DB080H,090H,088H,083H,0C6H,0A1H,086H,08EH;显示段码8-F$include(Init_Device.inc);初始设置子程序文件包含伪指令END三通过对例程8的程序进行修改和上机调试,改变源程序的功能1将发送1、2、3、4的ASCII码改为发送A、B、C、D的ASCII码2将接收的第2、第3字节数据的显示位置交换$include(C8051F020.inc);C8051F02x系列单片机信息头文件包含伪指令NUM2EQ

12、U07F80H;NUM2地址NUM3EQU07F90H;NUM3地址NUM4EQU07FA0H;NUM4地址NUM5EQU07FB0H;NUM5地址TIM_LEQU0FDH;T/C1低字节计数值TIM_HEQU0FDH;T/C1高字节计数值REC_BUF0EQU32H;数据接收缓冲器0REC_BUF1EQU34H;数据接收缓冲器1REC_BUF2EQU33H;数据接收缓冲器2FLAGBIT01H;数据发送完成标志ORG0000HLJMPMAIN;转主程序ORG0023HLJMPRECE;转串行通信中断程序;主程序MAIN:lcallInit_Device;C8051F02x系列单片机信息头文件包含伪指令MOVA,#0FFHMOVP5,AMOVDPTR,#NUM2MOVXDPTR,A;去除数码管NUM1的显示MOVDPTR,#NUM3MOVXDPTR,A;去除数码管NUM2的显示MOVDPTR,#NUM4MOVXDPTR,A;去除数码管NUM3的显示MOVDPTR,#NUM5MOVXDPTR,A;去除数码管NUM4的显示MOVR6,#0;通信操作状态寄存器去除

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 培训材料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁