完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
//顺序:秒,分,时,日,月,星期,年;格式:BCD uchar times[7]; //检测按键标志,0-无按键按下,1-修改位置选择,2-加一,3-减一,4-保存结果并退出 uchar flag = 0, //确定光标位置 pos = -1; char line1[];//第一行显示数据 char line2[];//第二行显示数据 void Show(void);//显示函数 void main( void ) { WDTCTL = WDTPW + WDTHOLD; //初始化P1口中断, P1DIR = 0x00; P1DIR |= BIT7; P1OUT = 0x00; P1IES = 0xff; P1IE = 0xff; DS1302_Reset();//初始化DS1302 LcdReset();//初始化1602 _BIS_SR(GIE);//开启中断 while(1) { if(flag == 0)//无按键按下 { Get_DS1302(times); Show(); } if(flag == 1)//1-修改光标位置 { switch(pos)//判断光标位置 { case 0: LocateXY(5,0);break; case 1: LocateXY(6,0);break; case 2: LocateXY(8,0);break; case 3: LocateXY(9,0);break; case 4: LocateXY(11,0);break; case 5: LocateXY(12,0);break; case 6: LocateXY(4,1);break; case 7: LocateXY(5,1);break; case 8: LocateXY(7,1);break; case 9: LocateXY(8,1);break; case 10: LocateXY(10,1);break; case 11: LocateXY(11,1);break; default: ; } LcdWriteCmd(0x0f,1);//显示光标 } if(flag == 4) { flag = 0; LcdWriteCmd(0x0c,1); Set_DS1302(times); } } } |
|
|
|
你的程序怎么这么乱呢?flag==4怎么来的
|
|
|
|
可以根据51的修改一下的
|
|
|
|
退出键是干什么用的呢??
|
|
|
|
单步调试看看是什么问题呢
|
|
|
|
你得首先检查是否是硬件的问题.
|
|
|
|
是不是写入了另外的数据呢?
|
|
|
|
好混乱 不过可以肯定的是程序问题
|
|
|
|
楼主可以单步调节试试看
|
|
|
|
仿真情况下看看哪步出的问题
|
|
|
|
这样的问题还是很好找的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1248 浏览 1 评论
973 浏览 1 评论
MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记
625 浏览 0 评论
自定义系统时钟频率后,用库函数和微带两种方式点亮LED灯,为什么灯的闪烁频率不一致?
1536 浏览 2 评论
1759 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-24 09:00 , Processed in 0.669332 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号