找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1617|回复: 0
收起左侧

单片机红绿灯实验二

[复制链接]
ID:808939 发表于 2021-7-16 16:47 | 显示全部楼层 |阅读模式
本实验为红绿灯实验二,加入了数码管来显示倒计时,模拟交通灯的运行(压缩包中有仿真+程序)
51hei.png

单片机源程序如下:
  1. #include "reg51.h"
  2. #define u8 unsigned char
  3. sbit nan_lv=P2^0;//南北绿
  4. sbit nan_huang=P2^1;//南北黄
  5. sbit nan_hong=P2^2;//南北红
  6. sbit dong_lv=P2^3;//东西绿
  7. sbit dong_huang=P2^4;//东西黄
  8. sbit dong_hong=P2^5;//东西红
  9. void delay(long i){while(i--);}//定时器,延时
  10. //低要求:实现红黄绿灯的切换
  11. //中等要求:黄灯要闪烁
  12. //高水平:数码管实现倒计时
  13. void fun(u8 i)
  14. {
  15.         while(i--)
  16.         {
  17.                 P3=((i/10)<<4)+(i%10);
  18.                 delay(10000);
  19.         }
  20. }


  21. void main(void)
  22. {
  23.         u8 huang=0;//huang=黄灯倒计时
  24.         while(1)
  25.         {
  26.                 P2=0xff;nan_lv=0;dong_hong=0;
  27.                 fun(20);
  28.                 nan_lv=1;
  29.                 huang=9;
  30.                 while(huang--)
  31.                 {
  32.                         nan_huang=~nan_huang;
  33.                         P3=(((huang/2)/10)<<4)+((huang/2)%10);
  34.                         delay(7000);
  35.                 }
  36.                 P2=0xff;dong_lv=0;nan_hong=0;
  37.                 fun(20);
  38.                 dong_lv=1;
  39.                 huang=9;
  40.                 while(huang--)
  41.                 {
  42.                         dong_huang=~dong_huang;
  43.                         P3=(((huang/2)/10)<<4)+((huang/2)%10);
  44.                         delay(7000);
  45.                 }
  46.         }
  47. }
复制代码

所有资料51hei提供下载:
红绿灯实验二.rar (50.46 KB, 下载次数: 9)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表