《单片机原理及应用》实验程序.doc_第1页
《单片机原理及应用》实验程序.doc_第2页
《单片机原理及应用》实验程序.doc_第3页
《单片机原理及应用》实验程序.doc_第4页
《单片机原理及应用》实验程序.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用实验程序单片机原理及应用实验程序一、输出控制 1、LED单灯闪烁;= 1、LED单灯闪烁 = ORG 0000H ;程序从0地址开始执行LOOP: SETB P2.0 ;将Port2输出第0位设置为1 CALL DELAY ;调用延时子程序CLR P2.0 ;将Port2输出第0位设置为0CALL DELAY ;调用延时子程序 JMP LOOP ;跳转到LOOP处执行; = 延时0.1秒子程序 =DELAY: MOV R7,#200 ;R7寄存器加载200次D1: MOV R6,#250 ;R6寄存器加载250次 DJNZ R6,$ ;本指令执行R6次 DJNZ R7,D1 ;D1子程序执行R7次 RET ;返回主程序 END ;程序结束;= 结束 =;= 1、LED单灯闪烁 = ORG 0000H ;程序从0地址开始执行CLR P2.0 ;将Port2输出第0位设置为0LOOP: CPL P2.0 ;将Port2输出第0位的值取反 CALL DELAY ;调用延时子程序 JMP LOOP ;跳转到LOOP处执行; 延时0.1秒子程序(省略) END ;程序结束;= 结束 = 2、LED 4灯交替闪烁电路;= 2、LED 4灯交替闪烁程序 = ORG 0000H ;程序从0地址开始执行START: MOV A,#0fH ;让累加器A的值为00001111LOOP: MOV P2, A ;让Port2输出累加器A的内容 CPL A ;将累加器A的内容按位取反 CALL DELAY ;调用延时子程序 JMP LOOP ;跳转到LOOP处执行; 延时0.1秒子程序(省略) END ;程序结束;= 结束 = 3、LED左移、右移流水灯;= 3、LED左移、右移流水灯 = ORG 0000H ;程序从0地址开始执行START: MOV P2,#0H ;让累加器A的值为00000000LOOP: SETB P2.0 ;将Port2输出第0位设置为1 CALL DELAY ;调用延时子程序 CLR P2.0 ;将Port2输出第0位设置为0 SETB P2.1 ;将Port2输出第1位设置为1 CALL DELAY ;调用延时子程序 CLR P2.1 ;将Port2输出第1位设置为0 SETB P2.2 ;将Port2输出第2位设置为1 CALL DELAY ;调用延时子程序 CLR P2.2 ;将Port2输出第2位设置为0 SETB P2.3 ;将Port2输出第3位设置为1 CALL DELAY ;调用延时子程序 CLR P2.3 ;将Port2输出第3位设置为0 SETB P2.4 ;将Port2输出第4位设置为1 CALL DELAY ;调用延时子程序 CLR P2.4 ;将Port2输出第4位设置为0 SETB P2.5 ;将Port2输出第5位设置为1 CALL DELAY ;调用延时子程序 CLR P2.5 ;将Port2输出第5位设置为0 SETB P2.6 ;将Port2输出第6位设置为1 CALL DELAY ;调用延时子程序 CLR P2.6 ;将Port2输出第6位设置为0 SETB P2.7 ;将Port2输出第7位设置为1 CALL DELAY ;调用延时子程序 CLR P2.7 ;将Port2输出第7位设置为0 JMP LOOP ;跳转到LOOP处执行; 延时0.1秒子程序(省略) END ;程序结束;= 结束 =;= 3、LED左移、右移流水灯 = ORG 0000H ;程序从0地址开始执行START: MOV P2,#0H ;让Port2输出00000000LOOP: MOV P2,#01H ;将Port2输出00000001 CALL DELAY ;调用延时子程序 MOV P2,#02H ;将Port2输出00000010 CALL DELAY ;调用延时子程序 MOV P2,#04H ;将Port2输出00000100 CALL DELAY ;调用延时子程序 MOV P2,#08H ;将Port2输出00001000 CALL DELAY ;调用延时子程序MOV P2,#10H ;将Port2输出00010000 CALL DELAY ;调用延时子程序 MOV P2,#20H ;将Port2输出00100000 CALL DELAY ;调用延时子程序 MOV P2,#40H ;将Port2输出01000000 CALL DELAY ;调用延时子程序 MOV P2,#80H ;将Port2输出10000000 CALL DELAY ;调用延时子程序 JMP LOOP ;跳转到LOOP处执行; 延时0.1秒子程序(省略) END ;程序结束;= 结束 =;= 3、LED左移、右移流水灯 = ORG 0000H ;程序从0地址开始执行START: MOV A,#0FEH ;让累加器A的值为11111110LOOP: MOV P2,A ;让Port2输出累加器A的内容 RL A ;(RR A) ;将累加器A的内容按位左移(右移)一位 CALL DELAY ;调用延时子程序 JMP LOOP ;跳转到LOOP处执行; 延时0.1秒子程序(省略) END ;程序结束;= 结束 = 4、LED奇、偶流水灯 5、聚中双移流水灯 6、发散双移流水灯二、输入控制 1、单刀单控指拨开关 2、多刀多控指拨开关;= 2、多刀多控指拨开关 = ORG 0000H ;程序从0地址开始执行START: MOV P2,#0FFH ;将Port2设置成输入状态LOOP: MOV A,P2 ;让累加器A接收Port2的输出值 MOV P0,A ;将累加器A的值输出到Port0 JMP LOOP ;跳转到LOOP处执行 END ;程序结束;= 结束 = 3、双刀单控指拨开关(楼道双开关) 4、多刀单控指拨开关(奇偶校验器) 5、单按钮单控开关;= 5、单按钮单控开关 = ORG 0000H ;程序从0地址开始执行START: SETB P0.0 ;将p0.0位设置为输入功能 LOOP: JNB P0.0,ON ;若p0.0端按钮接通,则跳至ONJMP LOOP ;跳至LOOP形成一个死循环ON: CPL P2.0 ;将P2.0 输出的值取反ON_1: JB P0.0,LOOP ;若p0.0端按钮未接通,则跳至LOOP JMP ON_1 ;跳至ON_1形成一个死循环END ;程序结束;= 结束 = 6、双按钮单控开关;= 7、多按钮多控开关 = ORG 0000H ;程序从0地址开始执行START: MOV P0,#0FFH ;将p0.0位设置为输入功能 LOOP: JNB P0.0,ON0 JNB P0.1,ON1 JNB P0.2,ON2JNB P0.3,ON3JNB P0.4,ON4JNB P0.5,ON5 JNB P0.6,ON6JNB P0.7,ON7CALL DELAY16JMP LOOP ON0: CPL P2.0 ON_0: JB P0.0,LOOP JMP ON_0 ON1: CPL P2.1 ON_1: JB P0.1,LOOP JMP ON_1 ON2: CPL P2.2 ON_2: JB P0.2,LOOP JMP ON_2ON3: CPL P2.3 ON_3: JB P0.3,LOOP JMP ON_3ON4: CPL P2.4 ON_4: JB P0.4,LOOP JMP ON_4ON5: CPL P2.5 ON_5: JB P0.5,LOOP JMP ON_5ON6: CPL P2.6 ON_6: JB P0.6,LOOP JMP ON_6ON7: CPL P2.7 ON_7: JB P0.7,LOOP JMP ON_7 ; = 防抖动延时16毫秒子程序 =DELAY16: MOV R7,#100 ;R7寄存器加载200次D1: MOV R6,#200 ;R6寄存器加载250次 DJNZ R6,$ ;本指令执行R6次 DJNZ R7,D1 ;D1子程序执行R7次 RET ;返回主程序END ;程序结束 ;= 结束 =三、LED数码管显示 1、1位直接控制计数器;= 1、1位直接控制计数器 = ORG 0000H ;程序从0地址开始执行START: SETB P0.0 ;将p0.0位设置为输入功能 SETB P0.1SETB P0.2 MOV A,#0HLOOP: CPL A MOV P2,ACPL A JNB P0.0,ADDxh ;若p0.0端按钮接通,则跳至ONCALL DELAY16JNB P0.1,DECxhCALL DELAY16JNB P0.2,Zxh JMP LOOP ;跳至LOOP形成一个死循环ADDxh: INC A ;将P2.0 输出的值取反ON_1: JB P0.0,LOOP ;若p0.0端按钮未接通,则跳至LOOP JMP ON_1 ;跳至ON_1形成一个死循环DECxh: DEC A ;将P2.0 输出的值取反ON_2: JB P0.1,LOOP ;若p0.0端按钮未接通,则跳至LOOP JMP ON_2 ;跳至ON_1形成一个死循环Zxh:MOV A,#0HJMP LOOP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论