完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请问如何在LCD1602上显示MQ2的检测到的浓度呢,我在proteus用滑动变阻器代替了MQ2,加ADC0809连接单片机。程序用中断,可是用了中断,我其它子模块的按键扫描就没有用了,这怎么改进呢
部分程序: void timer0() interrupt 1 { TH0=(65536-2)/256; TL0=(65536-2)%256; CLK=!CLK; } uint read_yanwu() { TMOD=0x01; //定时器中断0 CLK=0; TH0=(65536-2)/256; TL0=(65536-2)%256; EA=1; ET0=1; TR0=1; ST=0; //使采集信号为低 ST=1; //开始数据转换 ST=0; //停止数据转换 while(!EOC); //等待数据转换完毕 OE=1; //允许数据输出信号 AD0809=P1; //读取数据 OE=0; //关闭数据输出允许信号 if(AD0809>=251) //电压显示不能超过5V AD0809=250; yw=AD0809*20; //数码管显示的数据值,其中20为采集数据的毫安值 return yw; } 主程序: void main() { uchar i=0; sys_init(); while(1) { key_scan(); if(shu==0) { wendu=ReadTemperature(); count(wendu); yanwu=read_yanwu(); display_yw(yanwu) ; } } } |
|
相关推荐
11个回答
|
|
开中断写在主程序里面,然后就不用管了。 我建议哈这样做: 1、中断做个标记。 2、主循环里面检测标记,如果标记置位,有按键,进行按键处理,否则执行别的去。
最佳答案
|
|
|
|
把按键做到外部中断中。
|
|
|
|
|
|
|
|
硬件上将按键接入到外部中断中。软件上只有触发中断够,才调用扫描。 |
|
|
|
那我开中断的程序写在主程序里面还是写在按键扫描的程序里呀 |
|
|
|
|
|
|
|
可能是中断优先顺序有错误吧
|
|
|
|
开中断写在主程序里面,然后就不用管了。
我建议哈这样做: 1、中断做个标记。 2、主循环里面检测标记,如果标记置位,有按键,进行按键处理,否则执行别的去。 3.介意你把程序分开调试,找出错误 |
|
|
|
开中断写在主程序里面,然后就不用管了。
我建议哈这样做: 1、中断做个标记。 2、主循环里面检测标记,如果标记置位,有按键,进行按键处理,否则执行别的去。 3.介意你把程序分开调试,找出错误 |
|
|
|
|
|
|
|
谢谢!!看看先谢谢!!看看先谢谢!!看看先
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
6130 浏览 3 评论
7398 浏览 1 评论
7633 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
9426 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1276 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:27 , Processed in 0.734680 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号