版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于STM8单片机驱动dhtll模块通过LED数码管显示温湿度值c语言程序#includestm8s.hu8sge,sshi,sbai,sqian,wge,wshi,wbai,wqian;u16value,valuel,valuel1,valuel2,valueh;u8key_value=0,key_value1;u8chuli=0 x00,0 x08,0 x80,0 x88;u8shumaguan=0 xc0,0 xC2,0 xC4,0 xC6,0 xC8,0 xCa,0 xCc,0 xce;u8deng=0 xc1,0 xC3,0 xC5,0 xC7,0 xC9,0 xCb,0 xCd,0
2、 xcf;u8table16=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;u8dengzhuangtai=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80;u16jishi=3000;#definesetclk(void)#definerstclk(void)#definesetdio(void)#definerstdio(void)#definesetclk(void)#definerstclk(vo
3、id)#definesetdio(void)#definerstdio(void)#definereaddio(void)#definesetstb(void)#definerststb(void)#definesetdht(void)#definerstdht(void)#definereaddht(void)GPIO_WriteLow(GPIOC,GPIO_PIN_1)GPIO_WriteHigh(GPIOC,GPIO_PIN_2)GPIO_WriteLow(GPIOC,GPIO_PIN_2)GPIO_ReadInputPin(GPIOC,GPIO_PIN_2)GPIO_WriteHigh
4、(GPIOC,GPIO_PIN_3)GPIO_WriteLow(GPIOC,GPIO_PIN_3)GPIO_WriteHigh(GPIOG,GPIO_PIN_0)GPIO_WriteLow(GPIOG,GPIO_PIN_0)GPIO_ReadInputPin(GPIOG,GPIO_PIN_0)u8key_data4,dht_data5,flag;voidgpio_out()GPIO_Init(GPIOC,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);voidgpio_in()GPIO_Init(GPIOC,GPIO_PIN_2,GPIO_MODE_IN_PU_N
5、O_IT);voiddht_out()GPIO_Init(GPIOG,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST);voiddht_in()GPIO_Init(GPIOG,GPIO_PIN_0,GPIO_MODE_IN_PU_NO_IT);voidgpio_init()GPIO_DeInit(GPIOC);GPIO_Init(GPIOC,GPIO_PIN_1,GPIO_MODE_OUT_PP_HIGH_FAST);GPIO_Init(GPIOC,GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);GPIO_Init(GPIOC,GPIO
6、_PIN_3,GPIO_MODE_OUT_PP_HIGH_FAST);GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_OUT_PP_HIGH_FAST);GPIO_DeInit(GPIOB);GPIO_Init(GPIOB,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST);GPIO_DeInit(GPIOG);GPIO_Init(GPIOG,GPIO_PIN_0,GPIO_MODE_OUT_PP_HIGH_FAST);voidwrite_data(u8data)u8i;rststb();for(i=0;i=1;u8read_data()u8
7、data,i,value;rststb();for(i=0;i1)|0 x80;elsevalue=value1;setclk();returnvalue;voidread_key()u16i=20,j;gpio_out();write_data(0 x42);while(i-);gpio_in();for(j=0;j4;j+)key_dataj=read_data();setstb();voidwrite_1638(u8add,u8data)write_data(add);write_data(data);setstb();voidinit(u8num)gpio_out();write_da
8、ta(0X8c);setstb();if(num)write_data(0X40);elsewrite_data(0X44);setstb();voidqingling()u8i;init(0);for(i=0;i8;i+)write_1638(shumaguani,0 x00);for(i=0;i8;i+)write_1638(dengi,0 x00);setstb();voidkey_manage()u8ii,tt;read_key();for(ii=0;ii4;ii+)key_dataii|=chuliii;for(tt=0;tt4;tt+)switch(key_datatt)case1
9、29:key_value=0;break;case144:key_value=1;break;case137:key_value=2;break;case152:key_value=3;break;case1:key_value=4;break;case16:key_value=5;break;case9:key_value=6;break;case24:key_value=7;break;case130:key_value=8;break;case160:key_value=9;break;case138:key_value=10;break;case168:key_value=11;bre
10、ak;case2:key_value=12;break;case32:key_value=13;break;case10:key_value=14;break;case40:key_value=15;break;default:break;voiddisplay1()sge=dht_data0%10;sshi=dht_data0/10%10;sbai=dht_data0/100%10;sqian=dht_data0/1000;wge=dht_data2%10;wshi=dht_data2/10%10;wbai=dht_data2/100%10;wqian=dht_data2/1000;init
11、(0);write_1638(shumaguan0,tablesge);write_1638(shumaguan1,tablesshi);write_1638(shumaguan2,tablesbai);write_1638(shumaguan3,tablesqian);write_1638(shumaguan4,tablewge);write_1638(shumaguan5,tablewshi);write_1638(shumaguan6,tablewbai);write_1638(shumaguan7,tablewqian);setstb();voiddelay_1us(u16i)TIM2
12、_DeInit();TIM2_TimeBaseInit(TIM2_PRESCALER_1,2);while(i-)TIM2_Cmd(ENABLE);while(TIM2_GetFlagStatus(TIM2_FLAG_UPDATE)!=1);TIM2_ClearFlag(TIM2_FLAG_UPDATE);TIM2_Cmd(DISABLE);voiddelay_1ms(u16i)TIM2_DeInit();TIM2_TimeBaseInit(TIM2_PRESCALER_2,1000);while(i-)TIM2_Cmd(ENABLE);while(TIM2_GetFlagStatus(TIM
13、2_FLAG_UPDATE)!=1);TIM2_ClearFlag(TIM2_FLAG_UPDATE);TIM2_Cmd(DISABLE);u8read_dht()u8value=0,ii;for(ii=0;ii8;ii+)value=1;while(!readdht();delay_1us(40);if(readdht()=1)value|=0 x01;delay_1us(40);delay_1us(2);returnvalue;voidDHT11()u8i;dht_out();rstdht();delay_1ms(25);setdht();delay_1us(50);dht_in();de
14、lay_1us(1);while(!readdht();while(readdht();for(i=0;i80)判断数据是否超出范围已经超出disp_data=80;使数据保持在80;Display(disp_data);/显示数据else没有超出Display(disp_data);显示数据if(K-=0)/判断K-是否被按下(假如按键按下时为低电平)Delay_ms(20);延时,去抖动if(k-=0)再次判断disp_data-;数值-1if(disp_data50)判断数据是否超出范围已经超出disp_data=50;使数据保持在50;Display(disp_data);/显示数据e
15、lse没有超出Display(disp_data);显示数据浏览器里直接打的代码,整体思路应该是对的,需要注意的是K+K-这样的变量keil中是非法的,实际程序中请自行改正。拿到STM8板子之后,在IAR官方下载IARforSTM8s30天试用版本,在电脑上安装后发现在安装IAR时,STLink的驱动也会全部自动的安装上去,方便啊。因为之前我的AVR都是在IAR上开发的,所有对这个软件并不陌生,打开软件新建工程,Debug模式下,设置使用STLink仿真,将空白文件成功烧写进去了,看来,开饭环境搭建还是很简单的。接下来,进入主题,STM8S的IO口控制,这是学习一个单片机最最最基础的东西了。STM8单片机IO与AVR差不多,可以配置为输入输出,同时还可以带上拉电阻下拉电阻。还有就是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股份制企业创立人合同书格式
- 建筑工程劳务分包合同
- 工程合同范本在线查阅
- 2024新版简单食堂承包合同书范本
- 简单股权转让协议书范本
- 建筑维修保养服务补充协议
- 2023年高考地理重点难点考点通练-服务业(原卷版)
- 1.1坚持改革开放(导学案) 2024-2025学年统编版道德与法治九年级上册
- 个人投资合同协议样本
- 生物中图版自主训练:第一单元第二章第二节染色体结构变异对性状的影响
- xx学校未成年人性教育工作方案
- 2024-2030年组氨酸行业市场现状供需分析及投资评估规划分析研究报告
- 教育信息化教学资源建设规划
- 上海市交大附中附属嘉定德富中学2024-2025学年九年级上学期期中考数学卷
- 屠宰场食品安全管理制度
- 部编版(2024秋)语文一年级上册 6 .影子课件
- 2024秋期国家开放大学专科《刑事诉讼法学》一平台在线形考(形考任务一至五)试题及答案
- 基于SICAS模型的区域农产品品牌直播营销策略研究
- 病例讨论英文
- 2024秋期国家开放大学专科《液压与气压传动》一平台在线形考(形考任务+实验报告)试题及答案
- 【课件】植物体的结构层次课件-2024-2025学年人教版生物七年级上册
评论
0/150
提交评论