完善资料让更多小伙伴认识你,还能领取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++; } |
|
|
|
下载试试了,呵呵
|
|
|
|
只有小组成员才能发言,加入小组>>
2970 浏览 9 评论
2687 浏览 16 评论
3212 浏览 1 评论
8426 浏览 16 评论
3770 浏览 18 评论
6950浏览 6评论
求助,请问MS51FB9AE带隙电压能作为侦测的基准电压吗?
7449浏览 3评论
6950浏览 3评论
支持UART-to-BLE透传的新唐NuTool – BLE ATCMD开发工具推荐
5798浏览 3评论
9370浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-20 22:47 , Processed in 0.772104 second(s), Total 74, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号