基于51数码管显示的万年历(仿真+程序)
更新时间:2024-03-26 19:04:01 阅读量: 综合文库 文档下载
- 万年历数码管显示不全推荐度:
- 相关推荐
基于数码管显示的万年历(proteus仿真+C程序)
Proteus仿真图
项目名称:万年历U6B03B14B27B38B413B514B61718D0D1D2D3D4D5D6D7OELE74S373Q0Q1Q2Q3Q4Q5Q6Q7256912151619D0D1D2D3D4D5D6U119D0D1D2D3D4D5D6XTAL1A21A20A19A18A17A1618XTAL29SEC_SETRSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617B0B1B2B3B4B5B6111U3123ABCY0Y1Y2Y3Y4Y5Y6Y715141312111097A0A1A2A3A4A5A6A7MIN_SET293031PSENALEEAHOU_SET12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51MON_SET645E1E2E374LS138WEEK_SETU4123ABCY0Y1Y2Y3Y4Y5Y6Y715141312111097A8A9A10A11A12A13A14A15D0D1D2D3D4D5D6A15A14A13A12A11A10A9A8DAY_SET645YEAR_SETE1E2E374LS138ADD_SUB123U5ABCY0Y1Y2Y3Y4Y5Y6Y715141312111097A16A17A18A19A20A21A7A6A5A4A3A2A1A0645E1E2E374LS138说明:通过数码管显示一个初始时间,不能记忆时间作者:LINLIANHUO日期:2014年07月25日D0D1D2D3D4D5D6 C语言程序
/*********************************************************
TITLE: 万年历设计
FUNCTION: 显示:年-月-日-星期-时-分-秒 WRITER: LINLIANHUO TIME: 2014-07-24
REMARK: 译码扫描时间不能过长,否则无法实现调整 *******************************************************
***/
#include
/***********码表***************/
uchar code smg_table[]={0xBF,0x86,0xDB,0xCF,0xE6,
uchar code months_days[]={31,28,31,30,31,30,31,31,30,31,30,31};
uchar code transcode[]={0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,
uchar buffer[22]={0};
/**********数据定义*********/ uchar add_sub; uchar key_detection=0; uchar count=0;
0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,
0xED,0xFD,0xA7,0xFF,0xEF,0xC0};
0xee,0xef,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd};
typedef struct {
uchar year[2];
uchar month; uchar day; uchar week;
}date;
typedef struct {
uchar hour;
uchar minute; uchar second;
}moment;
date today={{14,20},7,25,5}; moment now={16,52,45};
/**********延时子程序*************/ void delay() {
uchar i,j; }
/**********数码管显示子程序***********/ void smg_display() {
uchar i;
buffer[8]=today.week; buffer[9]=today.week/10; buffer[10]=10;
buffer[0]=now.second; buffer[1]=now.second/10; buffer[2]=10;
buffer[3]=now.minute; buffer[4]=now.minute/10; buffer[5]=10;
buffer[6]=now.hour; buffer[7]=now.hour/10; for(i=0;i<=8;i++)
for(j=0;j<40;j++);
}
buffer[11]=today.day; buffer[12]=today.day/10; buffer[13]=10;
buffer[14]=today.month; buffer[15]=today.month/10;
buffer[16]=10;
buffer[17]=today.year[0]; buffer[18]=today.year[0]/10; buffer[19]=today.year[1]; buffer[20]=today.year[1]/10; buffer[21]=10;
for(i=0;i<22;i++) {
P0=smg_table[buffer[i]]; }
P2=transcode[i]; delay(); P2=0xff;
}
}
}
}
}
{
today.month=1; }
today.year[0]=today.year[0]+1; if(today.year[0]>=100) {
today.year[0]=0;
today.year[1]=today.year[1]+1; }
if(today.year[1]==100) {
today.year[1]=0; }
}
smg_display();
/*************INT0中断服务子程序*****************/
void int0_int() interrupt 0 using 1 {
uchar k; switch(add_sub) {
case 0x80:switch(key_detection) {
case 0xfe: {
now.second++; if(now.second>=60)
smg_display();
}break; case 0xfd: {
now.minute++; if(now.minute>=60)
smg_display();
}break; case 0xfb: {
now.hour++;
now.second=0; now.minute=0;
if(now.hour>=24) now.hour=0; smg_display();
}break; case 0xf7: {
today.week++;
if(today.week>=8) today.week=1; smg_display();
}break; case 0xef: {
today.day++;
k=leap_year(today.year[1],today.year[0]); if((k==1)&&(today.month==2)) {
if(today.day>=30) today.day=1; } else
if(today.day>=months_days[today.month-1])
today.day=1;
smg_display();
}break; case 0xdf: {
today.month++;
if(today.month>=13) today.month=1; smg_display();
}break; case 0xbf: {
today.year[0]=today.year[0]+1;
if(today.year[0]>=100) {
today.year[0]=0;
today.year[1]=today.year[1]+1; }
smg_display();
if(today.year[1]==100) today.year[1]=0;
}break;
default:{EA=1;EX0=0;TR0=1;}break;
}break;
case 0x00:switch(key_detection) {
case 0x7e: {
//now.second++;
if(now.second>0) now.second--; else now.second=59; smg_display();
}break; case 0x7d: {
//now.minute++;
if(now.minute>0) now.minute--; else now.minute=59; smg_display();
}break; case 0x7b: {
//now.hour++;
if(now.hour>0) now.hour--; else now.hour=23; smg_display();
}break; case 0x77: {
//today.week++;
if(today.week>1) today.week--; else today.week=1; smg_display();
}break; case 0x6f: {
//today.day++;
k=leap_year(today.year[1],today.year[0]); if((k==1)&&(today.month==2)) {
if(today.day>1) today.day--; } else {
if(today.day>1) today.day--; else
else today.day=29;
today.day=months_days[today.month-1];
}
smg_display();
}break; case 0x5f: {
//today.month++;
if(today.month>1) today.month--; else today.month=12; smg_display();
}break; case 0x3f: {
//today.year[0]=today.year[0]+1;
if(today.year[0]>0)
today.year[0]=today.year[0]-1; else {
today.year[0]=99;
today.year[1]=today.year[1]-1; }
smg_display();
}
}
}break;
default:{EA=1;EX0=0;TR0=1;}break;
}break;
正在阅读:
基于51数码管显示的万年历(仿真+程序)03-26
旅游景点毕业设计 - 图文04-03
病理11-09
《压强》的教案设计04-30
O型密封圈规格表07-24
让你一天记住法制史免费完整版(附赠法硕404分考入北大师兄经验帖) - 图文09-24
坚持早起的人竟然有八大好处03-25
安全自护教育中队活动设计方案12-18
体卫艺工作总结范文参考04-04
- 2012年广州一模数学(理科)试卷(word版,含答案)
- 生化课本知识总结
- 诉权
- 呼叫中心平台项目可行性研究报告(目录) - 图文
- 汽车综合故障诊断作业三及答案
- 怎样写才能拿到中考满分作文
- 《第7章 图结构》习题解答
- 中学物理教学法实验指导书
- 加强教研组建设 走特色教研之路
- 2009年宁夏公务员录用考试《行政职业能力测验》试卷
- 加强校园文化建设 细化制度促发展
- 2020年中国教育发展战略框架 试卷
- 六年级上册数学期末复习资料
- 大工16春《高层建筑结构》大作业答案
- 高分子物理电子教案
- 大学生创业孵化基地建设的理论初探
- 王家寨矿井瓦斯煤尘灾害演习报告
- 2013年中国邮政储蓄银行招聘考试试题
- 浅析绿色用电与生活用电
- 一堂好课的标准
- 数码管
- 万年历
- 仿真
- 基于
- 程序
- 显示
- 劝世良言
- “十三五”规划重点-金银花凉茶项目建议书(立项报告)
- 2018一建考试建设工程法规及相关知识真题(含答案)
- 操作系统练习题答案
- 2008年小麦油菜审定品种
- 中国儿童智能穿戴设备行业分析报告
- 电气工程基础试卷
- 激发学生学习电工基础的兴趣
- 伊朗铬矿市场开采与矿权投资前景预测报告
- 基础会计章节练习题
- 化工仪表维修工中级考试试题
- 熔剂厂回转窑大修施工方案
- 中国企业高层管理人员
- 2018年中考语文总复习第一部分语文知识及运用专题六名著阅读练习
- 重庆市职称改革办公室关于印发重庆市高职高专院校教师高级职务任
- 新一代测序技术之三国时代
- Ansys 14.0使用笔记
- 2011年软考信息技术处理员模拟试题及答案(1)
- 2012化学竞赛有机试题
- 2018年中国丁苯橡胶行业市场全景调研报告目录