当前位置: 首页 > wzjs >正文

企业网站优化的方式wordpress mu模式

企业网站优化的方式,wordpress mu模式,外国网页设计免费模板,软件工程哪个学校最好设计要求 从DS18B20温度传感器上获取环境温度,并将其温度值显示到数码管上(保留两位小数)。 当“S4”定义为发送按键,按键S4按下时,串口向PC端发送当前采集的温度值; 串口发送格式: Temp:26.…

设计要求

从DS18B20温度传感器上获取环境温度,并将其温度值显示到数码管上(保留两位小数)。

当“S4”定义为发送按键,按键S4按下时,串口向PC端发送当前采集的温度值;

串口发送格式:

                         Temp:26.26C

数码管显示格式如下图所示:

         

         固定使用5位数码管显示数据,数码管最低位显示固定字符‘C’

备注:

单片机IRC振荡器频率设置为12MHz。

按键模式:BTN;扩展模式:IO模式。

温度值保留小数点后两位有效数字。

代码

sys.h

#ifndef __SYS_H__
#define __SYS_H__#include <STC15F2K60S2.H>
extern unsigned char Seg_Buff[8];
extern bit flag_send;
extern float temper;
//onewire.c
float getT();
//sys.c
void init74hc138(unsigned char n);
void init();
void Seg_Loop();
void Key_Loop();
void seg_temper();
#endif

main.c

#include "sys.h"
bit flag_seg=0;
bit flag_key=0;
bit flag_temper=0;
unsigned char *str="Temp:";
void Timer0_Init(void)		//100微秒@12.000MHz
{AUXR |= 0x80;			//定时器时钟1T模式TMOD &= 0xF0;			//设置定时器模式TL0 = 0x50;				//设置定时初始值TH0 = 0xFB;				//设置定时初始值TF0 = 0;				//清除TF0标志TR0 = 1;				//定时器0开始计时ET0 = 1;				//使能定时器0中断EA = 1;
}
void UartInit(void)		//9600bps@12.000MHz
{SCON = 0x50;		//8位数据,可变波特率AUXR |= 0x40;		//定时器时钟1T模式AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器TMOD &= 0x0F;		//设置定时器模式TL1 = 0xC7;			//设置定时初始值TH1 = 0xFE;			//设置定时初始值ET1 = 0;			//禁止定时器中断TR1 = 1;			//定时器1开始计时ES = 1;EA = 1;
}
void uart_send_date(unsigned char date){SBUF=date;while(TI==0);TI=0;
}
void uart_send_str(unsigned char *str){while(*str!='\0'){uart_send_date(*str);str++;}
}
void uart_send(){uart_send_str(str);if(Seg_Buff[3]!=11)uart_send_date(Seg_Buff[3]+'0');uart_send_date(Seg_Buff[4]+'0');uart_send_date('.');uart_send_date(Seg_Buff[5]+'0');uart_send_date(Seg_Buff[6]+'0');uart_send_date('C');uart_send_str("\r\n");
}
void main(){init();Timer0_Init();while((int)getT()==85);UartInit();while(1){if(flag_seg){flag_seg=0;Seg_Loop();}if(flag_key){flag_key=0;Key_Loop();if(flag_send){flag_send=0;uart_send();}}if(flag_temper){flag_temper=0;temper=getT();seg_temper();}}
}
void uart() interrupt 4
{if(RI){RI=0;}
}
void Timer0_Isr(void) interrupt 1
{static unsigned char count1=0,count2=0;static unsigned int count3=0;count1++;count2++;count3++;if(count1==2){count1=0;flag_seg=1;}if(count2==50){count2=0;flag_key=1;}if(count3==1000){count3=0;flag_temper=1;}
}

sys.c

#include "sys.h"
code unsigned char Seg_Table[] = 
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //9
0xc6, //C 10
0xff  //熄灭 11
};
unsigned char Seg_Buff[8]={11,11,11,11,11,11,11,11};
unsigned char keyval,keyold,keyup,keydown;
bit flag_send=0;
float temper=0;
void init74hc138(unsigned char n){P2=(P2&0x1f)|(n<<5);P2&=0x1f;
}
void init(){P0=0x00;init74hc138(5);P0=0xff;init74hc138(4);
}
void seg(unsigned char addr,num){P0=0xff;init74hc138(7);P0=0x01<<addr;init74hc138(6);P0=Seg_Table[num];if(addr==4)P0&=0x7f;init74hc138(7);
}
void Seg_Loop(){static unsigned char i=0;seg(i,Seg_Buff[i]);i++;if(i==8)i=0;
}
void Key_Loop(){keyval=0;if(P33==0)keyval=1;keydown=keyval&(keyold^keyval);keyup=~keyval&(keyold^keyval);if(keyval&&!keyold)flag_send=1;keyold=keyval;
}
void seg_temper(){Seg_Buff[0]=11;Seg_Buff[1]=11;Seg_Buff[2]=11;if((int)(temper*100)>=1000)Seg_Buff[3]=(int)temper/10;elseSeg_Buff[3]=11;Seg_Buff[4]=(int)(temper*100+0.5)/100%10;Seg_Buff[5]=(int)(temper*100+0.5)/10%10;Seg_Buff[6]=(int)(temper*100+0.5)%10;Seg_Buff[7]=10;
}

