完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在学习AVR单片机ADC章节内容时,建立了adc.c和display8.c两个文件。adc文件初始化ADC,设置ADC端口、使能和中断;display8.c文件将ADC读取数据通过51单片机HC6800开发板上的8位LED进行显示。main函数保持在adc.c文件内,每次通过adc.c文件中的main函数跨文件调用display()函数时,display()函数中的自变量uchar DisVal的值总是默认为1,即使加入关键字volatile后问题依然存在。
经过反复的模拟在线仿真试验后,发现DisVal被gcc编译器默认为局部函数的变量,将变量DisVal变量提到display8.c文件开头进行定义后,变量的值回复正常。 这个问题虽然解决了,但是下载到51开发板后,又发现8个数码管的位选显示不正常,同时LED亮度很微弱,使用万用表检查电路板,每次ls138某一位为零时,板子工作就不正常,测量电压为-1.9v。 AVR单片机IO口具有吸收电流的功能,两块板子的GND电压不一致导致了51单片机开发板的工作电压过低工作不正常,查明原因后,将两块板子的GND进行连接,8位LED数码管显示正常。 |
|
|
|
只有小组成员才能发言,加入小组>>
2481 浏览 0 评论
1052浏览 2评论
666浏览 1评论
433浏览 0评论
168浏览 0评论
271浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 04:54 , Processed in 1.104021 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号