资源简介
单片机\51单片机数码管显示万年历proteus仿真.rar
代码片段和文件信息
#include
unsigned char code dispcode[]={0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F0x40};//共阴极
unsigned char dispbitcode[]={0x000x210x420x630x840xA50xC60xE7};//管子的选择
unsigned char dispbuf[8]={0010001021}; //16为显示间断号符
unsigned char dispbym[8]={12706002};
unsigned char dispbitcnt;
unsigned char second;
unsigned char minite;
unsigned char hour;
unsigned char day;
unsigned char month;
unsigned char yearh;
unsigned char yearl;
unsigned int tcnt;
unsigned char mstcnt;
unsigned char ij;
void main(void)
{
TMOD=0x02; //设置模式为定时器T0的模式2 (8位自动重装计数初值的计数值)
TH0=0x06; //设置计数器初值,靠TH0存储重装的计数值X0=256-250=6
TL0=0x06;
TR0=1; //启动T0
ET0=1; //开启定时器T0中断允许
EA=1; //开启中断总控制
yearh=20;
yearl=6;
month=7;
day=21;
hour=12; //初始值为12:00:00
while(1)
{
if(P0_0==0) //扫描秒钟按钮
{
for(i=5;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=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_1==0)
{
minite++;
if(minite==60)
{
minite=0;
}
dispbuf[3]=minite%10;
dispbuf[4]=minite/10;
while(P0_1==0);
}
}
if(P0_2==0) //扫描时钟按钮
{
for(i=5;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);
}
}
if(P0_3==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_3==0)
{
day++;
if(month==2&&((yearl==0&&yearh%4==0)||(yearl!=0&&yearl%4==0))&&day==30)day=1;
else if(month==2&&day==29)day=1;
else if((month==4||month==6||month==9||month==11)&&day==31)day=1;
else if(day==32)day=1;
dispbym[0]=day%10;
dispbym[1]=day/10;
while(P0_3==0);
}
}
if(P0_4==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_4==0)
{
month++;
if(month==13)month=1;
dispbym[2]=month%10;
dispbym[3]=month/10;
while(P0_4==0);
}
}
if(P0_5==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_5==0)
{
yearl++;
if(yearl==100)
{
yearl=0;
yearh++;
if(yearh==100)yearh=20;
}
dispbym[4]=yearl%10;
dispbym[5]=yearl/10;
dispbym[6]=yearh%10;
dispbym[7]=yearh/10;
while(P0_5==0);
}
}
}
}
void t0(void)interrupt 1 using 0 //t0的中断程序
{
mstcnt++;
if(mstcnt==8) //8次250us为2ms即每隔2ms扫描一个数码管
{
mstcnt=0;
P1=dispcode[dispbuf[dispbitcnt]];
P2=dispcode[dispbym[dispbitcnt]];
P3=0xff;
P3=dispbitcode[dispbitcnt]; //管子的选择
dispbitcnt++;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12856 2006-09-19 20:16 map.LYT
文件 1028 2007-09-24 07:49 map.PWI
文件 4302 2006-07-21 21:15 万年历.c
文件 4344 2006-09-12 20:24 万年历星期的算法.txt
文件 10141 2006-09-20 19:53 src\src.LST
文件 168 2006-10-16 10:51 src\src.plg
文件 18929 2006-09-20 19:53 src\src.OBJ
文件 5912 2006-09-20 19:53 src\src.c
文件 967 2006-09-23 23:55 src\src_Opt.Bak
文件 970 2006-10-16 10:51 src\src.Opt
文件 16021 2006-09-20 19:53 src\src
文件 1679 2006-09-14 19:18 src\src_Uv2.Bak
文件 4302 2006-09-11 23:51 src\Text1.c
文件 2055 2006-09-19 20:55 src\src.Uv2
文件 23 2006-09-20 19:53 src\src.lnp
文件 16566 2006-09-20 19:53 src\src.M51
文件 7772 2006-09-20 19:53 src\src.hex
文件 8632 2006-09-12 00:20 src\Text1.LST
文件 10366 2006-09-12 00:20 src\Text1.OBJ
文件 178 2007-06-02 16:05 test\src\src.plg
文件 4302 2006-09-12 11:46 test\src\Text1.c
文件 8632 2006-09-12 11:46 test\src\Text1.LST
文件 10366 2006-09-12 11:46 test\src\Text1.OBJ
文件 25 2006-09-12 11:46 test\src\src.lnp
文件 11009 2006-09-12 11:46 test\src\src.M51
文件 8550 2006-09-12 11:46 test\src\src
....... 2103 2006-09-12 12:58 test\src\src_Uv2.Bak
....... 971 2006-09-12 12:58 test\src\src_Opt.Bak
文件 2136 2007-03-22 16:07 test\src\src.Uv2
文件 987 2007-03-22 16:07 test\src\src.Opt
............此处省略9个文件信息
- 上一篇:CAD LISP24个源代码
- 下一篇:五子棋C 源代码
相关资源
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 25.数码管显示0-99
- 数据采集系统——ADC0808的应用,单片
- 直流伺服电机电路原理图(内附单片
- PIC 单片机定时器初值计算器
- 430系列单片机USBFET下载驱动
- 单片机 DS18B20 温度控制系统
- 单片机AT89s52控制GSM模块TC35i发短信,
- 单片机数字时钟包附电路图 源程序
- STC12C系列单片机函数库
- MCGS与单片机通信
- 基于proteus的单片机仿真--交通灯控制
- 带时间温度显示的室内灯光控制系统
- 单片机控制的步进电机正反转和加速
- C51单片机汇编指令查询、学习工具集
- CH454键盘与数码管显示程序
- 基于8051单片机的红外接收程序
- 基于89c51的数字钟
- DXP单片机常用的元件库
- 单片机控制74ls164程序
- 基于单片机交通灯设计
- 基于PIC单片机的万年历的设计
- PIC单片机延时计算器
- 基于EWB软件的数码管显示控制器
- 51单片机频率计(很简单)
- 9s12单片机SPI功能代码
- AT89S ISP下载编程软件(串口)
- 基于51单片机的智能温控器
评论
共有 条评论