资源简介
基于AT89S52单片机数码管显示数字钟(含proteus仿真)
转载请标明出处,并保持代码完整。
代码片段和文件信息
#include
unsigned char code dispcode[]={0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x710x40};//共阴数码管编码:0-f,最后是“-”
unsigned char dispbitcode[]={0x070x060x050x04
0x030x020x010x00}; //位选端
unsigned char dispbuf[8]={0016001600};//初始状态:00-00-00
unsigned char dispbitcnt=0;
unsigned char second=0;
unsigned char minute=0;
unsigned char hour;
unsigned int tcnt;
unsigned char mstcnt=0;
unsigned char ij;
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_7=P0^7;
sbit P3_0=P3^0;
sbit P3_4=P3^4;
void main(void)
{
TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;
hour=0;
P3_0=0;
P0_7=0;
while(1)
{
if(P0_0==0)
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P0_0==0)
{
second++;
if(second==60)
{
second=0;
}
dispbuf[0]=second%10;
dispbuf[1]=second/10;
while(P0_0==0);
}
}
if(P0_1==0)
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P0_1==0)
{
minute++;
if(minute==60)
{
minute=0;
}
dispbuf[3]=minute%10;
dispbuf[4]=minute/10;
while(P0_1==0);
}
}
if(P0_2==0)
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P0_2==0)
{
hour++;
if(hour==24)
{
hour=0;
}
dispbuf[6]=hour%10;
dispbuf[7]=hour/10;
while(P0_2==0);
}
}
}
}
void t0(void) interrupt 1 using 0
{
mstcnt++;
if(mstcnt==8)
{
mstcnt=0;
P3_0=1;
P2=dispcode[dispbuf[dispbitcnt]];
P3_0=0;
P1=dispbitcode[dispbitcnt];
dispbitcnt++;
if(dispbitcnt==8)
{
dispbitcnt=0;
}
}
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if((second==54)&&(minute==59))
P3_4=0;
if(second==59)
P3_4=1;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
dispbuf[0]=second%10;
dispbuf[1]=second/10;
dispbuf[3]=minute%10;
dispbuf[4]=minute/10;
dispbuf[6]=hour%10;
dispbuf[7]=hour/10;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4833 2009-07-08 09:19 基于AT89s52数码管显示数字钟\474
文件 1634 2009-07-08 09:19 基于AT89s52数码管显示数字钟\474.hex
文件 40 2009-07-08 09:19 基于AT89s52数码管显示数字钟\474.lnp
文件 7434 2009-07-08 09:19 基于AT89s52数码管显示数字钟\474.M51
文件 1344 2009-10-06 17:06 基于AT89s52数码管显示数字钟\474.Opt
文件 182 2009-10-06 17:06 基于AT89s52数码管显示数字钟\474.plg
文件 2106 2009-07-08 09:20 基于AT89s52数码管显示数字钟\474.Uv2
....... 1343 2009-10-05 20:02 基于AT89s52数码管显示数字钟\474_Opt.Bak
文件 108683 2009-07-09 00:55 基于AT89s52数码管显示数字钟\Last Loaded 方案三---单片机数字钟.DBK
文件 3032 2009-07-08 09:20 基于AT89s52数码管显示数字钟\Text1.c
文件 6068 2009-07-08 09:19 基于AT89s52数码管显示数字钟\Text1.LST
文件 5715 2009-07-08 09:19 基于AT89s52数码管显示数字钟\Text1.OBJ
文件 108902 2009-10-06 17:06 基于AT89s52数码管显示数字钟\方案三---单片机数字钟.DSN
文件 742 2009-10-06 17:06 基于AT89s52数码管显示数字钟\方案三---单片机数字钟.PWI
目录 0 2009-10-06 17:06 基于AT89s52数码管显示数字钟
----------- --------- ---------- ----- ----
252058 15
相关资源
- 基于51单片机的电器定时开关C程序
- 数控直流电流源打包的
- 51单片机做的音乐播放仿真+工程
- stm32单片机读取sht11
- 51单片机控制乒乓球游戏
- 两个proteus仿真6位数显频率计数器和
- 51单片机多个超声波测距
- 80c51单片机4位数码管计算器设计
- STM32单片机SHT3X.zip
- 基于HC-SR04超声波测距LCD12864显示源码
- 步进电机驱动代码TB6600+57BYG250B+51单片
- STM32F407单片机OV7670无FIFO Ycrcb颜色空间
- 超声波和红外避障蓝牙小车完整文件
- FPGA数字钟实验报告.pdf
- 电磁循迹 (2).zip
- GPS导航系统仿真源代码+仿真文件+虚拟
- 基于51单片机bmp180测气压温度实测可用
- protues电子秤
- 基于单片机的智能盆栽设计
- zw_(proteus仿真图程序).zip
- stc8a8k64s4a12掉电保存
- 51单片机-双机串行通信注释版
- 基单片机汇编的停车计费系统
- 51单片机红外通信
- lcd12864最全中文资料
- 基于51单片机的红外循迹小车
- 用proteus实现数字电子时钟
- 51定时器计算器
- 基于stc8单片机的密码锁源码.rar
- 基于51单片机的自动化灌溉系统程序
评论
共有 条评论