基于单片机c51的简单万年历设计_毕业设计(编辑修改稿)内容摘要:

解决 通过老师的指导及其他相关程序的借鉴,对时间大小的判断进行优化,将秒的十位和各位合为一个整体进行判断,分、时、日、月、年类似。 问题三 在计时模块中,因为细节问题,找不到导致不能正常计时的原因。 解决 通过老师的精心指导,找到不能正常计时的原因,将中断次数的判断if(count100)改为 if(count=100)即可。 问题四 在键盘设计模块中,对空数组的定义无效。 解决 通过查找相关资料,了解到空数组的定义要放在 data 中,不能放在 code中。 将空数组定义为 uchar a[14]使其默认放在 data 中就解决了该问题。 福建工程学院软件学院 软件工程物联网工程 第 11 页 共 26 页 八、 程序设计 . 流程图 N Y Y Y 开始 显示“ SHOWTIME”界面 WELCOME 设置 键按下。 显示当前时间 键盘数字进行时间设置 键盘自增、自减进行时间设置 开始计时 按键开始按下。 福建工程学院软件学院 软件工程物联网工程 第 12 页 共 26 页 . 源代码 include define uchar unsigned char define uint unsigned int uchar code Buffer[4]={0xfe,0xfd,0xfb,0xf7}。 uchar code table[]={39。 039。 ,39。 139。 ,39。 239。 ,39。 339。 ,39。 439。 ,39。 539。 ,39。 639。 ,39。 739。 ,39。 839。 ,39。 939。 ,39。 39。 ,39。 39。 ,39。 +39。 ,39。 39。 ,39。 !39。 ,39。 @39。 }。 uchar code w[14]={0x83,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,0xc4,0xc5,0xc7,0xc8,0xca,0xcb}。 uchar a[14]。 sbit E=P2^7。 //1602 使能引脚 sbit RW=P2^6。 //1602 读写引脚 sbit RS=P2^5。 //1602 数据 /命令选择引脚 void Delay(uint xms)。 //延时 void Time0_Init()。 //中断请求 void timer1_int(void)。 //中断 void charge()。 //判断秒分时日月等是否大于额外值,若大于向上一位加 一 void ftime()。 //初始时间 void timeon()。 //计时 void add()。 //自加 void sub()。 //自减 void wcmd(uchar del)。 //1602 写指令 void write(uchar del)。 //1602 写数据 void L1602_init(void)。 //1602 初始化 void second()。 //秒显示 void minute()。 //分显示 void hours()。 //时显示 void days()。 //日显示 void month()。 //月显示 void years()。 //年显示 void other()。 //符号显示 void number()。 //键盘输入数字 uint count,t。 //中断执行次数,光标位置参数 uchar sec=0。 //初始秒 uchar min=0。 //初始分 uchar hour=0。 //初始时 uchar day=0。 //初始日 uchar mon=0。 //初始月 福建工程学院软件学院 软件工程物联网工程 第 13 页 共 26 页 uchar yearh=0。 //初始年前两位 uchar yearl=0。 //初始年后两位 //1602 命令函数 void wcmd(uchar del) { P0 = del。 RS = 0。 RW = 0。 E = 1。 Delay(1)。 E = 0。 Delay(1)。 } // 1602 写数据函数 void write(uchar del) { P0 = del。 RS = 1。 RW = 0。 E = 1。 Delay(1)。 E = 0。 Delay(1)。 } // 1602 初始化 void L1602_init(void) { wcmd(0x38)。 wcmd(0x38)。 wcmd(0x38)。 wcmd(0x0e)。 wcmd(0x06)。 wcmd(0x01)。 } //显示秒 void second() 福建工程学院软件学院 软件工程物联网工程 第 14 页 共 26 页 { uchar i,j。 i=sec/10。 j=sec%10。 wcmd(0xca)。 write(table[i])。 write(table[j])。 } //显示分 void minute() { uchar i,j。 i=min/10。 j=min%10。 wcmd(0xc7)。 write(table[i])。 write(table[j])。 } //显示时 void hours() { uchar i,j。 i=hour/10。 j=hour%10。 wcmd(0xc4)。 write(table[i])。 write(table[j])。 } //显示日 void days() { uchar i,j。 i=day/10。 j=day%10。 wcmd(0x8b)。 write(table[i])。 write(table[j])。 } 福建工程学院软件学院 软件工程物联网工程 第 15 页 共 26 页 //显示月 void month() { uchar i,j。 i=mon/10。 j=mon%10。 wcmd(0x88)。 write(table[i])。 write(table[j])。 } //显示年 void years() { uchar i,j,m,n。 i=yearh/10。 j=yearh%10。 m=yearl/10。 n=yearl%10。 wcmd(0x83)。 write(table[i])。 wri。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。