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

建网站需求网站大数据怎么做

建网站需求,网站大数据怎么做,猎头公司和人力资源公司的区别,知乎关键词排名优化iic.c /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础#xff0c;根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求#xff0c;进行代码调试和修改。 */ #include STC1… iic.c /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求进行代码调试和修改。 */ #include STC15F2K60S2.H #include iic.h #include intrins.hsbit scl P2^0; sbit sda P2^1;#define DELAY_TIME 5// static void I2C_Delay(unsigned char n) {do{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); }while(n--); }// void I2CStart(void) {sda 1;scl 1;I2C_Delay(DELAY_TIME);sda 0;I2C_Delay(DELAY_TIME);scl 0; }// void I2CStop(void) {sda 0;scl 1;I2C_Delay(DELAY_TIME);sda 1;I2C_Delay(DELAY_TIME); }// void I2CSendByte(unsigned char byt) {unsigned char i;for(i0; i8; i){scl 0;I2C_Delay(DELAY_TIME);if(byt 0x80){sda 1;}else{sda 0;}I2C_Delay(DELAY_TIME);scl 1;byt 1;I2C_Delay(DELAY_TIME);}scl 0; }// unsigned char I2CReceiveByte(void) {unsigned char da;unsigned char i;for(i0;i8;i){ scl 1;I2C_Delay(DELAY_TIME);da 1;if(sda) da | 0x01;scl 0;I2C_Delay(DELAY_TIME);}return da; }// unsigned char I2CWaitAck(void) {unsigned char ackbit;scl 1;I2C_Delay(DELAY_TIME);ackbit sda; scl 0;I2C_Delay(DELAY_TIME);return ackbit; }// void I2CSendAck(unsigned char ackbit) {scl 0;sda ackbit; I2C_Delay(DELAY_TIME);scl 1;I2C_Delay(DELAY_TIME);scl 0; sda 1;I2C_Delay(DELAY_TIME); }void Write_PCF8591(unsigned char dat) {I2CStart();I2CSendByte(0x90);I2CWaitAck();I2CSendByte(0x40);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop(); }void Writr_AT24C02(unsigned char dat) {I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(0x00);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop(); }unsigned char Read_AT24C02() {unsigned char temp;I2CStart();I2CSendByte(0xa0);I2CWaitAck();I2CSendByte(0x00);I2CWaitAck();I2CStart();I2CSendByte(0xa1);I2CWaitAck();temp I2CReceiveByte();I2CSendAck(1);I2CStop();return temp; } iic.h #ifndef __iic_h #define __iic_hstatic void I2C_Delay(unsigned char n); void I2CStart(void); void I2CStop(void); void I2CSendByte(unsigned char byt); unsigned char I2CReceiveByte(void); unsigned char I2CWaitAck(void); void I2CSendAck(unsigned char ackbit); void Write_PCF8591(unsigned char dat); void Writr_AT24C02(unsigned char dat); unsigned char Read_AT24C02();#endif onewire.c /* # 单总线代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求进行代码调试和修改。 */// #include STC15F2K60S2.H #include onewire.hsbit DQ P1^4;void Delay_OneWire(unsigned int t) {unsigned char i;while(t--){for(i0;i12;i);} }// void Write_DS18B20(unsigned char dat) {unsigned char i;for(i0;i8;i){DQ 0;DQ dat0x01;Delay_OneWire(5);DQ 1;dat 1;}Delay_OneWire(5); }// unsigned char Read_DS18B20(void) {unsigned char i;unsigned char dat;for(i0;i8;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; }unsigned int Read_temp() {unsigned char LSB,MSB;unsigned int temp;init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0x44);init_ds18b20();Write_DS18B20(0xcc);Write_DS18B20(0xbe);LSB Read_DS18B20();MSB Read_DS18B20();temp MSB 8 | LSB;return temp * 6.25; } onewire.h #ifndef __onewire_h #define __onewire_hvoid Delay_OneWire(unsigned int t); void Write_DS18B20(unsigned char dat); unsigned char Read_DS18B20(void); bit init_ds18b20(void); unsigned int Read_temp();#endif sys.c #include STC15F2K60S2.H #include sys.h #include intrins.hvoid Delay12us() //12.000MHz {unsigned char i;_nop_();_nop_();i 33;while (--i); }void Delay_ms(unsigned int t) //12.000MHz {while(t--){unsigned char i, j;i 12;j 169;do{while (--j);} while (--i);} }void Select_Hc573(char n) {switch(n){case 4:P2 P2 0x1f | 0x80;break;case 5:P2 P2 0x1f | 0xa0;break;case 6:P2 P2 0x1f | 0xc0;break;case 7:P2 P2 0x1f | 0xe0;break;}P2 P2 0x1f; }void Sys_Init() {P0 0x00;Select_Hc573(5);P0 0xff;Select_Hc573(4); }void Select_Bit(unsigned char pos,dat) {P0 0x01 pos;Select_Hc573(6);P0 dat;Select_Hc573(7);Delay_ms(1);P0 0xff;Select_Hc573(7); } sys.h #ifndef __sys_h #define __sys_hvoid Delay_ms(unsigned int t); void Select_Hc573(char n); void Sys_Init(); void Select_Bit(unsigned char pos,dat); void Delay12us();#endif main.c #include STC15F2K60S2.H #include sys.h #include onewire.h #include iic.h #include stdio.hsbit R1 P3^0; sbit R2 P3^1; sbit R3 P3^2; sbit R4 P3^3; sbit C1 P4^4; sbit C2 P4^2; sbit C3 P3^5; sbit C4 P3^4;code unsigned char SMG[] { ~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x39,~0x38,~0x67,~0x73};sbit TX P1^0; sbit RX P1^1;unsigned char i; unsigned char key_val;//键值 unsigned int dis;//距离 unsigned int temp;//温度 unsigned char count1;//变更次数 char param_temp 30;//温度参数 char param_dis 35;//距离参数 char param_temp_old 30,param_dis_old 35; bit flag_10ms,flag_500ms; bit mode;//大界面切换 0-数据界面 1-参数界面 unsigned char mode_dat;//数据界面切换 0-温度 1-距离 2-变更次数 bit mode_param;//参数界面切换 0-温度 1-距离 bit flag_dac_open 1; unsigned char str[10]; unsigned char Rec[10]; unsigned char index;//索引 unsigned char index_old; unsigned char count1;void PCA_Init() {CCON 0;CMOD | 0x08; }void Send()//发送超声波 {for(i 0;i 8;i){TX 1;Delay12us();TX 0;Delay12us();}CH CL 0;CR 1;while(RX !CF);CR 0;if(!CF){dis (CH 8 | CL)* 0.017 / 12;}else{dis 99;CF 0;} }void Display_temp()//温度界面 {Select_Bit(0,SMG[10]);Select_Bit(4,SMG[temp / 1000]);Select_Bit(5,SMG[temp /100 % 10] - 0x80);Select_Bit(6,SMG[temp / 10 % 10]);Select_Bit(7,SMG[temp % 10]); }void Display_dis()//距离界面 {Select_Bit(0,SMG[11]);Select_Bit(6,SMG[dis / 10]);Select_Bit(7,SMG[dis % 10]); }void Display_count()//变更次数界面 {Select_Bit(0,SMG[12]);if(count 99) Select_Bit(5,SMG[count / 100]);if(count 9) Select_Bit(6,SMG[count / 10]);Select_Bit(7,SMG[count % 10]); }void DIsplay_Param_temp()//温度参数界面 {Select_Bit(0,SMG[13]);Select_Bit(3,SMG[1]);Select_Bit(6,SMG[param_temp / 10]);Select_Bit(7,SMG[param_temp % 10]); }void DIsplay_Param_dis()//距离参数界面 {Select_Bit(0,SMG[13]);Select_Bit(3,SMG[2]);Select_Bit(6,SMG[param_dis / 10]);Select_Bit(7,SMG[param_dis % 10]); }void Timer2Init(void) //10毫秒12.000MHz {AUXR 0xFB; //定时器时钟12T模式T2L 0xF0; //设置定时初值T2H 0xD8; //设置定时初值AUXR | 0x10; //定时器2开始计时IE2 1 2; }void Timer2_isr() interrupt 12 {flag_10ms 1;if(count1 100){count1 0;flag_500ms 1;} }unsigned char Key_Scan()//按键扫描获取键值 {static unsigned int cnt13 0;static unsigned int cnt12 0;static unsigned char cnt16 0;static unsigned char cnt17 0;if(flag_10ms)//10ms扫描一次{R3 0;R1 R2 R4 C1 C2 C3 C4 1;if(C3 0) {cnt13;if(cnt13 100) temp 130;}if(C3 1){if(cnt13 2 cnt13 100) temp 13;cnt13 0;}if(C4 0) cnt17;if(C4 1){if(cnt17 2) temp 17;cnt17 0;}R4 0;R1 R2 R3 C1 C2 C3 C4 1;if(C3 0) {cnt12;if(cnt12 100) temp 120; }if(C3 1){if(cnt12 2 cnt12 100) temp 12;cnt12 0;}if(C4 0) cnt16;if(C4 1){if(cnt16 2) temp 16;cnt16 0;}flag_10ms 0;}return temp; } void Key_Pro()//键值处理函数 {switch(key_val){case 12 :if(!mode){if(mode_dat 2) mode_dat 0;}else mode_param ~mode_param;break;case 13:mode ~mode;if(!mode) mode_param 0;else mode_dat 0;if(!mode)//数据的存储{if(param_temp_old ! param_temp){count;param_temp_old param_temp; }else if(param_dis_old ! param_dis){count;param_dis_old param_dis; }Writr_AT24C02(count);}break;case 16:if(mode){if(!mode_param){ param_temp - 2;if(param_temp 0) param_temp 98;}else{param_dis - 5;if(param_dis 0) param_dis 95;}}break;case 17:if(mode){if(!mode_param){ param_temp 2;if(param_temp 99) param_temp 0;}else{param_dis 5;if(param_dis 99) param_dis 0;}}break;case 120:count 0;break;case 130:flag_dac_open ^ 1;break; } }void Display()//数码管显示函数 {if(!mode){switch(mode_dat){case 0:Display_temp();break;case 1:Display_dis();break;case 2:Display_count();break;}}else{if(!mode_param) DIsplay_Param_temp();else DIsplay_Param_dis();} }void UartInit(void) //4800bps12.000MHz {SCON 0x50; //8位数据,可变波特率AUXR 0xBF; //定时器1时钟为Fosc/12,即12TAUXR 0xFE; //串口1选择定时器1为波特率发生器TMOD 0x0F; //设定定时器1为16位自动重装方式TL1 0xCC; //设定定时初值TH1 0xFF; //设定定时初值ET1 0; //禁止定时器1中断TR1 1; //启动定时器1ES 1; }void Send_Byte(unsigned char dat) {SBUF dat;while(!TI);TI 0; }void Send_String(unsigned char *dat) {while(*dat ! \0)Send_Byte(*dat); }void Uart_isr() interrupt 4 {if(RI){Rec[index] SBUF;index;RI 0;} } bit ok,error_flag; void Uart_Pro() { // if(flag_500ms) // { // if(index 0) // { // if(index_old ! index)//上一次的索引和这一次的索引不一样的话就刷新且不进入判断 // { // index_old index;//刷新 // ok 0;// 1-进行字符判断 0-不进行判断 // } // else ok 1; // } // flag_500ms 0; // } // if(ok) // { // if(index 4) // { // if(Rec[0] S Rec[1] T Rec[2] \r Rec[3] \n) // { // sprintf(str,$%d,%.2f\r\n,dis,((float)temp )/ 100); // Send_String(str); // sprintf(str,\r\n); // Send_String(str); // } // else flag 1; // } // else if(index 6) // { // if(Rec[0] P Rec[1] A Rec[2] R Rec[3] A Rec[4] \r Rec[5] \n) // { // sprintf(str,#%d,%d\r\n,(int)param_temp,(int)param_dis); // Send_String(str); // } // else flag 1; // } // else flag 1; // if(flag) // { // sprintf(str,ERROR\r\n); // Send_String(str); // flag0; // } // index 0; // ok 0; // }if(Rec[index - 1] \n){if(index 4){if(Rec[0] S Rec[1] T Rec[2] \r Rec[3] \n){sprintf(str,$%d,%.2f\r\n,dis,((float)temp )/ 100);Send_String(str);}}else if(index 6){if(Rec[0] P Rec[1] A Rec[2] R Rec[3] A Rec[4] \r Rec[5] \n){sprintf(str,#%d,%d\r\n,(int)param_temp,(int)param_dis);Send_String(str);}}else{sprintf(str,ERROR\r\n);Send_String(str);}index 0;} }void Dac_Pro() {if(flag_dac_open){if(dis param_dis) Write_PCF8591(2 * 51);else Write_PCF8591(4 * 51);}else Write_PCF8591(20); }void Led(unsigned char addr,enable) {static unsigned char temp 0x00;static unsigned char temp_old 0xff;if(enable) temp | 0x01 addr;else temp ~(0x01 addr);if(temp ! temp_old){P0 ~temp;Select_Hc573(4);temp_old temp;} }void Led_Pro() {if( ((float)temp) / 100 param_temp ) Led(0,1);else Led(0,0);if(dis param_dis) Led(1,1);else Led(1,0);if(flag_dac_open) Led(2,1);else Led(2,0); }void main() {Sys_Init();PCA_Init();Timer2Init();UartInit();EA 1;Read_temp();Delay_ms(750);count Read_AT24C02();while(1){if(flag_500ms){Send();flag_500ms 0;}temp Read_temp();key_val Key_Scan();Uart_Pro();Key_Pro();Display();Dac_Pro();Led_Pro();} }
http://www.zqtcl.cn/news/578627/

