#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint shi,ge,i,j;
uchar Time,Second,time0=0;
uchar code PLACE_CODE[]=
{0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//位选信号,动态依次扫描
uchar code DIG_CODE[]=
{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};//数码管显示0~9
void delay(uchar j)
{
for(;j>0;j--)
{
for(i=100;i>0;i--);
}
}
void Display(uint shi,uint ge)
{
P1=0x44;
P0=DIG_CODE[shi];//显示十位
delay(5);
P1=0x88;
P0=DIG_CODE[ge];//显示个位
delay(5);
}
void Delay50ms()
{
TMOD=0X01; //计时器0,工作于模式1
TH0=0X4C; //11.0592MHz下50ms的及时初值
TL0=0X0B0;
EA = 1; //打开总中断
ET0 = 1; //打开定时器0中断
TR0 = 1; //启动定时器0
}
void Delay() interrupt 1 using 0
{
TH0=0X4C;
TL0=0X00;
Time++;
time0++;
if(Time==20) //延时1s
{
Second++; //Second计秒
Time=0;
}
}
void main(void)
{
Second=1;
Delay50ms();
while(1)
{
if(Second==30)
{
Second=1;
}
if(Second<13)
{
shi=(13-Second)%100/10;//显示十位
ge=(13-Second)%10;//显示个位
P2=0xcd;
P3=0x02;
Display(shi,ge);
}
else if(Second<15)
{
shi=(15-Second)%100/10;//显示十位
ge=(15-Second)%10;//显示个位
P2=0xad;
P3=0x01;
Display(shi,ge);
}
else if(Second <28)
{
shi=(28-Second)%100/10;//显示十位
ge=(28-Second)%10;//显示个位
P2=0x7a;
P3=0x01;
Display(shi,ge);
}
else
{
shi=(30-Second)%100/10;//显示十位
ge=(30-Second)%10;//显示个位
P2=0x65;
P3=0x01;
Display(shi,ge);
}
}
}
交通灯的PROTUES+Keil 4的仿真程序
4星 · 超过85%的资源 需积分: 33 94 浏览量
2013-11-21
17:39:23
上传
评论 3
收藏 101KB ZIP 举报
fengjunlei
- 粉丝: 1
- 资源: 6
最新资源
- 流程图转PAD-N-S图和伪码(软件工程).doc
- C#winform excel导入导出
- 毕业论文上传111111111111
- raisin.zip
- 322个地级市-市场分割指数、市场一体化指数+居民消费价格指数(2004-2022年).txt
- 《基于Java实现自定义控件-天气温度折线图 》+源代码+设计资料
- 希尔伯特矩阵来综合演示数值矩阵与符号矩阵的基本操作
- 《基于51单片机和DS18B20的温度检测和报警系统,可设置报警温度上下限,输出温度采用数码管显示 》+源代码+设计资料
- ESP8266WIFI系统工作原理图.schdoc
- C语言《基于STM32的测量温度与压力的数据处理设计 》+源代码+设计资料
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