第一范文网 - 专业文章范例文档资料分享平台

基于单片机的CO浓度检测及报警系统设计与制作要点

来源:用户分享 时间:2025/5/28 19:17:09 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

ADCLK=1; _nop_(); _nop_();

ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7)ndat>>=1; }

ADCS=1;//拉低CS端 ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态 dat<<=8; dat|=ndat;

return(dat); //return ad k }

/*----------------------点阵字符采集函数--------------------------*/

void tra(uchar *p) //数组dsp[]里面的字符查询后,再储储存到另一个显示数组value[]

void main_Menu()

{ Clr_Scr(); // 先清屏 // CS2=1;CS1=0;

hz_disp16(0,32,1,jiaquan); …… //甲//醛//测//量//数//据//存//储//…… delay(2000); do{

/* k=Adc0832(0); //AD转换结果 l=k/255.0*100.0;

ltemp=floor(l); dsw[0]=ltemp/10;

31

dsw[1]=ltemp; // sprintf(dsw,\ // dsw[0]=1; switch(dsw[0]) { case 0:

sz_disp16(2,32,1,sz0); break;

case 1:……sz_disp16(2,32,1,sz9); }

switch(dsw[1]) { case 0:

sz_disp16(2,40,1,sz0); break;

case 1:……sz_disp16(2,40,1,sz9); } */

// sz_disp16(2,40,1,sz0); /* tra(dsw);

CS2=1;CS1=0;

sz_disp16(2,56,1,value); */

}

while(P1_3); }

附录A4 按键程序

#define nullkey 0 //定义// ……

uchar get_key() //读键// {

uchar pass,kcodebuf;

static uchar lastkcode,keytime=0;

//定义为静态变量,外部不可见,但需要常驻

32

内存.

static uchar havekey=0; static uchar keylock=0; kcodebuf=P1 & 0xff; keytime++;

if (kcodebuf!=lastkcode) keytime=0; if (kcodebuf==0xff) { havekey=0;

keylock=0; keytime=0; pass=0; } ……

else pass=nusekey; lastkcode=kcodebuf; return(pass); }

/*uchar get_key()

else pass=nusekey; return(pass); } */

附录A5 时钟程序

/*-------------------引脚连接-------------------------------------*/ sbit RST2 = P3^5; // 复位线引脚 // sbit CLK = P3^6; // 时钟线引脚 // …… // 其它引脚略…… /*---------------定义时间日期显示缓存 ----------------------*/ unsigned char Curtime[7];

idata unsigned char day,sec,min,hour,date,month,year,hms,n,fla_cou; Unsigned char code

yejing[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; /*------------------子函数声明 (时钟部分 )--------------*/[7]

33

void InputByte(unsigned char Date); void WriteTo1302(unsigned char Addr,unsigned char Date); ReadFrom1302(unsigned char Addr); void SetTime(unsigned char *pSecDa); void GetTime(unsigned char Curtime[]); void Init_T0(void); void FlashKey(void); void Add(void); void Init_Clock(void); void Refresh(void); void StartMenu(void)

/*------------------------时钟固定汉字显示-----------------------*/ void ClockMsg(void) {

Clr_Scr(); // 先清屏 CS2=1;CS1=0; // 左屏

hz_disp16(1,32,1,xing);…… //星//期// 2// 0// 年//时

CS2=0;CS1=1; // 右屏

hz_disp16(3,0,1,yue);…… //月//日//分//秒 }

/*----------------时钟部分-------------------------------*/ /*----------------函数:写入字节子函数-----------*/ void InputByte(unsigned char dat) {

unsigned char i; ACC = dat; for(i=8; i>0; i--) {

IO = ACC0;

CLK = 1; //下降沿写入数据//

34

基于单片机的CO浓度检测及报警系统设计与制作要点.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6chtf3j2rq3sk4u09qt56trx01723y00f0c_10.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top