c语言用p1口进行转弯灯实验,P1.0口转弯灯程序 单片机IO口的应用

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

程序框图

09d284d782a7e8c20a45905d04eb97d8.gif

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

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

程序框图

8b0fd614c158caf6b337fe0274bfb8c1.gif

3f39d076931bc22584a072bb2c6fa2f3.gif

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 口,使其输入输出。进一步了解了延时子程序的编写,以及它在程序中的意义。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值