#include<reg52.h> #define uchar unsigned char uchar count,ge,shi,tt,time,color,flag; uchar table[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0, 0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E}; void yellow() { time=2; P1=0x08; if(flag==1) color=3; if(flag==0) color=2; } void red() { time=20; P1=0x10; flag=1; color=1; } void green() { time=20; P1=0x04; flag=0; color=1; } void light() { switch(color){ case 1: yellow();break; case 2: red();break; case 3: green();break; } } void main(){ color=2; flag=0; count=3; time=10; tt=0; TMOD=0x01; TL0=0xB7; TH0=0x3C; EA=1; ET0=1; TR0=1; while(1){ if(tt==20){ if(count<=0){ light(); count=time; } tt=0; TR0=0; count--; TR0=1; } } }同时实现数码管显示
时间: 2023-10-22 19:07:58 浏览: 127
KEIL编程_C语言嵌入汇编.pdf )
这段代码是一个基于51单片机的交通信号灯控制程序,并同时实现了数码管的显示。程序中使用了一个计时器来控制交通信号灯的变化,同时在数码管上显示剩余等待时间。程序中使用了共阴数码管,数码管的引脚连接方式为P2口0-7。程序中使用了一个表格来存储数码管显示每个数字对应的数码管段码。具体实现细节请看代码注释:
阅读全文