基于单片机的CO监测系统的设计 - 图文

2026/1/27 17:25:59

//图片取模方式:横向取模,字节正序

void pic_Disp(uchar *pic) //显示Gdram内容(显示图片) {

uchar x,y,i;

for(i=0;i<9;i=i+8) for(y=0;y<32;y++) {

for(x=0;x<8;x++) {

Lcd_WriteCmd(0x36); //扩充指令,开绘图显示 Lcd_WriteCmd(0x80+y); //行地址 Lcd_WriteCmd(0x80+x+i); //列地址

Lcd_WriteData(*pic++); //写数据 D15-D8 Lcd_WriteData(*pic++); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }

void H_pic_Disp(uchar *pic) //显示Gdram内容(显示图片) {

uchar x,y,i=0;

for(y=0;y<32;y++) {

for(x=0;x<8;x++) {

Lcd_WriteCmd(0x36); //扩充指令,开绘图显示 Lcd_WriteCmd(0x80+y); //行地址 Lcd_WriteCmd(0x80+x+i); //列地址

Lcd_WriteData(*pic++); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }

/*****整屏显示竖条*****/

//当i=0时显示上面128×32,当i=8时显示下面128×32 //当i=0时显示上面128×32,当i=8时显示下面128×32 void LcdFill_Vertical() {

uchar x,y,i;

for(i=0;i<9;i=i+8) for(y=0;y<0x20;y++) {

30

for(x=0;x<8;x++) {

Lcd_WriteCmd(0x36); //扩充指令 绘图显示 Lcd_WriteCmd(y+0x80); //行地址

Lcd_WriteCmd(x+0x80+i); //列地址 Lcd_WriteData(0x55); //写数据 D15-D8 Lcd_WriteData(0x55); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }

/*****整屏显示横条*****/ void LcdFill_Level() {

uchar x,y,i; uchar k;

for(i=0;i<9;i+=8) for(y=0;y<0x20;y++) {

if((y%2)==1) k=0xff; else k=0;

for(x=0;x<8;x++) {

Lcd_WriteCmd(0x36); //扩充指令 绘图显示 Lcd_WriteCmd(y+0x80); //行地址

Lcd_WriteCmd(x+0x80+i); //列地址 Lcd_WriteData(k); Lcd_WriteData(k); Lcd_WriteCmd(0x30); } } }

/*****整屏充满亮点或暗点*****/

//当i=0时显示上面128×32,当i=8时显示下面128×32 //当i=0时显示上面128×32,当i=8时显示下面128×32 void Lcd_Fill(uchar test) {

uchar x,y;

for(y=0;y<0x20;y++) {

for(x=0;x<8;x++) {

31

Lcd_WriteCmd(0x36); //扩充指令 绘图显示 Lcd_WriteCmd(y+0x80); //行地址 Lcd_WriteCmd(x+0x80); //列地址 Lcd_WriteData(test); //写数据 D15-D8 Lcd_WriteData(test); //写数据 D7-D0 Lcd_WriteCmd(0x30); } } }

void Init_CLK(void) {

int index;

BCSCTL1&=~0X00; //打开XT2振荡器 do {

IFG1 &= ~OFIFG; // 清除振荡器失效标志

for (index = 0xFF; index > 0; index--);// 延时,等待XT2起振 } while ((IFG1 & OFIFG) != 0);// 判断XT2是否起振

BCSCTL2 =SELM_2+SELS; //选择MCLK、SMCLK为XT2 }

void Deal_data(unsigned long int n) //报警 {

unsigned long m; m=baojing;

v[0]=m000/1000+'0'; v[1]=m00/100+'0'; v[2]=m0/10+'0'; v[3]=m+'0'; }

void Get_ad(unsigned long int n) //浓度 {

unsigned long m; m=n;

a[0]=m000/1000+'0'; a[1]=m00/100+'0'; a[2]=m0/10+'0';

a[3]=m+'0'; }

void Deal_Vc(unsigned int n) //预报警

32

{

unsigned int m; m=yubaojing;

b[0]=m000/1000+'0'; b[1]=m00/100+'0'; b[2]=m0/10+'0'; b[3]=m+'0'; }

nRF905发送

#include #include \

unsigned char RFConf[11]= {

0x00, //配置命令//

0x6c, //CH_NO,配置频段在430MHZ

0x0c, //输出功率为10db,不重发,节电为正常模式

0x44, //地址宽度设置,为4字节

0x0C,0x0C, //接收发送有效数据长度为12字节 0xCC,0xCC,0xCC,0xCC, //接收地址

0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振 };

unsigned char TxAddress[4]={0xcc,0xcc,0xcc,0xcc}; char tf; unsigned char oneH,oneL,twoH,twoL,threeH,threeL,fourH,fourL,fiveH,fiveL,sixH,sixL; unsigned char TxRxBuf[TxRxBuf_Len]; unsigned int average_value[12];

void Delay_Ms(uint count) {

uint i,j;

for(i = 0;i

for(j=0;j<120;j++) { ; } } }

//================================================延时

===========================================================

33


基于单片机的CO监测系统的设计 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于单片机的CO监测系统的设计 - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219