智能风扇程序,数码管显示温度.doc

上传人:工**** 文档编号:564401680 上传时间:2023-10-14 格式:DOC 页数:7 大小:29.01KB
返回 下载 相关 举报
智能风扇程序,数码管显示温度.doc_第1页
第1页 / 共7页
智能风扇程序,数码管显示温度.doc_第2页
第2页 / 共7页
智能风扇程序,数码管显示温度.doc_第3页
第3页 / 共7页
智能风扇程序,数码管显示温度.doc_第4页
第4页 / 共7页
智能风扇程序,数码管显示温度.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《智能风扇程序,数码管显示温度.doc》由会员分享,可在线阅读,更多相关《智能风扇程序,数码管显示温度.doc(7页珍藏版)》请在金锄头文库上搜索。

1、#include#define uchar unsigned char#define uint unsigned intsbit du=P20;sbit we=P21;sbit LCD_RS = P35; sbit LCD_RW = P36; sbit LCD_EN = P34; sbit LCD_PSB = P37; sbit dianji=P17;sbit jia=P30;sbit jian=P31;sbit in1=P14;sbit in2=P15;sbit ds=P22;sbit dula=P26;sbit wela=P27;uint temp;float tt;uchar num=0

2、;show=1;gao=1;di=3;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/uchar code table=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39 ;uchar code hang3=当前温度:;uchar code hang4=度;uchar

3、 code hang5=当前档位:;uchar code hang6=档;void delay(uint i)while(i-);void yan(uchar z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uint temp1)uchar shi,ge,wei;shi=temp1/100;ge=temp1%100/10;wei=temp1%10;P0=tableshi; /十位;dula=1;dula=0;P0=0xff;P0=0xfe;wela=1;wela=0;yan(2);P0=table1ge; /个位;dula=1;du

4、la=0;P0=0xff;P0=0xfd;wela=1;wela=0;yan(2);P0=tablewei; /小数点一位;dula=1;dula=0;P0=0xff;P0=0xfb;wela=1;wela=0;yan(2);P0=0x39; /摄氏度;dula=1;dula=0;P0=0xff;P0=0xf7;wela=1;wela=0;yan(2);void chushihua() /初始化函数;ds=1; delay(2);ds=0;delay(100);ds=1;delay(15);if(ds=0)delay(90);ds=1;void xiehanshu(uchar dat) /写函

5、数;uchar i=0;for(i=8;i0;i-)ds=0;ds=dat&0x01;delay(6);ds=1;dat=1;ds=1;uchar duhanshu(void) /读函数;uchar i=0;uchar dat=0;for(i=8;i0;i-)ds=0; dat=1;ds=1;if(ds=1)dat|=0x80;delay(3);return(dat);void kaishi()uchar a=0;uchar b=0;chushihua();xiehanshu(0xcc); /写跳过读ROM指令;xiehanshu(0x44); /写温度转换指令;delay(30);chush

6、ihua();xiehanshu(0xcc);xiehanshu(0xbe);delay(15);a=duhanshu(); /读低八位;b=duhanshu(); /读高八位;temp=b;temp37) num=3;else if(temp36) num=2;else if(temp35) num=1;else if(temp33)num=0;else if(temp32)num=4;void dispose()switch(num)case 0:gao=1;di=3;break;case 1:gao=2;di=2;break;case 2:gao=3;di=1;break;case 3:

7、gao=4;di=0;break;case 4:gao=0;di=4;void qudong()uchar i;in1=1;in2=0;if(di!=0)for(i=0;idi;i+)dianji=0;yan(1);for(i=0;igao;i+)dianji=1;yan(2);void write_cmd(uchar cmd) /写指令数据到LCD;LCD_RS=0;LCD_RW=0;LCD_EN=0;P0=cmd;delay(5);LCD_EN=1;delay(5);LCD_EN=0;void write_dat(uchar dat) /写显示数据到LCD;LCD_RS=1;LCD_RW=

8、0;LCD_EN=0;P0=dat;delay(5);LCD_EN=1;delay(5);LCD_EN=0;void lcd_pos(uchar X,uchar Y) /设定显示位置;uchar pos;if(X=0)X=0x80;else if(X=1)X=0x90;else if(X=2)X=0x88;else if(X=3)X=0x98;pos=X+Y;write_cmd(pos); void lcd_init() /LCD初始化设定;LCD_PSB=1;write_cmd(0x30);delay(5);write_cmd(0x0C);delay(5);write_cmd(0x01);d

9、elay(5);void Clear_GDRAM(void) uchar i,j,k; write_cmd(0x34); i=0x80; for(j=0;j32;j+) write_cmd(i+); write_cmd(0x80); for(k=0;k16;k+) write_dat(0x00);i=0x80;for(j=0;j32;j+) write_cmd(i+); write_cmd(0x88); for(k=0;k16;k+) write_dat(0x00); write_cmd(0x30);/*欢迎界面* */void main()while(1)dianji=0;kaishi();dispose();qudong();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号