相关文章:

  • 上海高端网站制作广告设计培训课程
  • 互联网站平台有哪些建筑工程教育网官网
  • 广告传媒公司哪家好职场seo是什么意思
  • 番禺龙美村做网站博山区住房和城乡建设局网站
  • 山东网站建设xywlcnwordpress如何创建导航
  • 直接用ip访问网站网站开发常用字体
  • 江西省城乡建设培训网 官方网站杭州十大软件公司
  • 建设网站需要什么设备南昌购物网站制作
  • 做家具的网站工作单位怎么填
  • 福州建设银行官网招聘网站山西建设公司网站
  • 集团网站建设方案中卫网站推广制作
  • 射阳网站建设电商运营团队结构图
  • 有没有女的做任务的网站计算机网站开发专业
  • 怎么样开始做网站网站建设 营业执照 经营范围
  • 威海做网站网站建设方案书 模版
  • 泗阳做网站南昌建设
  • 做企业网站用什么软件深圳制作企业网站
  • 大连微信网站开发兰州网站建设模板
  • 建设项目安监备案网站外贸 网站 seo
  • 企慕网站建设网络推广合肥市网站制作
  • 做空比特币网站大气简约企业网站模板免费下载
  • 坪山网站建设行业现状做网站能月入10万
  • 个人网站有什么内容广西网站建设推广
  • 安徽教育云网站建设网站seo诊断的主要内容
  • 网站建设例子开发工具宏怎么使用
  • 新乡做网站公司哪个地区网站建设好
  • 网站模板怎么编辑网站定制化
  • 利于优化的网站网络科技公司怎么赚钱
  • 制作网站的步骤和方法做物流的网站有哪些功能
  • vs做网站图片明明在文件夹里却找不到中国建筑网官网找客户信息