基于STM8S003F3的数字温度计制作

资料下载链接(包含源代码)

链接:https://pan.baidu.com/s/1TFlFqV93jU00CDDDEN-HvA 
提取码:rezp

需求分析

手持式的;按下按钮开始测量;使用液晶屏;

资料准备

1. stm8s固件库       2. stm8s芯片手册      3. DS18B20温度传感器   4. 段式液晶屏(KHL030802A)  5. IAR for STM8 V8.09

硬件设计

原理图设计

1. 先查看各种芯片的数据手册确定其电气参数(额定电流/电压、参考电路)

stm8s芯片电气参数:

stm8s003f3芯片工作电压、时钟等。此芯片有内部时钟,所以为了简化电路可以不接外部晶振

然后查看其他电气参数确定引脚驱动电压/电流为后续设置电路做准备,从数据手册中可以看到芯片最大的输出电流为20mA

 

段式液晶屏(KHL030802A):驱动电压5V,电流手册中没有提到。所以不需要太关心,保证电压即可。电压值可以从段式液晶显示屏在淘宝对应宝贝详情中查找。

 

DS18B20传感器:1. 驱动电压:3.0V~5.5V,可以直接接单片机IO口

确认完所有元器件的电气特性后,我们再根据元器件手册中的参考电路图来完成相关器件电路设计

完整原理图设计:

PCB设计

3D效果:

注:实际产品中这个DS18B20应该通过导线引出来,因为它是测量头需要与物体接触。

软件设计

功能:驱动DS18B20并读取它测量到的温度数据并在段式液晶屏上显示。这里主要的程序:DS18B20驱动、段式液晶屏驱动

DS18B20驱动其实没有什么好说的,若下省事或者说偷懒。那么可以直接从网上复制下别人写的DS18B20代码即可。当然我强烈推荐大家实际自己编写下DS18B20驱动,这样可以使用你对DS18B20理解的更加通透。同时提高了你对阅读数据手册的能力,后面再遇到新的芯片时也不会手足无措。

DS18B20:

1. 温度转换精度与转换时间

2.  8位的CRC检验,这个CRC检验可以省略。但是还是建议大家加上它,一来它可以校验数据确保获取的温度数据的准确性,二来可以熟悉CRC检验的。这个为以后在通信

3. 读写时序:这个非常重要,后面DS18B20的操作都是要以这个为基础。

其实时序这些比较简单,我们直接按照它的要求,将对应的IO口电平拉高或者拉低相就时间就行。这里要说明下我们通过单片机读取DS18B20的数据引脚电平时,如果单片机为普通51(端口全部普通IO)那么直接将对应IO引脚释放(相当于给高电平),然后再读取引脚电平。但对于stm8s或者STM32这种单片机(端口可以设置类型:输入/输出),我们在读取DS18B20引脚电平时需要将单片机IO口模式由输出改为输入

4. DS18B20手册末尾有完整的读写步骤,我们可以直接参考。

段式液晶屏:

说明:其实这个有点像数码管也是同时点亮需要显示的一个数码管中的段,然后再快速切换不同的数码管,频率快的话人眼是分辨不出来的它是逐个显示的。

区别:数码管是单个数码管来逐一显示而这个“段式液晶屏”是整个液晶屏(几个字)的不同段同时显示。驱动比数码管更加麻烦

分析:从下图中的表格中可以看出来,“段式液晶屏”是从COM1~COM4逐个使能的。也就是说COM1~COM4为一个周期根据手册一般显示频率为60HZ~100HZ频率太低人眼可以明显看到闪烁,频率太高对芯片要求过高。所以经过大家使用总结显示频率:60~100HZ最合适了。

第一位显示0~9的数字时COM口与DUAN口(下图中表格中5~10列)组合:

上图红红绿绿的表格中表示了如何让第一位显示0~9的数字,COM1~COM4与DUAN口之间的电平关系

显示原理:通过COM口(COM1~COM4)与DUAN口(DUAN1~DUAN6)组合来实现显示。COM口与DUAN口是依次控制的,所以会有一个刷新周期。这个周期不能太短,不然后我们肉眼会观看到闪烁现象。

工程做法:

COM口的电平每两个周期更换一次,这样是为延长液晶显示屏的使用寿命

 

 

编程思路:这个是4位的段式液晶屏。COM口(COM1~COM4)与DUAN口(DUAN1~DUAN6:表格中6-10这四列)通过不同组合实现数字的显示。比如:需要显示左边第一位为"0",那么我们需要设置COM1 = 1,DUAN1 = 0,DUAN2 = 1;COM2 = 1,DUAN1 = 1,DUAN2 = 1;COM3=1, DUAN1 = 0,DUAN2 = 1;COM4=1,DUAN1=1,DUAN2 =1.其他的位依次类推。其中列表中5-6列表示左边第一位数的段控制、列表中7-8列表示左边第二位数的段控制、列表9-10列表示第三位数的段控制。最后那个符号的显示控制为4G、4G、4A包含在5、7、9列了。

驱动程序算法:

扫描周期内COM1~COM4一般为60~100HZ,通过设置定时器周期来设置。我们的显示代码放置在定时器中断函数。这里有两种算法:

1.一位一位数的显示即一个COM周期(COM1~COM4)只显示一位数   

2. 一次显示几位的不同段,分COM口显示。一个COM周期就可以将整个数据显示全

分析第一种方法所有的时间比第二种方法慢3倍(显示数据为3位)。

控制要领:

COM口为扫描周期,DUAN口控制显示的段。即COM1为高电平时,控制DUAN口电平(高:显示;低:不显示)来控制段的显示,然后再COM1为低,COM2为高电平再控制DUAN口电平。然后循环即可,由于我们的电路无法产生负电压脉冲所以延长屏幕寿命的操作不做了。

主程序流程(循环):

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM8S003F3是意法半导体(STMicroelectronics)推出的一款低功耗8位微控制器(MCU),具有丰富的外设和强大的性能。RS485是一种串行通信协议,常用于远距离通信和多节点通信。 STM8S003F3具有多个UART接口,可支持RS485通信。在使用RS485通信时,需要将RS485通信芯片与STM8S003F3相连接,如MAX485芯片。RS485通信芯片将负责物理层的电平转换和差分信号处理,而STM8S003F3则处理高层的数据协议。 通过配置STM8S003F3的UART接口,可以使用RS485通信协议进行数据传输。首先,需要设置UART的波特率、数据位、校验位和停止位等参数。然后,通过发送和接收数据的函数来实现与其他RS485设备的通信。在发送数据时,STM8S003F3将数据通过UART发送到RS485通信芯片,芯片再将信号转换为差分信号发送出去。在接收数据时,STM8S003F3接收差分信号,并通过UART接口将数据传输到内部缓冲区。 在使用STM8S003F3进行RS485通信时,需要注意以下几点: 1. 需要确保STM8S003F3和RS485通信芯片的电压兼容。 2. 需要配置正确的通信参数,包括波特率、数据位、校验位和停止位等。 3. 需要根据实际需求设置STM8S003F3的发送和接收缓冲区大小。 4. 需要编写相应的软件代码来实现数据的发送和接收,并对错误进行处理。 5. 需要对数据进行合适的校验和处理,确保数据的可靠性和完整性。 总结来说,STM8S003F3是一款强大的MCU,可以通过配置其UART接口实现与RS485设备的通信。通过正确配置通信参数和编写相应的代码,可以实现可靠的RS485通信,并用于远距离和多节点的数据传输。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值