基于MSP430的多功能数显系统的设计
引言
目前,单片机技术如火如荼,蓬勃发展,其电子产品如雨后春笋地出现,正潮水般的涌入各个领域。其电子产品以灵敏、结构简单易制、成本低、可靠性强等优点迅速占领电子市场,给人们生活带来了极大的方便,深受人们的青睐。
此次作品以MSP430单片机为主控单元
概述
本作品需要实现功能:16*16点阵显示汉字、DS18B20温度测量、数码管动态扫描显示、蜂鸣器播放歌曲。
目的:学习对可编程集成电路(主要指MSP430单片机)的编程方法;熟悉74HC573锁存器的使用方法;熟悉DS18B20的使用方法;熟悉点阵动态扫描显示汉字的方法;熟悉数码管动态扫描的使用方法;熟悉蜂鸣器的使用方法;学会构造单片机的最小系统;掌握什么是时钟电路;掌握什么是复位电路;了解电源的设计方法;了解各部分电路的设计;练习在万用板上布线;练习电路的手工焊接技术;了解Proteus在线仿真。
总体设计思想:综合考虑采用先扫描点阵,显示汉字,再用定时\计数器扫描数码管,同时执行蜂鸣器播放歌曲程序。
各部分依据:所需元件的数据手册,以及产品使用说明。
关键词:点阵 数码管 蜂鸣器 DS18B20 Ucos-ii 扫描 动态显示 最小系统 锁存器74HC573
目录
引言
概述
一、 系统方案论证
1. CPU各功能分时执行
2. 移植Ucos-ii操作系统
二、 系统硬件设计
1. 主控单元
2. 系统硬件框图
3. 电源电路
4. 最小系统电路
5. 点阵显示电路
6. 数码管显示电路
7. 蜂鸣器电路
8. DS18B20电路
三、 程序设计
1. 硬件测试
2. 分部编写程序与测试
2.1 点阵程序
2.2 数码管程序
2.3 蜂鸣器程序
3. 程序整合
3.1 需要整合的子程序
3.2 整合程序
4. 程序流程图
四、 性能调试与分析
1. 硬件的焊接与检查
2. 程序的检查与修改
五、 总结收获
六、 参考文献
七、 附录
1. 产品实物图
2. 优酷视频链接
一、系统方案论证
1. CPU各功能分时执行:采用先用延迟扫描点阵,显示汉字,再用定时\计数器2中断扫描数码管,同时执行蜂鸣器播放歌曲程序。由于本作品中,数码管显示以及点阵显示都是动态扫描,而蜂鸣器用了两个定时\计数器,可以打断蜂鸣器播放歌曲程序而扫描点阵和数码管以及读取DS18B20温度值,但是不能打断太久,会造成蜂鸣器播放歌曲严重失真(已实际验证)。
2.移植Ucos-ii操作系统:μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。μC/OS-II移植需要足够的内存,430单片机内存有限,移植起来有些困难,且对于此系统没有太大移植此系统的必要。
综合考虑,本作品采用CPU各功能分时执行,即先使用延迟扫描点阵,显示汉字,此时数码管、蜂鸣器以及DS18B20是不工作(使用74HC573锁存器实现)的;再用定时\计数器扫描数码管显示温度,同时执行蜂鸣器播放歌曲程序,此时,点阵关闭,行全部给低,列全部给高。蜂鸣器使用两个定时\计数器,一个作为蜂鸣器频率的控制,一个作为时长的控制。
二、 系统硬件设计
1.主控单元
单片机以其集成度高、功能强、可靠性高、体积小、功耗低、价格廉、使用灵活等一系列优点得到迅速的发展,渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。**的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统等,这些都离不开单片机。
此次设计主要采用MSP430单片机为主控单元。
。
2.系统硬件框图
3.电源模块
电路原理图:
key1为总电源开关
key2为点阵显示开关
key4为数码管显示开关
key5为蜂鸣器开关
系统采用电池供电和直流电源两种供电方式,其中直流电源支持7——36V输入,然后经过L7805稳压到5V为系统供电,电池采用4节5号电池串联后再串联一个二极管,给系统供电。
二极管作用:1.四节干电池串联电压为6V,电压过大,通过串联二极管的方法把电压降低到合适的电压;2.防止使用外接直流电源供电时,造成误给电池供电。
7805引脚图
对于7805三端稳压IC,它和其它78XX一样,都属于+V电压稳压输出链路。其1脚为输入端,2脚接地,3脚稳压输出。
7805是正电压三端固定稳压器集成电路,属于线性稳压器件。7805应用非常广泛,在各种稳压电源、充电器、家电等产品中均有运用。
主要参数:
最高输入电压:36V
输入输出最小的电压差:2V
最大输出电流:1.5A。
输出电压偏差:典型=5V;最低=5.75V;最高=5.25V。
工作温度范围:0~70℃ 。
4.最小系统电路
本系统没有采用按键复位电路,是因为考虑到此系统无需按键复位,所以只采用了上电复位。
5.点阵显示电路
原理图:
采用四块74hc573进行行驱和列驱,输出始终是能,输入锁存由IO口控制,数据口只用了一组,为了节省单片机IO口资源。在这里74hc573相当于总线的扩展。
6.数码管显示电路
原理图:
本系统数码管采用74hc573锁存器直接驱动,考虑到CPU引脚足够使用,所以锁存器直接使能,降低成本,简化程序。
7.蜂鸣器电路
原理图:
蜂鸣器采用PNP三极管驱动,与用NPN三极管驱动相比,不仅提高了驱动能力,而且抗干扰,降低功耗。
蜂鸣器为声电元件,分有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内置振荡电路,直接加电源就可以正常发声,通常频率固定。
无源蜂鸣器则需要通过外部的正弦或方波信号驱动,直接加电源只能发出很轻微的振动声
考虑到音质问题,本系统采用无源蜂鸣器。
8..DS18B20电路
原理图:
DS18B20支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C
范围内,精度为±0.5°C。DS1822 的精度较差为±2°C。现场温度直接以"一线总线"的数字方式传
输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、
测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V 的电压范围,使系统设计更灵
活、方便。而且新一代产品更便宜,体积更小。
DS18B20 的主要特性
(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电
(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与
DS18B20 的双向通讯
(3)DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测温
(4)DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管
的集成电路内
(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
(6)可编程的分辨率为9~12 位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测量
三.程序设计
1.硬件测试
依次测试硬件电路的问题,包括点阵显示,数码管显示,蜂鸣器电路,DS18B20电路。
用简单程序(程序不会有问题)测试,看看是不是与预期结果一致,如果一致则说明硬件电路没有问题,如果不一致则说明硬件电路有问题,修改硬件,继续测试,直到解决硬件所有问题。
2. 分部编写程序与测试
2.1点阵程序
点阵采用分块扫描,本系统共由四块8*8点阵构成16*16.点阵,每块点阵采用行扫,给相应列码值,四块组成一个汉字或一个字符。
首先确定其行与列的位置,然后用取模软件写出相应列码,编写程序。
2.2数码管程序
本系统数码管为4位,逐位扫描显示,首先确定相应位与单片机IO口的对应关系,然后使用定时器2编写数码管扫描程序,显示相应数字。
2.3 蜂鸣器程序
考虑到音质问题,本系统使用无源蜂鸣器。无源蜂鸣器需要脉冲驱动,本系统蜂鸣器使用两个定时\计数器作为定时器中断。蜂鸣器使用了定时\计数器0和定时\计数器1。一个作为蜂鸣器的频率调节,一个作为时长的调节,共同协调完成播放歌曲。
3. 程序整合
3.1 需要整合的子程序
点阵程序,数码管程序,蜂鸣器程序,DS18B20程序。
3.2 整合程序
考虑到程序有一定的复杂性,所以增加了.h文件,将点阵显示做为.h文件加载到工程中,减小了.c文件的复杂度,使程序容易读懂 。而.c文件中的程序为其他程序的集合。包括蜂鸣器、数码管、DS18B20温度读取程序
4. 程序流程图
三、 性能调试与分析
1. 硬件的焊接与检查
Ø 点阵始终不显示。仔细检查,发现74HC573反接,由于焊接时思想有些混乱,输入输出反接,造成点阵始终不显示,幸好芯片采用芯片座插接,所以更改起来并不是很吃力,更改后问题解决。
Ø 第三列始终不亮。右上角点阵4脚虚焊导致,拔去杜邦线重新焊接,问题解决。
Ø 左下角点阵显示乱码。左下角点阵11脚和5脚接反(杜邦线)导致,更改杜邦线顺序,问题解决。
Ø 电源指示灯太暗。考虑到功耗问题,电源指示灯所用串联电阻加大到4.7K结果亮度太低,而且颜色为绿发绿,颜色不匹配不美观,所以将电阻更改为1K指示灯改为白发紫,更改后亮度合适,且颜色匹配,相对比较美观,问题解决。
Ø 蜂鸣器音质差。下载程序调试时,发现蜂鸣器播放歌曲严重失真,非常难听,仔细检查发现蜂鸣器错用了有源的,替换后,问题解决。
2. 程序的检查与修改
Ø 点阵显示乱码。点阵采用行扫,行扫编码写错了一位,导致显示乱码,更改行扫编码,问题解决。
Ø 点阵显示汉字错位。取模软件参数设置问题,以及取模后编码的修改问题。调整取模软件参数重新取模,并且重新修改编码,得到显示正确的汉字和字符,问题得到解决。
Ø 蜂鸣器和数码管程序整合时,蜂鸣器失真,数码管不能同时显示(产生逐位扫描的效果)。将DS18B20读取程序放到主函数,隔时读取外界温度,来降低定时\计数器2的负担,并且设置中断优先级,提高定时\计数器0和定时\计数器1的优先级,更改后问题大致解决,蜂鸣器仍有失真,但程度较低,可以不必考虑。
五、总结收获
2011年10月15日我开始决定做此作品,时至今日,实物,程序,及文档已基本完成。从最初的茫然到慢慢进入状态,再到对思路逐渐的清晰,整个过程,难以用语言来表达。
经历了几天几宿的奋战,终于落下了帷幕,在这次设计中,我拥有了无数难忘的回忆和收获。
当决定做此作品时,我便立刻着手资料的收集工作,我把收集到的资料都记录下来,这样有利于论文的撰写。
在制作过程中遇到困难我就及时上网查询资料,随着困难一个接一个解决了,作品也慢慢成型了,整个过程中我充分运用了大学期间所学到的知识。脚踏实地,认真严谨,实事求是的学习态度,不怕困难,坚持不懈,吃苦耐劳的精神是我在这次设计中最大的收益,我想这是一次意志的磨练是对我实际能力的一次提升,会对我未来的学习和工作有很大的帮助。
通过此次设计,我深刻体会到要做好一件完整的事情,需要系统的思维方式和方法,对待要解决的问题,要有耐心、要善于运用已有的资源来充实自己。同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步以后再做下一步,这样才能更有效率。
六、 参考文献
1、 《C语言程序设计》主编:刘迎春,王磊 西安电子科技大学出版社
2、 《单片机的C语言应用程序设计》 马忠梅 北京航空航天大学出版社
3、 《单片机原理及应用》 李全利 清华大学出版社
4、 《模拟电子技术基础简明教程》主编:杨素行 高等教育出版社
5、 《数字电子技术基础》主编:阎石 高等教育出版社
6、 74HC573 datasheet
7、 MSP430 datasheet
七、 附录
1. 产品实物图
2. 优酷视频链接
http://v.youku.com/v_show/id_XNDc1NTA3NzI0.html
http://v.youku.com/v_show/id_XNDc1NTA2MjUy.html
用户294564 2014-10-17 08:54
用户309508 2013-12-3 12:41
用户427688 2012-9-24 14:55
用户377235 2012-9-22 19:03
呵呵 不错咯 等我打电话咨询一下 加油哦
用户377235 2012-9-21 23:04
你确定是拿msp430做的?
用户294564 2012-9-20 09:45
用户377235 2012-9-19 22:33
用户377235 2012-9-19 19:54