找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4395|回复: 3
收起左侧

单片机交通灯模拟系统 AD格式原理图与仿真源码设计

[复制链接]
ID:345452 发表于 2018-6-5 15:30 | 显示全部楼层 |阅读模式
Altium Designer画的交通灯模拟系统原理图如下:(51hei附件中可下载工程文件)
0.png

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. sbit LED0=P1^0;//南北R
  5. sbit LED1=P1^1;//南北G
  6. sbit LED2=P1^2;//东西R
  7. sbit LED3=P1^3;//东西G
  8. sbit d1=P0^0;//数码管位选
  9. sbit d2=P0^1;
  10. sbit d3=P0^2;
  11. sbit d4=P0^3;
  12. sbit Btton=P3^2;
  13. char timedao1;
  14. char timedao2;
  15. code unsigned char table[]=
  16. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//共阴数码管 0-9
  17. /***********************
  18. ***********************/
  19. void delayms(xms)           
  20. {
  21.    uint i,j;
  22.    for(i=xms;i>0;i--)
  23.      for(j=110;j>0;j--);
  24. }     
  25. void Display()
  26. {
  27.            char h,l;
  28.         h=timedao1/10;
  29.         l=timedao1%10;
  30.         d1=1;
  31.         d2=0;
  32.         d3=1;
  33.         d4=1;
  34.         P2=table[h];        
  35.         P2=table[l];
  36.         delayms(10);
  37.         d2=1;
  38.         d1=0;
  39.         h=timedao2/10;
  40.         l=timedao2%10;
  41.         P2=table[h];
  42.         delayms(2);

  43.         d3=1;
  44.         d4=1;        
  45.         P2=table[h];
  46.         delayms(2);
  47.         d4=1;        
  48.          
  49. }

  50. void timer0(void)interrupt 1 using 1

  51. {

  52.    static uchar count;

  53.    TH0=(65536-50000)/256;

  54.    TL0=(65536-50000)%256;

  55.    count++;

  56.    if(count==20)

  57.      {
  58.     if(timedao1>=0)                 
  59.              timedao1--;
  60.         if(timedao2>=0)                 
  61.                 timedao2--;
  62.                 count=0;
  63.      }         
  64. }

  65. void main()
  66. {
  67.         int c;
  68.   TMOD=0x01;  
  69.          TH0=(65536-50000)/256;
  70.   TL0=(65536-50000)%256;
  71.           EA=1; //CPU终端总控制位
  72.           ET0=1;//定时器,计数器
  73.           EX0=1;//外部中断允许控制位
  74.           IT0=1;
  75.           TR0=1;  
  76.          while(1)
  77.           {
  78.     timedao1=9;
  79.                 timedao2=4;
  80.                 while(timedao1>=0)
  81.                 {
  82.        LED3=0;
  83.                         LED0=0;//南北绿灯亮东西红灯亮                 
  84.                                 Display();        
  85.     }

  86.        for(c=0;c<11;c++)
  87.                         {
  88.         LED3=~LED3;
  89.                                 LED0=~LED0;
  90.                                 delayms(1000);
  91.       }
  92.                       timedao1=9;
  93.                             timedao2=4;
  94.                         
  95.       while(timedao1>=0)
  96.                         {
  97.         LED2=0;
  98.                                 LED1=0;
  99.                                 Display();
  100.                                 
  101.       }
  102.        for(c=0;c<11;c++)
  103. ……………………

  104. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
2018.06.04交通灯模拟.7z (93.91 KB, 下载次数: 40)
回复

使用道具 举报

ID:932437 发表于 2021-6-3 21:26 | 显示全部楼层
首先,给你的原理图点赞!
回复

使用道具 举报

ID:936132 发表于 2021-6-10 20:43 | 显示全部楼层
仿真图要如何打开?
回复

使用道具 举报

ID:328014 发表于 2021-6-10 21:20 | 显示全部楼层
需要Proteus7.5才能打开仿真
51hei.png
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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