资源简介
单片机 万年历 内含proteus 及实验报告

代码片段和文件信息
#include
sbit p1_0=P1^0;
sbit p1_1=P1^1;
sbit p1_2=P1^2;
sbit p1_4=P1^4;
sbit p1_5=P1^5;
sbit p3_2=P3^2;
unsigned char code zimal[13]={
0X3F/*0*/
0X06/*1*/
0X5B/*2*/ //共阴极数码管
0X4F/*3*/
0X66/*4*/
0X6D/*5*/
0X7D/*6*/
0X07/*7*/
0X7F/*8*/
0X6F/*9*/
0x40/*-*/
0x80/*.*/
0x00/*熄灭*/
};
unsigned int yearmonthdayhourminutesecond;//定义变量年月日时分秒;
void delay(); //延时函数;
void xianshi(unsigned int ymondhmins); //显示函数;
void fengming(); //蜂鸣器函数;
int leap(unsigned int year); //判断闰年函数;
unsigned int hm=1s; //记录定时时间;
unsigned int td=2yw=0; //状态;
void main()
{
year=2000;
month=12;
day=24;
hour=0;
minute=0;
second=0;
TMOD=0x10; //定时器1;模式1;
TL1=0xb0;
TH1=0x3c;
TR1=1;
ET1=1;
EX0=1;
IT0=1;
EA=1;
while(1) //主循环;
{
if(hour==h&&minute==m&&second==s) fengming(); //定时时间到蜂鸣器响;
if(td%3==1) //定时状态;
xianshi(yearmonthdayhms);
else //正常显示状态;
xianshi(yearmonthdayhourminutesecond);
}
}
void delay() //延时函数;
{
unsigned char i;
for(i=0;i<300;i++);
}
void xianshi(unsigned int ymondhmins )//显示函数;
{
int ij;
i++;
if(td%3==0&&yw%6==3&&i%2==0)
{
P2=0xf0; //闪烁显示年;
P0=zimal[12];
P2=0xf1;
P0=zimal[12];
P2=0xf2;
P0=zimal[12];
P2=0xf3;
for(i=0;i<350;i++);
}
else{
P2=0xf0; //显示年;
P0=zimal[y/1000];
for(j=0;j<350;j++);
P2=0xf1;
P0=zimal[(y%1000)/100];
for(j=0;j<350;j++);
P2=0xf2;
P0=zimal[(y%100)/10];
for(j=0;j<350;j++);
P2=0xf3;
P0=zimal[y%10];
for(j=0;j<350;j++);
}
P0=zimal[11];//显示小数点;
for(j=0;j<350;j++);
if(td%3==0&&yw%6==4&&i%2==0)
{
P2=0xf4; //显示月;
P0=zimal[12];
P2=0xf5;
P0=zimal[12];
for(j=0;j<350;j++);
}
else
{
P2=0xf4; //显示月;
P0=zimal[mon/10];
for(j=0;j<350;j++);
P2=0xf5;
P0=zimal[mon%10];
for(j=0;j<350;j++);
}
P0=zimal[11]; //显示小数点;
for(j=0;j<350;j++);
if(td%3==0&&yw%6==5&&i%2==0)
{
P2=0xf6; //显示日;
P0=zimal[12];
P2=0xf7;
P0=zimal[12];
for(j=0;j<350;j++);
}
else{
P2=0xf6; //显示日;
P0=zimal[d/10];
for(j=0;j<350;j++);
P2=0xf7;
P0=zimal[d%10];
for(j=0;j<350;j++);
}
if((td%3==0&&yw%6==0&&i%2==0)||(td%3==1&&yw%3==0&&i%2==0))
{
P2=0xf8; //显示时;
P0=zimal[12];
P2=0xf9;
P0=zimal[12];
for(j=0;j<350;j++);
}
else{ P2=0xf8; //显示时;
P0=zimal[h/10];
for(j=0;j<350;j++);
P2=0xf9;
P0=zimal[h%10];
for(j=0;j<350;j++);
}
P2=0xfa;
P0=zimal[10];
for(j=0;j<350;j++);
if((td%3==0&&yw%6==1&&i%2==0)||(td%3==1&&yw%3==1&&i%2==0))
{
P2=0xfb; //闪烁显示分;
P0=zimal[12];
P2=0xfc;
P0=zimal[12];
for(j=0;j<350;j++);
}
else{
P2=0xfb; //显示分;
P0=zimal[min/10];
for(j=0;j<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 105647 2010-05-11 12:58 万年历(2)\123.DSN
文件 768 2004-12-21 00:28 万年历(2)\123.PWI
文件 105651 2010-05-11 10:00 万年历(2)\Last Loaded 123.DBK
文件 13120 2010-05-11 12:59 万年历(2)\wnl
文件 8197 2010-05-11 12:59 万年历(2)\wnl.hex
文件 26 2010-05-11 12:59 万年历(2)\wnl.lnp
文件 17727 2010-05-11 12:59 万年历(2)\wnl.M51
文件 948 2004-12-21 00:28 万年历(2)\wnl.Opt
文件 1647 2004-12-21 00:28 万年历(2)\wnl.Uv2
....... 989 2010-05-11 12:59 万年历(2)\wnl_Opt.Bak
....... 1680 2010-05-10 13:59 万年历(2)\wnl_Uv2.Bak
文件 5791 2010-05-11 12:59 万年历(2)\万年历.c
文件 5159 2010-04-26 13:39 万年历(2)\万年历.hex
文件 14263 2010-05-11 12:59 万年历(2)\万年历.LST
文件 17923 2010-05-11 12:59 万年历(2)\万年历.OBJ
文件 615424 2010-06-07 10:53 万年历(2)\基于单片机的电子万年历的毕业设计.doc
目录 0 2004-12-21 00:28 万年历(2)
文件 0 2004-12-21 00:21 万年历(2)\wnl.plg
----------- --------- ---------- ----- ----
914960 18
- 上一篇:4*4矩阵键盘+四位数码管PCB图
- 下一篇:汇编 电子琴内含有报告及源代码
相关资源
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 利用DS1302和msp430进行闹钟和万年历的
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- proteus仿真 AT89C51输出各种波形
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- proteus_24C08—有注释(proteus里面使用的
- 浙江工业大学2005-2006学年单片机习题
评论
共有 条评论