全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品按键实验指导书 按健实验实验一按下一个健,红色LED亮,绿色灭,按下另一个键,红色LED灭,绿色亮 一、新建项目key_1.prj,加入以下模块文件key_1.asm;定义变量g_KeyValue EQU34H b_PressKey BIT00H b_KeyValid BIT01H;定义代码段org0000H Reset:ljmp Mainorg0050H Main:lcall InitSystemMainLoop:lcall ScanKeylcall ReleaseKeylcall ControlKeyjmp MainLoop;子程序-InitSystem:clr b_PressKey clr b_KeyValid retScanKey:jnb b_PressKey,Ke0;若键已按下,则无需扫描ret Ke0:mov A,#03H orlP3,A mov A,P3anl A,#03H cjnea,#03H,Ke2Ke1:clr b_PressKey retKe2:lcall Delay_1ms mov a,P3anl a,#03H cjnea,#03H,Ke3sjmp Ke1Ke3:mov g_KeyValue,a setb b_PressKey setbb_KeyValid ret;-ReleaseKey:jb b_PressKey,RK1ret RK1:mov a,P3anl a,#03H cjnea,#03H,RK2clr b_PressKey;键释放RK2:ret;-ControlKey:jb b_KeyValid,CK1ret CK1:mov a,g_KeyValue cjnea,#01H,CK2clr p3.2setb p3.3sjmp CK3CK2:clr p3.3setb p3.2CK3:clr b_KeyValid ret;-Delay_1ms:mov r7,#200D_1ms1:nop djnzr7,D_1ms1ret END 二、编译,全速运行 三、按下一个健,看其显示如何变化,再按另一个健,看其显示如何变化 四、分析此程序如何实现按健功能 五、修改源程序,原来红色亮健改成绿色亮健,原来绿色亮健改成红色亮健实验二按下一个健,数码管显示增加一;按下另一个健,数码管显示减少 一一、新建项目key_1.prj,加入以下模块文件key_2.asm;定义变量g_DisplayBuff_1EQU30H g_DisplayBuff_2EQU31H g_Counter EQU32H g_KeyValue EQU34H b_PressKey BIT00H b_KeyValid BIT01H;定义代码段org0000H Reset:ljmp Mainorg0050H Main:lcall InitSystemMainLoop:lcall ScanKeylcall ReleaseKeylcall ControlKeylcall DisplayCounterjmp MainLoop;子程序-InitSystem:mov g_Counter,#50clr b_PressKey clr b_KeyValid retScanKey:jb b_PressKey,Ke1mov A,#03H orlP3,A movA,P3anl A,#03H cjnea,#03H,Ke2Ke0:clr b_PressKey Ke1:mov g_KeyValue,#0FFH retKe2:lcall Delay_1ms mov a,P3anl a,#03H cjnea,#03H,Ke3sjmp Ke0Ke3:mov g_KeyValue,a setbb_PressKey setbb_KeyValid ret;-ReleaseKey:jb b_PressKey,RK1ret RK1:mov a,P3anl a,#03H cjnea,#03H,RK2clr b_PressKey RK2:ret;-ControlKey:jb b_KeyValid,CK1ret CK1:mov a,g_KeyValue cjnea,#01H,CK2dec g_Counter sjmp CK3CK2:inc g_Counter CK3:clr b_KeyValid ret;-DisplayCounter:mov a,g_Counter movb,#10div abmov g_DisplayBuff_1,a mov g_DisplayBuff_2,b lcallDisplay ret;-Display:mov dptr,#charOnLED mov a,g_DisplayBuff_1movc a,a+dptr movp1,a setbp1.7lcall Delay_1ms movp1,#0FFH lcall Delay_1ms mova,g_DisplayBuff_2movc a,a+dptr movp1,a clrp1.7lcall Delay_1ms movp1,#7FH lcall Delay_1ms ret;-Delay_1ms:mov r7,#200D_1ms1:nop djnzr7,D_1ms1ret;-;-定义数据段-charOnLED:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,90H,88h,83h,0C6H,0A1H,86H,8EH END 二、编译,全速运行 三、按下一个健,看其显示如何变化,再按另一个健,看其显示如何变化 四、分析此程序如何实现按健功能 五、修改源程序,原来增一健变成减一健,原来减一健变成增一健 六、将此程序用编程器写入89C51后放入系统中运行实验三一个健为On健,当按下此健时数码管每隔1秒显示1,另一个健为Off健,当按下此健时数码管停止加1显示 一、新建项目key_2.prj,加入以下模块文件key_3.asm;定义变量g_DisplayBuff_1EQU30H g_DisplayBuff_2EQU31H g_Counter EQU32H g_KeyValue EQU34H g_Timer_1s EQU35H b_PressKey BIT00H b_KeyValid BIT01H b_IncCounter BIT02H;定义代码段org0000H Reset:ljmp Mainorg0050H Main:lcall InitSystemMainLoop:lcall ScanKeylcall ReleaseKeylcall ControlKeylcall DisplayCounterlcall IncCounterjmp MainLoop;子程序-InitSystem:mov g_Counter,#00clr b_PressKey clr b_KeyValid clr b_IncCounter retScanKey:jb b_PressKey,Ke1movA,#03H orlP3,A movA,P3anl A,#03H cjnea,#03H,Ke2Ke0:clrb_PressKey Ke1:mov g_KeyValue,#0FFH retKe2:lcall Delay_1ms mova,P3anl a,#03H cjnea,#03H,Ke3sjmp Ke0Ke3:mov g_KeyValue,a setbb_PressKey setbb_KeyValid ret;-ReleaseKey:jb b_PressKey,RK1ret RK1:mova,P3anl a,#03H cjnea,#03H,RK2clrb_PressKey RK2:ret;-ControlKey:jb b_KeyValid,CK1ret CK1:mova,g_KeyValue cjnea,#01H,CK2setbb_IncCounter mov g_Timer_1s,#255sjmpCK3CK2:clrb_IncCounter CK3:clrb_KeyValid ret;-IncCounter:jb b_IncCounter,IC1ret IC1:dec g_Timer_1s mova,g_Timer_1s jnzIC2mov g_Timer_1s,#255inc g_Counter mova,g_Counter cjnea,#100,IC2movg_Counter,#0IC2:ret;-DisplayCounter:mova,g_Counter movb,#10div abmovg_DisplayBuff_1,a movg_DisplayBuff_2,b lcallDisplay ret;-Display:mov dptr,#charOnLED mova,g_DisplayBuff_1movc a,a+dptr movp1,a setbp1.7lcallDelay_1ms mova,g_DisplayBuff_2movc a,a+dptr movp1,a clrp1.7lcallDelay_1ms ret;-Delay_1ms:mov r7,#200D_1ms1:nop nopnop djnzr7,D_1ms1ret;-;-定义数据段-charOnLED:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB80H,90H,88h,83h,0C6H,0A1H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解除融资居间合同范本
- 酒店前台接待合同范本
- 真实塔吊租赁合同范本
- 盖板加工承揽合同范本
- 监理房屋建设合同范本
- 药品合同生产质量协议
- 项目手续办理合同范本
- 滴管设备采购合同范本
- 满载货物送货合同范本
- 租广告车协议合同范本
- 2025年无锡市市属国有企业招聘笔试备考题库(带答案详解)
- 蒲公英劳技课课件
- 甲状腺生化检验课件
- 八年级语文上册统编版第六单元 课外古诗词诵读(公开课一等奖创新教学设计)
- 2024年宠物友好型酒店市场洞察报告-澎润研究院
- 水电站生产安全知识培训课件
- 河北《城市街区更新技术标准》
- 菌丝体包装应用-洞察及研究
- 2025年IT运维工程师专业培训考核试题及答案
- 岗位安全生产明白卡管理制度
- 中华人民共和国两用物项出口管制条例考试试卷试题及参考答案
评论
0/150
提交评论