网站大量收购独家精品文档,联系QQ:2885784924

51单片机夏普第二代PM测试程序.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include reg52.h #includeintrins.h #includestdio.h #define uchar unsigned char #define uint unsigned int uchar TxBuf[32]; sbit RS = P3^5;//并行指令,数据选择信号 sbit RW = P3^6;//读写信号 sbit EN = P3^4;//并行使能信号 sbit PSB = P3^7;//并串口选择信号 sbit wela=P2^6; sbit dula=P2^7; sbit LED=P3^0;//粉尘传感器控制接口 sbit AD0832_CLK=P2^1; //时钟置低平//时钟12Mhz, 整个转换时间为224us //使用芯片准备(参考PDF时序图) sbit AD0832_DI=P2^2; //开始信号为高电平 sbit AD0832_CS=P2^0 ; sbit SET=P2^3;//按键接口 sbit ADD=P2^4; sbit DEC=P2^5; sbit RST=P3^1; sbit LED1=P1^0;//绿 sbit LED2=P1^1;//黄 sbit LED3=P1^2;//红 sbit BEEP=P1^3;//蜂鸣器接口 uchar set_st,mm=0,count=0; uint DUST_SET=35;//固体颗粒物的阀值 uchar Flag=0;//定义标志 float DUST_Value; uint DUST; uchar abc; uchar ADC_Get[10]={0};//定义AD采样数组 uchar code tab0[]=pm2.5:;//6 uchar code tab1[]=报警阀值:;//9 void delay(uint z)//ms延时 { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } /*******12864操作*******/ bit check_busy() { bit temp; RS = 0; RW = 1; EN = 1; delay(5); temp = (bit)(P00x80); //按位与操作 EN = 0; return (temp); } void write_data(uchar dat) { while(check_busy()); //temp==0时不忙,则跳出执行下面程序 RS = 1; RW = 0; EN = 0; P0 = dat; delay(5); EN = 1; delay(5); EN = 0; } void write_cmd(uchar cmd) { while(check_busy()); //temp==0时不忙,则跳出执行下面程序 RS = 0; RW = 0; EN = 0; delay(5); P0 = cmd; delay(5); EN = 1; delay(5); EN = 0; } /*void lcd_pos(uchar X,uchar Y) { uchar pos; if (X==1) {X=0x80;} else if (X==2 ) {X=0x90;} else if (X==3 ) {X=0x88;} else if (X==4 ) {X=0x98;} pos=X+Y; write_cmd(pos); //显示地址 }*/ void lcd_write() { uchar i,j; write_cmd(0x88); for(i=0;i7;i++) { write_data(tab0[i]); delay(1); } write_cmd(0x98); for(j=0;j10;j++) { write_data(tab1[j]); delay(1); } } void LCD_init() { PSB = 1; delay(5); write_cmd(0x34);//扩充指令 delay(5); write_cmd(0x30);//基本指令 delay(5); write_cmd(0x0c);//显示开关光标 delay(5); write_cmd(0x01);//清屏 delay(5); } /****************显示函数********************/ void disp(uint Data)//PM2.5值显示 {

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档