P1.0口转弯灯程序 单片机IO口的应用

P1.0口转弯灯程序 单片机IO口的应用,第1张

P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮。P1.0、P1.1 开关同时接5V或接地时,转弯灯均不闪亮。

程序框图

P1.0口转弯灯程序 单片机IO口的应用,P1.0口转弯灯程序 单片机IO口的应用,第2张

P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮。

P1.0、P1.1 开关同时接5V或接地时,转弯灯均不闪亮。

程序框图

P1.0口转弯灯程序 单片机IO口的应用,P1.0口转弯灯程序 单片机IO口的应用,第3张

P1.0口转弯灯程序 单片机IO口的应用,P1.0口转弯灯程序 单片机IO口的应用,第4张

  P1.0,P1.1分别接拨动开关JP40的某两位,P1.4~P1.7依次接LED指示灯JP32的某四位,连续运行本程序;应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序(例如可把延时程序第一个字节改成返回指令22H)。

程序

ORG 0C30H

0C30 7590EF PX00: MOV P1,#0FFH;初始化

0C33 E590 PX03: MOV A,P1

0C35 F5F0 MOV B,A

0C37 5403 ANL A,#03H

0C39 B40126 CJNE A,#01H,PX01 ;满足只是P1.0为高条件吗?

0C3C 200012 JB 00H,PX04 ;闪烁标志位

0C3F C294 CLR P1.4

0C41 C295 CLR P1.5;开右灯

0C43 D296 SETB P1.6

0C45 D297 SETB P1.7;关左灯

0C47 7A20 MOV R2,#20H

0C49 120213 LCALL DELY;延时

0C4C D200 SETB 00H ;置标志位

0C4E 020C33 LJMP PX03;继续查状态

0C51 D294 PX04: SETB P1.4

0C53 D295 SETB P1.5

0C55 D296 SETB P1.6;关灯

0C57 D297 SETB P1.7

0C59 7A20 MOV R2,#20H

0C5B 120213 LCALL DELY;延时

0C5E C200 CLR 00H ;清标志位

0C60 8133 AJMP PX03;继续查状态

0C62 B40227 PX01: CJNE A,#02H,PX02 ;满足只是P1.1为高条件

;吗?

0C65 200112 JB 01H,PX05;判标志位

0C68 D294 SETB P1.4

0C6A D295 SETB P1.5;开左灯

0C6C C296 CLR P1.6

0C6E C297 CLR P1.7;关右灯

0C70 7A20 MOV R2,#20H ;延时

0C72 120213 LCALL DELY

0C75 D201 SETB 01H ;置标志位

0C77 020C33 LJMP PX03;继续查状态

0C7A D294 PX05: SETB P1.4

0C7C D295 SETB P1.5

0C7E D296 SETB P1.6;关灯

0C80 D297 SETB P1.7

0C82 7A20 MOV R2,#20H

0C84 120213 LCALL DELY;延时

0C87 C201 CLR 01H ;清标志位

0C89 020C33 LJMP PX03;继续查状态

0C8C D294 PX02: SETB P1.4

0C8E D295 SETB P1.5

0C90 D296 SETB P1.6;关灯

0C92 D297 SETB P1.7

0C94 020C33 LJMP PX03;继续

ORG 0213H

0213 C002 DELY: PUSH 02H

0215 C002 DEL2: PUSH 02H

0217 C002 DEL3: PUSH 02H ;延时

0219 DAFE DEL4: DJNZ R2,DEL4

021B D002 POP 02H

021D DAF8 DJNZ R2,DEL3

021F D002 POP 02H

0221 DAF2 DJNZ R2,DEL2

0223 D002 POP 02H

0225 DAEC DJNZ R2,DELY

0227 22 RET

  实验现象与结论 实验现象: P1.0开关接5V时右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮,P1.0、P1.1开关同时接5V或接地时,转弯灯均不闪亮。标志位为1表示现在有灯亮。 心得体会:通过本次试验掌握了单片机IO口的应用。能够熟练的 *** 作I/0 口,使其输入输出。进一步了解了延时子程序的编写,以及它在程序中的意义。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2646588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存