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

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

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

} }

v oid led_menu_show() {

uchar n;

max_item=menu_led->menu_count; if (max_item>=4) { } else {

switch(temp_choosen) { case 0:

draw_bmp(0,20,96,0,measurearray); //“开始测量”数组//

break;

//菜单项为3则表示为主菜单.

led_menu_show();

for(n=0;n<4;n++)

{ draw_bmp(n*2,20,96,0,menu_led[n].display); }

select_item(user_choosen);

//标记出当前菜单项.

……

default:

}

for(n=0;n

select_item(user_choosen+1); }

}

draw_bmp((n+1)*2,20,32,0,menu_led[n].display);

break;

void select_item(uchar n) {

27

draw_bmp(n*2,2,16,0,curflag); }

void start_measure_function(void) //开始测量函数// {main_Menu(); }

/*----------------主函数-------------------*/ main() {

init_cpu(); Init_Clock(); init_lcd();

Disp_Img(FirstPage);

delay(2000); //延时// ClockMsg(); Refresh(); delay(2500); Clr_Scr(); main_Menu(); Clr_Scr(); main_menu_initial(); measure_menu_initial(); store_menu_initial(); time_menu_initial();

communication_menu_initial();

while(1)

//读键.

{ keyval=get_key();

led_menu_pro(); }

} // 适当延时防止因为不断查忙而耗费大量CUP资源 //

附录A3 ADC0832程序

#define uint unsigned int //常量/变量定义//

28

uchar k,i,j; float xdata lv;

sbit ADCS =P3^1; //ADC0832 chip seclect //接口定义// …… //其它引脚略…… uchar xdata dsw[20]; //存放sprintf转换字符 uchar xdata value[149]; //点阵字符储存 uchar code table[]={ //字符查表

0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*\……};//采集并返回

unsigned int Adc0832(unsigned char channel) //AD转换,返回结果[6] {

uchar i=0; uchar j; uint dat=0; uchar ndat=0;

if(channel==0)channel=2; if(channel==1)channel=3; ADDI=1; _nop_(); _nop_();

ADCS=0;//拉低CS端 _nop_(); _nop_();

ADCLK=1;//拉高CLK端 _nop_(); _nop_();

ADCLK=0;//拉低CLK端,形成下降沿1 _nop_(); _nop_();

ADCLK=1;//拉高CLK端

29

ADDI=channel&0x1; _nop_(); _nop_();

ADCLK=0;//拉低CLK端,形成下降沿2 _nop_(); _nop_();

ADCLK=1;//拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_();

ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i<8;i++) {

dat|=ADDO;//收数据 ADCLK=1; _nop_(); _nop_();

ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1;

if(i==7)dat|=ADDO; }

for(i=0;i<8;i++) { j=0;

j=j|ADDO;//收数据

30

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