基于单片机
C
语言交通灯数码管显示的设计完整版
/*
P2
口位控口,
P0
口段控口
, P1
口按键,
P3
口发光二极管
*/
#include
#define uchar unsigned char
#define uint unsigned int
/*
共阳数码管字型码数组
*/
/*0,1,2,3,4,5,6,7,8,9,P.,
灭
*/
char code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x21,0xff};
/*
共阳数码管位控码数组(从右往左点亮,反向驱动)
*/
char code weikong_code[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
char find_code[8];
sbit S2=P1^0; //S1
键启动交通灯控制器
sbit S3=P1^1; //S2
键回归“
P.
”状态
sbit S4=P1^2; //S3
键处理紧急状况
uchar time;
void DelayX1ms(uint count)
//1ms
延时函数
{
uint j;
while(count--!=0)
{
for(j=0;j<80;j++);
}
}
/*********************
显示函数
*****************************/
void disp()
{
char i;
char k;
for(i=0;i<8;i++)
{
P2=weikong_code[i];
k=find_code[i];
P0=dis_code[k];
DelayX1ms(1);
}
}
/********************1s
延时
********************************/
void delay1s()
{
TMOD=0X01;
EA=1;
ET0=1;
TH0=0x3C;
//
定时器定时
50Ms