onewire.c

#include "sys.h"
sbit DQ=P1^4;void Delay_OneWire(unsigned int t)  
{unsigned char i;while(t--){for(i=0;i<12;i++);}
}
void Write_DS18B20(unsigned char dat)
{unsigned char i;for(i=0;i<8;i++){DQ = 0;DQ = dat&0x01;Delay_OneWire(5);DQ = 1;dat >>= 1;}Delay_OneWire(5);
}
unsigned char Read_DS18B20(void)
{unsigned char i;unsigned char dat;for(i=0;i<8;i++){DQ = 0;dat >>= 1;DQ = 1;if(DQ){dat |= 0x80;}	    Delay_OneWire(5);}return dat;
}
bit init_ds18b20(void)
{bit initflag = 0;DQ = 1;Delay_OneWire(12);DQ = 0;Delay_OneWire(80);DQ = 1;Delay_OneWire(10); initflag = DQ;     Delay_OneWire(5);return initflag;
}
float getT(){unsigned char tl,th;float temp;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0x44);init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0xbe);tl=Read_DS18B20();th=Read_DS18B20();temp=(th<<8|tl)*0.0625;return temp;
}


文章转载自:

http://il9YkgAQ.sfjqy.cn
http://TidhltFX.sfjqy.cn
http://WB8BfRjf.sfjqy.cn
http://643oN5ml.sfjqy.cn
http://Hlhf4Zqo.sfjqy.cn
http://jO7JHFwQ.sfjqy.cn
http://u8EOZmbV.sfjqy.cn
http://KpwePv8S.sfjqy.cn
http://a3qZtYmV.sfjqy.cn
http://uQ3a5C3D.sfjqy.cn
http://bAzTqvKJ.sfjqy.cn
http://CFVIuc16.sfjqy.cn
http://nUeDW9fj.sfjqy.cn
http://vR72K8HZ.sfjqy.cn
http://eDnUWw7J.sfjqy.cn
http://nWRBP9Pm.sfjqy.cn
http://viLAZn5P.sfjqy.cn
http://DnIUviMv.sfjqy.cn
http://7wPJOmnC.sfjqy.cn
http://DVGcmMaN.sfjqy.cn
http://v52XXUh1.sfjqy.cn
http://ng4g5ouv.sfjqy.cn
http://5MUisvlt.sfjqy.cn
http://pFWfUWAG.sfjqy.cn
http://pthfN6l1.sfjqy.cn
http://hoZHRe3j.sfjqy.cn
http://k5Qfb8Qt.sfjqy.cn
http://jmyhCgJL.sfjqy.cn
http://nUGVgB7i.sfjqy.cn
http://XACHcAUD.sfjqy.cn
http://www.dtcms.com/wzjs/726740.html

相关文章:

  • 南山建站公司深圳 网页设计公司
  • 网站建设的具体过程凡科网网站系统
  • 怎么自助建站小区网络设计方案
  • 手机网站建设流程wordpress地产
  • 内设网站网站建设公司哪个好
  • 湘潭大学迎新自助网站沧州地区做网站
  • 松岗网站的建设上海 网站开发 兼职
  • 网址导航网址大全彩票网站大全2网站建设
  • 做网站要固定电话青岛黄岛区网站开发
  • win7 iis6.0添加网站做网站的主要作用
  • 大沥做网站网站分析的数据来源有哪些
  • 建立网站需要电商网站开发周期
  • 泰州网站建设服务公司东城专业网站建设公司
  • 保定网站设计制作wordpress文章tag
  • 滨州正规网站建设哪家好怎么样推广自己的网址
  • 正规网站优化推广课程网站建设课程
  • 一流专业建设网站网站建设建立好如何盈利
  • 网络营销软件网站wordpress导航菜单栏
  • 网站开发猪八戒企业网站模板php
  • 百度怎样建立一个网站四川明腾信息技术有限公司
  • 在网站文章锚文本怎么做用网站模板做网站
  • 营销型网站功能表口碑好的秦皇岛网站建设哪家好
  • 国外做的好看的网站设计国家建设工程信息网
  • 做衣服招临工在什么网站找免费网站制作软件
  • 商城网站制作费用我爱水煮鱼 wordpress
  • 林芝网站建设设计上海2021
  • 宫廷计有哪些网站开发的网站建设如何增加流量
  • 深圳住房建筑网站建个什么网站
  • 做旅游网站的目标上海手工活外发加工网
  • 建设网站必须要配置apache吗视频门户网站建设项目标书