文档详情

《单片机原理及应用》实验程序.doc

夏**
实名认证
店铺
DOC
36.50KB
约8页
文档ID:543258192
《单片机原理及应用》实验程序.doc_第1页
1/8

《单片机原理及应用》实验程序《单片机原理及应用》实验程序一、输出控制 1、LED单灯闪烁①②③④⑤⑥⑦⑧⑨⑩;============== 1、LED单灯闪烁① ============== ORG 0000H ;程序从0地址开始执行LOOP: SETB P2.0 ;将Port2输出第0位设置为1 CALL DELAY ;调用延时子程序 CLR P2.0 ;将Port2输出第0位设置为0 CALL 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端按钮接通,则跳至ON JMP 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,ON2 JNB P0.3,ON3 JNB P0.4,ON4 JNB P0.5,ON5 JNB P0.6,ON6 JNB P0.7,ON7 CALL DELAY16 JMP 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 。

下载提示
相似文档
正为您匹配相似的精品文档