hslcac 发表于 2021-9-16 21:16 谢谢楼主分享啦 |
温度和AD0809输入电压名称标错位置了,电压显示的是LM358输出至0809IN0的电压,制作板子的时候没有计算好,358的最大输出电压测量3.74V,实际与显示的电压准确(没有具体检测),有借鉴制作温度及数控电源的程序比较接近(针对新手)。 |
lkc8210 发表于 2021-9-16 15:03 为什么要加个‘’+48‘’,非常感谢,已经找到问题了,第一、没有加48,第二,num定义错误应该是uint型。再次非常感谢各位老师指点,谢谢,上传完成程序。 |
hslcac 发表于 2021-9-16 12:44 在网页看,没留意到那一段注释掉了 正因为注释掉了 又重覆了5楼的问题1 没有定时器1的中断函数,又当机了 第117行 volt_data[6]=num/1000; //取处理后的数据千位,对应显示温度值的十位 缺了个"+48" 又重覆了5楼的问题2 |
188610329 发表于 2021-9-16 12:55 嗯嗯明白了,谢谢, |
hslcac 发表于 2021-9-16 12:44 液晶屏刷新是电压翻转一次就定格了,一般,没有内容变化就不必反复刷新,和数码管需要不断的供电点亮是不同的,所以,8210才提醒你一下。 |
lkc8210 发表于 2021-9-16 00:40 是使用的1602,原来的数码管显示没问题,修改的,定时器是1ms的啊 |
定时器1的中断是2ms一次吧? 对LCD1602来说太频密了 再加上注释 你好像抄错了数码管的动态扫描代码了吧 |
请路过的大师帮我看一下 |
yzwzfyz 发表于 2021-9-14 15:04 谢谢指导,我按您的办法试试。 |
lkc8210 发表于 2021-9-14 11:20 非常感谢,开始测试使用的中断刷新显示,调试后放在主函数内做显示,我再改一下试试。 |
1、显示程序:应能显示某个变量于LED上,如A3。 2、采样程序:应能将采样的数值,转换成温度,再放入A3中。 做到以上两点不就OK了吗?有什么难度呢? |
经过半天排查 发现是你初始化了定时器1但又没有相应的中断函数 结果在定时器1第一次溢出后单片机就当机了 应加上 void timer1() interrupt 3 { } 另外,LCD1602要显示字符,lcd_wdat();的形参要以ASCII值输入 lcd_wdat(volt);//自己想一下怎样改 lcd_wdat(seg1);>>>>>>>>>>>>lcd_wdat('0'+seg1); lcd_wdat(seg2);>>>>>>>>>>>>lcd_wdat('0'+seg2); lcd_wdat(seg3);>>>>>>>>>>>>lcd_wdat('0'+seg3); |
munuc_w 发表于 2021-9-14 08:28 出现乱码是不是0809数据错误啊 |
显示不显示和0809无关,问题可能出现在数据处理上,仔细检查0809后的数据处理过程。 |