完善资料让更多小伙伴认识你,还能领取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的修改一下的
|
|
|
|
退出键是干什么用的呢??
|
|
|
|
单步调试看看是什么问题呢
|
|
|
|
你得首先检查是否是硬件的问题.
|
|
|
|
是不是写入了另外的数据呢?
|
|
|
|
好混乱 不过可以肯定的是程序问题
|
|
|
|
楼主可以单步调节试试看
|
|
|
|
仿真情况下看看哪步出的问题
|
|
|
|
这样的问题还是很好找的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 13:49 , Processed in 0.754811 second(s), Total 92, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号