资源简介
用at89c51做的一个6位的数字钟,可以显示小时 分钟 秒,并且实现了可以调试的功能
有c语言源程序 以及prote仿真图
有c语言源程序 以及prote仿真图
代码片段和文件信息
#include
#define uint unsigned int
#define uchar unsigned char
sbit second_set=P1^0;
sbit minute_set=P1^1;
sbit hour_set=P1^2;
sbit go=P1^3;
uchar code table[]={0xC00xF90xA40xB00x990x920x820xF80x800x900xbf};//数码管段选编码表
uchar code disbit[]={0x010x020x040x080x100x200x400x80}; //数码管位选编码表
uchar aasecondminutehour;
uchar buffer[]={00000000};
void delay(uint t);
void display();
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1; //定时器0初始化
aa=0;
second=0;
minute=0;
hour=0; //各变量初始化
while(1)
{
P1=0xff; //P1口作为读入口,检测按键状态
if(second_set==0) //秒设置键编码
{
delay(5); //按键消抖 5ms
if(second_set==0)
{
TR0=0; //设置时,关闭定时器0
second++;
delay(3);
}
if(second==60)
{
minute++;
second=0;
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
}
}
}
while(!second_set); //按键松手检测
}
display();
if(minute_set==0) //分设置键编码
{
delay(5);
if(minute_set==0)
{
TR0=0;
minute++;
delay(3);
}
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
}
}
while(!minute_set);
}
display();
if(hour_set==0) //时设置键编码
{
delay(5);
if(hour_set==0)
{
TR0=0;
hour++;
delay(3);
}
if(hour==24)
{
hour=0;
}
while(!hour_set);
}
display();
if(go==0) //开始键编码
{
delay(5);
if(go==0)
{
TR0=~TR0;
while(!go);
}
}
display();
}
}
void timer0()interrupt 1
{
aa++;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
if(aa==20) //此时计满一秒
{
aa=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
hour=0;
}
}
}
}
void delay(uint t) //延时子程序
{
uint xy;
for(x=t;x>0;x--)
for(y=177;y>0;y--);
}
void display() //显示子程序
{
uchar i;
buffer[0]=second%10;
buffer[1]=second/10;
buffer[2]=10;
buffer[3]=minute%10;
buffer[4]=minute/10;
buffer[5]=10;
buffer[6]=hour%10;
buffer[7]=hour/10;
for(i=0;i<8;i++)
{
P0=table[buffer[i]]; //段选
P3=disbit[i]; //位选
delay(3);
P3=0x00; //P3作为驱动口
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 97424 2011-03-15 09:14 shuzizhong\Last Loaded shuzizhong.DBK
文件 6608 2011-03-15 09:26 shuzizhong\shuzizhong
文件 2585 2011-03-15 09:30 shuzizhong\shuzizhong.c
文件 97410 2011-03-15 09:26 shuzizhong\shuzizhong.DSN
文件 1631 2011-03-15 09:26 shuzizhong\shuzizhong.hex
文件 53 2011-03-15 09:26 shuzizhong\shuzizhong.lnp
文件 8262 2011-03-15 09:26 shuzizhong\shuzizhong.LST
文件 11000 2011-03-15 09:26 shuzizhong\shuzizhong.M51
文件 6929 2011-03-15 09:26 shuzizhong\shuzizhong.OBJ
文件 1208 2011-03-15 09:51 shuzizhong\shuzizhong.Opt
文件 379 2011-03-15 09:51 shuzizhong\shuzizhong.plg
文件 742 2011-03-15 09:51 shuzizhong\shuzizhong.PWI
文件 2164 2011-03-15 09:26 shuzizhong\shuzizhong.Uv2
....... 1206 2011-03-15 09:26 shuzizhong\shuzizhong_Opt.Bak
....... 0 2011-03-15 08:14 shuzizhong\shuzizhong_Uv2.Bak
文件 6376 2005-03-22 15:22 shuzizhong\STARTUP.A51
文件 14048 2011-03-15 09:26 shuzizhong\STARTUP.LST
文件 758 2011-03-15 09:26 shuzizhong\STARTUP.OBJ
目录 0 2011-03-15 09:51 shuzizhong
----------- --------- ---------- ----- ----
258783 19
- 上一篇:单片机电子时钟 闹钟 日历
- 下一篇:Tomcat中配置数据源所需得jar包
相关资源
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
- 直流伺服电机电路原理图(内附单片
- PIC 单片机定时器初值计算器
- 430系列单片机USBFET下载驱动
- 单片机 DS18B20 温度控制系统
- 单片机AT89s52控制GSM模块TC35i发短信,
- 单片机数字时钟包附电路图 源程序
- STC12C系列单片机函数库
- MCGS与单片机通信
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
评论
共有 条评论