发新帖我要提问
12
返回列表
打印
[STM8]

STM8 滴灌自动控制系统

[复制链接]
楼主: hanzhen654
手机看帖
扫描二维码
随时随地手机跟帖
21
hanzhen654|  楼主 | 2019-2-28 19:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
PCF8563 时钟芯片
微控制器通过 I2C(Inter-Integrated Circuit)总线与PCF8563 芯片进行半双工通信。其中,SDA(Serial Data)为双向串行数据线,SCL(Serial Clock)为串行时钟线,两条线必须用上拉电阻与正电源相连,数据只有在总线不忙时才可传送。

使用特权

评论回复
22
hanzhen654|  楼主 | 2019-2-28 19:53 | 只看该作者
PCF8563 寄存器访问流程图

      

使用特权

评论回复
23
hanzhen654|  楼主 | 2019-2-28 19:54 | 只看该作者
Nokia 5110 LCD
Nokia 5110 LCD 主控芯片为飞利浦公司的PCD8544。是低功耗的 CMOS LCD 控制驱动器,设计为驱动 48 行 84 列图形液晶。显示功能集成在一块芯片上,包括 LCD 电压及偏置电压发生器,并提供高速同步串行接口与处理器通信,因此只须很少外部元件。PCD8544 采用的是上升沿发送数据的 SPI(Serial Peripheral Interface)通信方式.

使用特权

评论回复
24
hanzhen654|  楼主 | 2019-2-28 19:55 | 只看该作者
Nokia 5110 LCD 数据传送时序图


使用特权

评论回复
25
hanzhen654|  楼主 | 2019-2-28 19:58 | 只看该作者
STM8 微控制器片内 EEPROM
STM8S105S4 微控制器片内集成 1K 字节可写保护的数据 EEPROM,并可以在向数据 EEPROM 写入数据的同时可以从程序存储器读取数据,优化运行时间。
在 STM8S105S4 微控制器内部 RAM 中以长度为127 的一维字节数组的形式划分出一块专用缓存,用于EEPROM 块编程。需要存储用户设置时,只需要将数据按照预先设定好的格式放入缓存,再调用块编程指令,将片内缓存区的内容快速写入 EEPROM 中。对EEPROM 数据进行读取时,则从 EEPROM 数据块的起
始地址开始逐字节读取数据并放入缓存中,直到读到预先设定的结束标志.


使用特权

评论回复
26
hanzhen654|  楼主 | 2019-2-28 19:59 | 只看该作者
STM8 微控制器低功耗模式
STM8 系列微控制器提供 4 种低功耗模式:等待模式、开启调压器的活跃停机模式、调压器关闭的活跃停机模式、停机模式。四种低功耗模式的工作电流[18]如表示。


使用特权

评论回复
27
hanzhen654|  楼主 | 2019-2-28 19:59 | 只看该作者
STM8 微控制器片内模拟—数字转换器驱动程序
STM8 微控制器内部集成了两个 10 位逐次比较型AD(Analog—Digital)转换器,ADC1 与 ADC2,A/D转换的各个通道可以执行单次和连续的转换模式。
选用ADC1 的单次扫描模式完成对传感器信及其他模拟电压号采集。ADC1 工作前必须打开 ADC 片内时钟,并将对应端口配置为开漏输入。

使用特权

评论回复
28
hanzhen654|  楼主 | 2019-2-28 20:00 | 只看该作者
IAR 集成开发环境及 STM8 固件库
IAR 集成开发环境(IAR Embedded Workbench)是由 IAR System 所提供的一整套用支持用 C、C++及汇编语言构建与调试嵌入式应用程序的 PC 软件开发环境,软件开发环境为 IAR for STM8 V1.2,硬件调试器为ST-LINK。STM8 固件库(STM8S/A Standard Peripherals Library),是由 ST(意法半导体)公司所提供,包含STM8S与STM8A系列微控制器所有片内标准外设驱动程序的完整代码包。使用该固件库可以极大提高基于STM8 的嵌入式应用开发效率,并提高应用程序的可移植性.

使用特权

