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

链接: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口电平。然后循环即可,由于我们的电路无法产生负电压脉冲所以延长屏幕寿命的操作不做了。

主程序流程(循环):

基于STM8S003F3的数字温度计制作相关推荐

  1. 基于单片机的数字温度计设计

    文末下载完整资料                   基于单片机的数字温度计 摘要:本文介绍一种基于AT89C2051单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围 ...

  2. 基于单片机的数字温度计设计-零妖

    1,开发前规划 基于单片机的数字温度计-开发前规划 关键字 温度计:51单片机:共阳数码管:MOS开关:便携式:课程设计:毕业设计 要求 一个随身携带的温度计. 步骤 项目 立创编号 型号 备注 1 ...

  3. 基于STM8的数字温度计设计

    基于STM8的数字温度计设计 这是在2021年12月初完成的一次课程设计,全程自己设计组装完成,现作为记录存档发布,大家也可以借鉴本文来完成自己的课程设计.(建议使用电脑阅读) 课程设计目录 基于ST ...

  4. 基于单片机的数字温度计及电压表

    设计简介: 本设计是基于单片机的数字温度计及电压表,主要实现以下功能: 可通过LCD1602显示温度上下限.当前温度和电压值: 可通过按键调整温度上下限: 可通过DS18B20获取温度: 可通过ADC ...

  5. c52传感器温度显示c语言编程,基于STC89C52的数字温度计 附C语言代码.doc

    基于STC89C52的数字温度计 附C语言代码 <数字显示温度计>论文 学校: 华侨大学 学院: 信息科学与工程学院 班级:10级 集成电路设计与集成系统 组别: 自控06组 组员:*** ...

  6. 基于单片机控制的数字温度计课程设计c语言,基于单片机的数字温度计课程设计.doc...

    基于单片机的数字温度计课程设计.doc 目录1 绪论 .11.1 设计背景 .11.2 设计要求 .11.3 设计思路 .12 系统硬件设计 12.1 设计总框图 12.2 各模块功能 .22.3 设 ...

  7. 基于热敏电阻的数字温度计

    基于热敏电阻的数字温度计 前言 单片机初学者大多都是从51开始的,普通的89C51/52并没有集成ADC,只能通过外接AD芯片进行AD转换,这里用ADC0804对PT100热敏电阻进行AD采样,单片机 ...

  8. 基于DS18B20的数字温度计的毕业设计

    毕业设计论文 题目  基于单片机的DS18B20数字温度计    电话13812281034 系         电子信息工程系 专业  应用电子 姓名 王水浪          班级 电子061 指 ...

  9. 单片机开发之数字温度计制作

    要求 (一)基本功能 1. 测温范围-50℃-110℃ 2. 精度误差不大于0.1℃ 3. LED数码直读显示 (二)扩展功能 1.实现语音报数(不开发) 2.可以任意设定温度的上下限报警功能 二.计 ...

  10. 项目记录 / 基于FPGA实现数字温度计

    目录 1.设计目标 2.硬件部分 3.程序设计 4.仿真及测量效果 1.设计目标 1)温度测量范围0~125℃: 2)led数码管显示温度: 3)存在报警温度(可修改). 2.硬件部分 主要由三个部分 ...

最新文章

  1. 微软亚研院CV大佬代季峰跳槽商汤为哪般?
  2. 当AI学会高数:解题、出题、评分样样都行
  3. JADAK收购RFID方案商SkyeTek,增强竞争力
  4. 怎么用计算机解开手机,怎么用电脑解开手机锁
  5. iOS逆向之旅(进阶篇) — 工具(LLDB)
  6. 运筹学的课程笔记 markov decision process
  7. PHP中的错误控制运算符
  8. 反序列化工具_JBOSS反序列化漏洞
  9. lora模块在牛联网和智慧农业中的应用案列
  10. 计算机组成比作人的什么位置,理学第章计算机组成上.ppt
  11. 声场测试话筒_国内外常见的测量话筒有哪些?大师们身边必备这几款!
  12. 在DC中误删除ISA计算机后无法连接ISA配置服务器问题
  13. linux下imp导入oracle数据库,Oracle数据库Linux下的导入IMP
  14. speex的基本编码和解码流程
  15. 拓端tecdat|R语言关联规则模型(Apriori算法)挖掘杂货店的交易数据与交互可视化
  16. 将视频设置为电脑动态桌面的方法
  17. Java毕业设计-资产管理系统
  18. linux shell 内存利用率,linux上使用shell脚本查看内存使用率
  19. dell进入u盘启动模式_戴尔Dell笔记本电脑的BIOS怎么设置从U盘启动
  20. 三国演义亲和度python_用python分析四大名著之三国演义

热门文章

  1. form表单提交serialize()方法和
  2. 风云第三部 第533回 乌云蔽日 力掌乾坤
  3. 虚拟串口模拟器和串口调试助手使用教程
  4. Mirth Connect 源码用eclipse启动
  5. spring中cglib动态代理
  6. word html 预览 打印出来,word预览时文字在表格中,打印出来却没有.doc
  7. win10系统安装软件安装和问题处理
  8. qdir 自动创建多级目录_QDir 类 - 目录信息类
  9. Unity游戏开始界面制作教学
  10. 最新苹果CMS对接千月版本-畅视影视(V9.3开源)已搭建测试版