资源简介
单片机 万年历 内含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图
- 下一篇:汇编 电子琴内含有报告及源代码
相关资源
- 单片机仿真软件proteus6.7免安装绿色版
- 基于SPCE061A单片机的图形液晶模块的驱
- 基于SPCE061A单片机汇编语实现的流水灯
- 基于SPCE061A单片机的图形液晶模块的驱
- 物联网家居系统中基于单片机的多路
- 基于IAP15F2K61S2单片机的多路温度巡检
- 关于proteus仿真arm7出现错误的问题
- 基于PROTEUS的ARM7显示系统设计与仿真实
- 如何用单片机控制舵机及程序详细
- 单片机控制舵机电路图
- 基于MSP430单片机的实时多任务操作系
- 基于STM32F103C8单片机的晶联讯电子JL
- 广联达6.0写锁包,2020年11月最新
- 基于51单片机的交通信号灯程序
- 14284969_《STM32单片机应用与全案例实践
- GSM监控系统51单片机设计
- 精选单片机设计与制作30例
- 百度万年历 日期选择控件 带农历节日
- 中颖单片机入门与实战
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
- 基于32位单片机MC68HC376的高可靠性系统
- MC68HC08单片机程序设计速成
- PIC单片机人机接口模块4×4行列式
- PIC单片机人机接口模块4×4行列式
- STM32+1602液晶proteus仿真.zip
- AT89C51+ADC0808 PROTEUS仿真
- 基于51单片机的多通道数据采集范围控
- ADC0832ADC0809DAC0832三种芯片程序,c程序
- 数据采集系统——ADC0808的应用
评论
共有 条评论