评论回复
29
hanzhen654|  楼主 | 2019-2-28 20:01 | 只看该作者
主程序设计及中断设置
软件总体流程如图示,主程序仅仅负责在上电复位时调用系统初始化子函数对系统进行初始化,并启动用户界面子程序。系统使用以下中断:(1) 连接 PCF8563实时时钟模块外部中断输出引脚的 GPIOE 中断。(2)连接用户按键的 GPIOA 中断。(3)定时器中断。(4)所开启的中断全部可以将 CPU 从停机模式唤醒。用定时器进行空闲时间计时,其中 GPIOA 和定时器中断在进入停机模式前开启,退出停机模式时关闭。


使用特权

评论回复
30
hanzhen654|  楼主 | 2019-2-28 20:02 | 只看该作者
休眠—唤醒子程序设计
进入停机模式只需要调用在 STM8 固件库 stm8s.h文件中的宏定义 halt()。进入停机状态之后,时钟自动切换为内部低速时钟,在停机模式下,所有寄存器与 RAM的内容保持不变,默认情况下时钟配置也保持不变,因此不需要手动修改时钟配置,只需要在进入停机模式前和退出时设置用户定义的状态标志即可。

使用特权

评论回复
31
hanzhen654|  楼主 | 2019-2-28 20:08 | 只看该作者
低电压检测子程序
选用的 STM8S105S4 微控制器基于中 AD 转换器以电源电压作为参考,当输入电压等于电源电压时,AD转换器输出等于 65344。因此,对电源电压的检测需要借助设计的 2.5V 的高精度参考电压源。设参考电压源的转换结果为 c,电源电压的计算公式如下:VDD = 2.5 / c × 65344

使用特权

评论回复
32
hanzhen654|  楼主 | 2019-2-28 20:09 | 只看该作者
基于 Nokia 5110 LCD 人机接口设计
基于 LCD 与按键的人机接口设计实质上就是一个用状态机维持的 LCD 界面显示程序。由用户按键与定时器中断负责状态切换与命令传送。人机接口状态转换
如图 示。提供的用户按键为上、下、确定、取消,分别对应状态图中的 Up,Down,OK,Cancel 事件。


使用特权

评论回复
33
hanzhen654|  楼主 | 2019-2-28 20:11 | 只看该作者
实时时钟与 LCD 模块的驱动验证
读取 PCF8563 时间并用 LCD 显示结果如图示。说明 LCD 与 PCF8563 驱动运行正常。


使用特权

评论回复
34
hanzhen654|  楼主 | 2019-2-28 20:17 | 只看该作者
EEPROM 驱动验证
使用 EEPROM 数据保存子程序将0~127 的 ASCII 码写入 EEPROM,程序运行后用 ST Visual Programmer 工具将 STM8 芯片内部 EEPROM 数据读出全部读出,结果如图 示,从结果中可以看出,用户定义的数据已经全部成功写入 EEPROM。


使用特权

评论回复
35
hanzhen654|  楼主 | 2019-2-28 20:18 | 只看该作者
AD 转换器驱动验证
用 3.3V 稳压电源为系统供电时,通过 AD 转换程序对 2.5V 参考电压源进行 AD 转换后的结果是 2.501V,与输入一致,AD 转换器工作正常。

使用特权

评论回复
36
hanzhen654|  楼主 | 2019-2-28 20:20 | 只看该作者
STM8 的低功耗滴灌控制系统。实现了传统滴灌控制器全部功能,也实现了系统的低功耗运行及用 LCD 与按键实现了菜单式的人机接口,提高系统的人性化程度。围绕“低功耗和定时控制”重点,阐述了相应的设计方案,开发方法和开发过程,总结如下:(1)系统设计中必须选用宽电压工作范围的器件,以适应电池供电的要求。
(2)电路板布线时,必须注意模拟信号与数字信号的分布及流向,采用正交策略及最短路径策略,有效避免了串扰。
(3)主程序进行时序模拟时必须关闭中断,以免被干扰。
(4)用有限状态机实现人机接口,可以使界面显示稳定,易于扩展。实现过程中必须关注系统堆栈深度,防止溢出。
(5)进一步研究的方向是网络化、多路控制、加装比例适配器实现水肥一体化自动滴灌。

使用特权

评论回复
37
八层楼| | 2019-3-11 12:54 | 只看该作者
这个项目不错啊

使用特权

评论回复
38
观海| | 2019-3-11 12:59 | 只看该作者
实际用到工程上怎么做呢

使用特权

评论回复
39
guanjiaer| | 2019-3-11 13:02 | 只看该作者
反馈信号是如何采集的呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则