资源简介
一个自制的温度智能控制系统,有三种模式,有proteus仿真,有C语言程序,有设计报告。
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit run=P3^7;
sbit QD=P3^6;
sbit rs=P3^4;
sbit en=P3^5;
sbit cn=P3^0;
sbit fen=P2^0;
sbit m=P2^1;
sbit sw=P2^4;
sbit jw=P2^7;
sbit red=P1^0;
sbit yellow=P1^4;
sbit green=P1^7;
int bai=0shi=0ge=0ss1s2sHsL;
int bai1bai2shi1shi2ge1ge2shi3ge3;
uchar code table1[]={“current T:“};
uchar code table2[]={“mode:0 choose:0“};
uchar code table3[]={“set temperature:“};
uchar code table4[]={“H:000 L:000“};
uchar data disdata[5];
uint temptemp2;
uchar flagflag2flag3flag4n;
void sheweng();
void delay1ms(uint ms)
{ //此为最小1ms延时
uint ij;
for(i=1;i<=ms;i++)
for(j=1;j<=123;j++);
}
void write_com(uchar com)//写指令//
{
rs=0;
delay1ms(1);
en=1;
P0=com;
delay1ms(1); //1mS
en=0;
delay1ms(1);
rs=1;
}
void write_dat(uchar dat)//写数据//
{
rs=1;
delay1ms(1);
en=1;
P0=dat;
delay1ms(1);
en=0;
delay1ms(1);
rs=0;
}
void lcd_init()
{
delay1ms(15);
write_com(0x38);
delay1ms(5);
write_com(0x0c);
delay1ms(5);
write_com(0x06);
delay1ms(5);
write_com(0x01);
delay1ms(5);
}
void display(uchar *p) //特别注意这里指针的运用
{
while(*p!=‘\0‘) //这表示的是定义一个指针变量作为形参
{ //在调用函数时是将实参的地址赋值给P而不是
write_dat(*p); //将其赋给*P
p++;
delay1ms(1);
}
}
init_play()
{
lcd_init();
write_com(0xd0);
display(table1);
write_com(0x80);
display(table2);
write_com(0xc0);
display(table3);
write_com(0x90);
display(table4);
// write_com(0xc0);
// display(table2); //可有可无的一句
}
void delay_18b20(uint i)
{
while(i--); //时钟频率为12MH时此延迟函数最小为25US,每增加一
} //多9US 如果时钟频率为11.0592MH时则最小延时为27US,每增加1则增加9.8us
//时钟频率为11.0592MH时如果是uchar型则最小为18.5us每增加1
void ds18b20rst() //则相应增加6.5us如果是12MH则最小为17US每增加1则增加6US
{
uchar x=0;
QD=1;
delay_18b20(4);
QD=0;
delay_18b20(100);
QD=1;
delay_18b20(50);
}
uchar ds18b20rd()
{
uchar i=0;
uchar dat=0; //赋值是为了后面简化程序
for(i=1;i<=8;i++)
{
QD=0;
dat>>=1; //技巧用程序本身做延时,简化程序
QD=1; //程序采样都是只动完成的
if(QD) //在数字信号中只有0和1;从哪里得来都是一样的
dat|=0x80; //在这里程序很巧妙,如果QD==0则dat还是和
delay_18b20(5); //本来的值一样,如果QD=1;则与0x80相或
} //从这里得到一个1;另外此程序对时序的操作
return(dat); //也是十分经典的,他把读0和读1的时序用一种方式
} //合在了一起,即两者都能满足
void ds18b20wr(uchar dat)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1912 2010-08-11 13:19 温度智能控制系统\智能温度控制系统.PWI
文件 13077 2010-08-11 13:18 温度智能控制系统\example5.c
文件 7842 2010-08-11 13:15 温度智能控制系统\example5.hex
文件 180196 2010-08-11 13:14 温度智能控制系统\Last Loaded 智能温度控制系统.DBK
文件 180219 2010-08-11 13:19 温度智能控制系统\智能温度控制系统.DSN
目录 0 2010-08-11 13:13 温度智能控制系统
文件 707072 2010-07-02 19:13 温度智能控制系统\基于单片机控制的温度测量计设计报告书.doc
----------- --------- ---------- ----- ----
1090318 7
- 上一篇:opengl头文件
- 下一篇:用C++语言设计的一个小型公司工资管理系统
评论
共有 条评论