标题: 单片机交通灯模拟系统 AD格式原理图与仿真源码设计 [打印本页]

作者: 星空乱    时间: 2018-6-5 15:30
标题: 单片机交通灯模拟系统 AD格式原理图与仿真源码设计
Altium Designer画的交通灯模拟系统原理图如下:(51hei附件中可下载工程文件)


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


单片机源程序如下:
  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, 下载次数: 41)



作者: 3s1344    时间: 2021-6-3 21:26
首先,给你的原理图点赞!
作者: 15223175126    时间: 2021-6-10 20:43
仿真图要如何打开?
作者: 51hei团团    时间: 2021-6-10 21:20
需要Proteus7.5才能打开仿真

51hei.png (24.53 KB, 下载次数: 26)

51hei.png





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1