刚刚写的单片机交通灯程序

简介:
#include<reg52.h>     //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<math.h>  
#define uchar unsigned char
#define uint  unsigned int
#define ulang unsigned lang
static unsigned char count;
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; 
        //共阴数码管 0-9
uchar smg[8];                 //定义缓冲区


uint  we,ns,h,j; 
 
   
int aaa(); 
int bbb();
int eee();
void delay(unsigned int cnt)
{
 while(--cnt);
}
 
void display( )
{


           smg[0]=tab[we/10];     
      smg[1]=tab[we%10];
 smg[2]=0x00;             
           smg[3]=0x00;   
            smg[4]=0x00;
      smg[5]=0x00;            
                 smg[6]=tab[ns/10];  
 smg[7]=tab[ns%10];

}


void main()
{
     uchar i;
     TMOD |=0x01;  //定时器0 10ms in 12M crystal 用于计时
TH0=0xd8;     //初值
TL0=0xf0;
ET0=1;
TR0=1;
     EA =1;     


 display();


 while(1)
 {
   
for(i=0;i<8;i++)   //显示函数
  {
     P0=smg[i];
P2=i;
delay(100);
  }
          ccc();
display( );
      }  
 
}
void timer() interrupt 1  
{
   
   TH0=0xd8;                  //重新赋值
   TL0=0xf0;
   count++;


}


int aaa()
{


          if(j<25)
     {
     if(j==1) { we=30,ns=25; }
ns--;
     we--;
     P1=0xde;
return 0; } 
 
   if(25<=j<30)
 {       
     if(j==26)  {  ns=5; } 
    P1=0xee;    
ns--; 
we--;  
return 0;   }
}
int bbb()
{
            if(h<25)
     {
     if(h==1) { we=25,ns=30; }
ns--;
     we--;
      P1=0xf3;
return 0; } 
 
   if(25<=h<30)
 {       
     if(h==26)  {  we=5; } 
    P1=0xf5;    
ns--; 
we--;  
return 0;   }
 
    
 }
 int eee()
 {
  j=0;
h=0;
return 0;
 }
 int ccc()
 {
     
 if (count==100)
   {
           count=0;
   j++;
if ( (j>30)&&(j!=61))  { h++;      bbb(); return 0;   }
   if(j==61)  { eee(); return 0;}
              aaa();       return 0;   
  } 
 }
 
目录
相关文章
|
存储 算法 编译器
如何优化单片机程序里面的C代码方法
如何优化单片机程序里面的C代码方法
243 0
|
1月前
|
算法 物联网 芯片
基于STM32和51单片机的8位全彩流水灯程序模板
基于STM32和51单片机的8位全彩流水灯程序模板
|
数据处理 C语言
侃侃单片机的裸奔程序的框架
侃侃单片机的裸奔程序的框架
166 0
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
427 3
|
人工智能 开发者 芯片
【51单片机】单片机开发者的福音: 让AI看电路图帮你编写程序(使用ChatGPT 中训练好的单片机工程师模型)
使用AI大语言模型编写 单片机程序. 使用的是 OpenAI公司发布的 ChatGPT .在ChatGPT上有别人训练好的 单片机工程师 with Keil uVision 5 - C Code Explainer模型, 可以上传电路图改模型可以通过这个用户所给的电路图进行编程.
3103 0
【51单片机】单片机开发者的福音: 让AI看电路图帮你编写程序(使用ChatGPT 中训练好的单片机工程师模型)
基于51单片机的模拟交通灯控制系统
该文档描述了一个基于51单片机的交通灯控制系统的设计要求和实现。系统应用于十字路口,控制主干道(东西方向)和支干道(南北方向)的交通流量。主干道绿灯时间为15秒,支干道为10秒,转换时黄灯闪烁3秒。用户可以通过按键设置通行时间和进行交通管制。系统包括四个状态:主干道绿灯、主干道黄灯、支干道绿灯和支干道黄灯,循环运行。此外,还提供了仿真电路图、原理图和实物照片,以及C代码示例。
1032 1
技术心得记录:单片机开发过程中使用结构体简化程序
技术心得记录:单片机开发过程中使用结构体简化程序
150 0
基于51单片机的简单交通灯程序
基于51单片机的简单交通灯程序
231 2
【单片机】延迟程序&延迟子程序的设计(入门)
【单片机】延迟程序&延迟子程序的设计(入门)
|
缓存 编译器 程序员
嵌入式开发环境Vscode开发STM32单片机程序
嵌入式开发环境Vscode开发STM32单片机程序
583 1