完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
初来论坛,求罩本人大一新生,对电子很感兴趣,闲暇之余想做个PM2.5检测仪,求各位大大帮忙,下面是我乱写的编程,感觉不靠谱,请各位大大过目, void delay(uint z) //延时程序 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com) //写命令 { lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date) //写数据 { lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0; } void init() //初始化 { lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); } void main() { tt=0; num=0; init(); TMOD=0x01; //设置定时器0为工作方式 TH0=(65536-1000)/256; TL0=(65536-1000)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 while(1) { if(tt==1) //每1ms中断一次 { if(P1^1==0) { num++; } } if(tt==1000) { if(num<20) { write_data('A'); } else if(num>=20 && num<40) { write_data('B'); } else if(num>=40 && num<60) { write_data('C'); } else if(num>=60) { write_data('D'); } } } } void exter0() interrupt 1 //1ms { TH0=(65536-1000)/256; TL0=(65536-1000)%256; tt++; } shiyan2.Uv2 (2.02 KB ) |
|
相关推荐
2个回答
|
|
|
我重新改了下,不知道行了嘛?
#include #define uchar unsigned char #define uint unsigned int ***it C1=P1^1; //PM2.5管脚 ***it F1=P3^7; //蜂鸣器管脚 ***it lcden=P3^4; ***it lcdrs=P3^5; uchar tt,jj,num,xians; void delay(uint z) //延时程序 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com) //写命令 { lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date) //写数据 { lcdrs=1; P0=date; delay(5); lcden=1; delay(5); lcden=0; } void init() //初始化 { lcden=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); } void main() { tt=0; num=0; init(); TMOD=0x01; //设置定时器0为工作方式 TH0=(65536-1000)/256; TL0=(65536-1000)%256; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 TR1=1; //启动定时器1; while(1) { if(tt==1) //每1ms中断一次 { tt=0; if(P1^1==0) { num++; } } if(jj==1000) //没1s中断一次,显示器显示 { jj=0; if(num<20) { write_data('A'); } else if(num>=20 && num<40) { write_data('B'); } else if(num>=40 && num<60) { write_data('C'); } else if(num>=60) { write_data('D'); } } } } void exter0() interrupt 1 //1ms { TH0=(65536-1000)/256; TL0=(65536-1000)%256; tt++; }void exter() interrupt 3 { TH0=(65536-1000)/256; TL0=(65536-1000)%256; jj++; } |
|
|
|
|
|
下载试试了,呵呵
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1654 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4742 浏览 0 评论
4232 浏览 9 评论
3824 浏览 16 评论
4400 浏览 1 评论
4215浏览 3评论
2382浏览 0评论
3398浏览 0评论
1161浏览 0评论
2845浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 10:35 , Processed in 0.788610 second(s), Total 81, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4415