单片机设计说明书讲解
- 格式:doc
- 大小:924.50 KB
- 文档页数:18
单片机说明书一、引言单片机是一种集成电路,它集成了处理器、存储器和各种输入输出接口等功能,广泛应用于各个领域。
本说明书将介绍单片机的基本原理、使用方法以及常见问题的解答,以帮助用户更好地理解和使用单片机。
二、基本原理1. 单片机的组成单片机由中央处理器(CPU)、存储器、输入输出接口等组成。
其中,CPU负责执行指令,存储器用于存储程序和数据,输入输出接口用于与外部设备进行通信。
2. 单片机的工作原理单片机通过执行存储在存储器中的程序指令来完成各种任务。
程序指令由CPU逐条执行,根据指令的要求,通过输入输出接口与外部设备进行数据的输入和输出。
三、使用方法1. 单片机的编程单片机的编程可以使用汇编语言或高级语言(如C语言)进行。
编程的目的是根据具体需求编写程序指令,控制单片机的运行。
2. 单片机的调试在编程完成后,需要将程序下载到单片机中进行调试。
调试过程中,可以通过调试工具(如仿真器)监测单片机的运行状态,以便及时发现并解决问题。
3. 单片机的应用单片机广泛应用于各个领域,如家电、汽车、电子设备等。
通过编写程序指令,单片机可以实现各种功能,如控制电器开关、采集传感器数据、驱动电机等。
四、常见问题解答1. 如何选择适合的单片机?选择单片机需要考虑应用场景、性能要求、接口需求等因素。
可以根据具体需求和厂商提供的技术资料进行选择。
2. 如何解决单片机程序调试中的问题?在程序调试过程中,可能会遇到程序运行不正常或出现错误的情况。
可以通过逐步调试、添加调试输出等方法来找出问题所在,并进行修复。
3. 如何优化单片机程序的性能?优化单片机程序的性能可以从多个方面入手,如减少指令数量、合理利用存储器、优化算法等。
可以根据具体情况选择合适的优化方法。
五、总结通过本说明书,我们了解了单片机的基本原理、使用方法以及常见问题的解答。
希望本说明书能够帮助用户更好地理解和使用单片机,实现各种应用需求。
如果您还有其他问题,可以参考附带的技术资料或联系厂商获取更多支持。
摘要
模拟定时爆破触发装置,实现拨码开关手动触发,LED数码管以0.1秒的精度十秒倒计时,LCD小灯闪烁频率加快闪烁,蜂鸣器定时鸣响,采用AW60单片机实验平台,结合拨码开关输入信号,数码管溢出中断,小灯变化延时闪烁,蜂鸣器定时鸣响的设计方案。
完成对其结果要求。
调试结果是,正常运行程序后(开关必须处于关闭状态,不然有危险),拨动拨码开关,数码管以0.1s精度进行十秒倒计时,小灯开始闪烁,且闪烁频率逐渐加快,当十秒倒计时结束,数码管全部显示0,小灯为长亮,蜂鸣器开始鸣响。
表明本设计方案基本满足要求。
1. 题目要求
结合单片机实验平台的电路,设计和调试单片机程序,实现拨码开关触发定时爆破触发装置。
具体要求是:拨动拨码开关后(小灯初始状态需处于关闭状态,因为模拟定时爆破,以安全可行为目的,故要求拨码开关必须处于断开状态),触发LCD灯和LED数码管同时运行定时程序,其中,数码管的变化精度为0.1s,小灯闪烁频率随时间变快。
当十秒倒计时结束时,小灯长亮1s,数码管全部显示为0,蜂鸣器鸣响提示。
定时器定时模块运行结束。
单片机设计说明书1. 引言单片机是一种集成电路芯片,具有微型计算机的功能。
本设计说明书将详细介绍我们团队的单片机设计方案及实施步骤。
通过本文,读者将了解到我们的设计目标、具体实施方案以及预期效果。
2. 设计目标我们的单片机设计旨在实现以下目标:- 提供稳定可靠的硬件平台,用于支持各种嵌入式应用。
- 实现高效的电路设计,以确保低功耗、高性能和可扩展性。
- 提供友好的用户交互界面,便于用户操作和使用。
- 实现多种通信接口和协议,以满足不同应用场景的需求。
- 提供完善的安全措施,防止潜在的攻击和漏洞。
3. 设计方案我们采用了以下设计方案来实现以上目标:3.1 硬件设计我们选用了高性能的单片机芯片,并结合其他外设电路,构建了稳定可靠的硬件平台。
硬件平台包括主控单元、存储单元、输入输出接口、时序控制电路等模块。
我们在硬件设计过程中注重优化功耗,采用了低功耗的元器件并进行电路隔离和优化设计,以降低系统功耗并延长电池寿命。
3.2 软件设计为了实现用户友好的交互界面,我们开发了一套软件系统。
软件系统具有图形界面,提供了直观的操作界面和功能菜单。
用户能够通过界面进行设置、控制以及数据的显示。
我们的软件系统支持多种编程语言,以满足不同用户的需求。
同时,我们也提供了一些示例代码和开发工具,方便用户进行二次开发和定制化。
3.3 通信接口和协议单片机设计需要支持多样的通信接口和协议,以满足不同应用场景的需求。
我们的设计方案中涵盖了串口通信、SPI总线、I2C总线等多种通信接口。
我们确保这些接口在电路设计和软件支持上都能够正常工作。
我们还支持一些常用协议,如Modbus、CAN等,以便用户能够方便地与其他设备进行通信和交互。
3.4 安全措施为了保障系统的安全性和稳定性,我们在设计中加入了多项安全措施。
首先,我们采用了安全加密芯片,对系统进行硬件级的保护。
其次,我们的软件系统实现了访问控制和权限管理,只有经过授权的用户才能进行操作。
福建工程学院设计内容:鉴于51 单片机的电子时钟设计院系:计算机科学与信息学院专业:计算机科学与技术类班级:嵌入式 1105 班学号:3110307618姓名:林强指导老师:蔡文培达成日期:2014-06-03纲要随时代的发展,生活节奏的加速,人们的时间观点愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、准时控制的地方变得更为宽泛,所以,设计开发数字时钟拥有优秀的应用远景。
因为单片机成本价钱低、高性能,在自动控制产品获得了宽泛的应用。
本设计利用Ateml 企业的 AT89C51 单片机对电子时钟进行开发,设计了实现全部功能的硬件电路,使用Keil C 来进行代码编写和调试,经过 Keil C 与 Proteus 进行联合调试来测试最后结果。
在介绍本单片机的发展状况基础上,说了然本设计实现的功能,以及 Proteus 仿真切验板上的硬件状况,并对各功能进行了剖析。
主要工作放在软件的编程上边,用 Proteus 仿真环境能够实现时间、日期、准时以及它们的设定功能,详细对软件编程以及调试进行了说明,并对计时偏差进行了剖析及校订。
整个实验成效优秀,能够投入使用。
重点词:单片机AT89C51电子时钟 C 语言目录第一章设计任务剖析1.1 课题背景单片机自 1976 年由 Intel 企业推出MCS-48 开始,迄今已有二十多年了。
因为单片机集成度高、功能强、靠谱性高、体积小、功耗低、使用方便、价钱便宜等一系列长处,当前已经渗透到人们工作和生活的方方面面,单片机的应用领域已从面向工业控制、通信、交通、智能仪表等快速发展到家用花费产品、办公自动化、汽车电子、PC 机外头以及网络通信等广大领域。
单片机有两种基本构造:一种是在通用微型计算机中宽泛采纳的,程序储存器和数据存储器共用一个储存器空间的构造,称为“冯·诺依曼”( Von Neumann)构造。
另一种是将程序储存器和数据储存器截然分开,分别寻址的构造,称为“哈佛”( Harvard )构造,当前的单片机采纳此种构造为多。
单片机原理及应用课程设计说明书1、绪论1.1主要内容:1:芯片选择:选择适当的单片机芯片是设计大气参数传感器的首要步骤。
考虑到电源要求、计算力、数据存储以及外设接口等因素,选择具备足够性能和功能的单片机芯片,选择STC89C52芯片。
2显示模块:使用BMP180气压传感器和DS18B20温度传感器,可以检测出大气温度和压强,并且DS18B20可以通过气压换算绝对高度,采用数码管进行显示温度和压强。
1.2设计原则:1.硬件和软件结合:在设计中,需要合理选择和使用单片机的硬件资源,并编写适合的软件程序来实现所需功能。
2.用户友好性:设计应重视用户界面的友好度,使用户能够方便地进行设置、调整和查看功能。
3.系统稳定性:设计应确保可调式电子日历系统的稳定性,以便可靠地显示和管理日期时间信息。
这涉及到正确的时钟源选择、合理的电源管理、抗干扰措施等。
4.易用性:大气参数检测仪应提供直观、易用的用户界面,以便用户能够方便地操作。
使用合适的输入设备如按键,以及直观的显示界面,可以提高用户的使用体验。
5.功能性:电子日历应该提供一系列实用的功能,如日期和时间显示、日程安排、提醒功能等。
这些功能应该能够满足用户的需求,并具备高可靠性和准确性。
6.可调性:设计中应该考虑到不同用户的个性化需求,提供可调式的显示格式、主题、颜色方案等选项。
这样用户可以根据自己的喜好和需求来设置和调整数码管的外观。
1.3技术标准:1.电气标准:设计过程需遵循相关的电气安全标准和EMC(电磁兼容性)要求。
2.编程语言和工具:根据单片机型号选择合适的编程语言和开发工具,如C语言和Keil等。
3.I/O接口标准:设计中使用的输入输出接口应符合通用的标准,如GPIO或I2C等2、硬件设计2.1 单片机系统图2. 1 单片机系统中间部分是控制芯片,左上角和右边的电阻都是上拉电阻,目的是限流。
左边中间的部分是复位电路,使用后按下实现复位功能。
左下角是晶振电路为系统提供时钟信号。
单片机课程设计说明书 (word文档+全)单片机课程设计说明书(word文档+全) 盐城工学院课程设计说明书(2015)单片机课程设计说明书用ADC0832设计的两路电压表(用LCD1602显示) 专业新能源科学与工程学生姓名班级学号指导教师完成日期2015年1 月28 日用ADC0832设计的两路电压表(用LCD1602显示) 摘要:本设计是简易两路数字电压表,数字电压表是采用数字化测量设计的电压仪表。
随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。
本设计利用单片机STC89C52借助软件实现数字显示功能、自动校准、LED显示,A/D转换器采用ADC0832构成数模转换电路。
该电压表测量范围在0~5V。
由于采用高性能的单片机芯片为核心,同时利用LED数码管为显示设备,这样就使显示清晰直观、读数准确,减少了因为人为因素所造成的测量误差事件,同时提高了测量的准确度。
根据电压表的主要功能,提出了设计方案并进行了论证。
设计包括硬件设计和软件设计两大部分。
硬件部分包括单片机最小系统、数模转换电路、显示模块四个部分。
首先在Proteus中设计并绘制了电路图,并编写程序使仿真正确。
然后便根据设计的电路在万能板上制作完成了实物并调试成功。
接着在SD301学习板上完成了同样的功能。
接着画了电路原理图,制作了小视频,完成了课程设计。
关键词:单片机,ADC0832,LCD1602,A/D转换,电压表目录 1 概述1 1.1 课程设计研究背景与意义1 1.2 课程设计内容2 2 设计方案论证与方案选择2 2.1 方案论证2 2.2 方案选择2 3 系统硬件电路设计3 3.1 单片机最小系统3 3.2 模数转换电路5 3.3 显示电路7 4 系统软件设计10 4.1 主程序10 4.2 A/D转换程序11 4.3液晶显示子程序11 5 系统调试13 6 结束语15 参考文献16 附录17 附录1 ADC0832设计的两路电压表电路原理图18 附录2 ADC0832设计的两路电压表Proteus仿真电路图19 附录3 ADC0832设计的两路电压表元器件清单20 附录4 ADC0832设计的两路电压表程序清单21 用ADC0832设计的两路电压表(用LCD1602显示) 1 概述1.1 课程设计研究背景与意义近年来计算机技术及微电子器件在工程技术中应用十分广泛。
一概述1.1 课程设计的目的和意义通过课程设计使我进一步熟悉了单片机的内部结构和工作原理,掌握了单片机应用系统设计的基本方法和步骤;通过利用MCS-51单片机,理解单片机在自动化装置中的作用以及掌握单片机的编程调试方法;通过设计一个简单的实际应用输入控制及显示系统,掌握protues和keil以及各种仿真软件的使用。
目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等,温度计中传感器是它的重要组成部分,它的精度、灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。
传感器应用极其广泛,目前已经研制出多种新型传感器。
但是,作为应用系统设计人员需要根据系统要求选用适宜的传感器,并与自己设计的系统连接起来,从而构成性能优良的监控系统。
1.2 任务及要求设计内容:所设计数字电压表应具有以下功能:(1)可以测量-50到110摄氏度内的温度。
(2)在4位LED数码管上显示温度,分别为百位、十位、个位和小数点后一位。
(3)测量精度误差在0.5摄氏度以内。
设计要求:1、根据题目要求进行系统总体设计。
2. 完成系统硬件电路的设计。
(1)硬件电路图。
(2)硬件电路说明。
3. 系统程序的设计。
(1)程序流程图。
(2)完整源程序。
4.完成的控制系统能达到题目的要求。
5.书写设计说明书。
二总体设计方案1 功能简介数码管直接显示DS18B20所测量的温度,超出-50~110℃范围时喇叭报警并且数码管开始闪烁,在温度范围内时喇叭停止报警并且数码管停止闪烁,运行期间可以随时进行复位操作。
2 设计思路AT89C51作为温度测试系统设计的核心器件,具有低电压供电和体积小等特点。
该器件是INTEL公司生产的MCS-5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS-51的CMOS 产品。
芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O接口等计算机所需的基本功能部件。
1绪论随着人们生活水平的提高, 如何实现防盗这一问题也变的尤其突出, 传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。
电子所由于其保密性高,使用灵活性好,安全系数高,受到了广大人民的喜爱。
锁是置于可启闭的器物上,用以关注某个确定的空间范围或某种器具的, 必须以钥匙或暗码打开的扣件。
锁具发展到现在已有若千年的历史了,人们对他的结构,机理也研究的很透彻,因此,不用钥匙打开的方式也层出不穷。
现代人类文明社会里,由于各种矛盾冲突十分激烈,人们的思想道德观念,价值观,文化修养水平等差异,群众中良莠不齐,善良的人们能够自觉规范自己的行为, “非礼不为” ,虽无钥匙亦不会乱闯。
然而,那些毫无道德观念的盗贼却想法设法利用高科技设备撬开门锁, 使广大居民防不胜防。
所以更为现在的锁具需要需要革命。
1.1电子密码锁的背景及工作原理随着社会科技的进步, 锁已经发展到了密码锁。
电子锁, 激光锁, 声控锁等等。
在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同光束,光波,不同图像(指纹,脸部等来控制锁的开启。
从而大大提高了锁的安全性,使不法之徒无从下手, 人们也就能对自身财产安全有了更多的保障。
当今安全信息系统越来越广泛,特别是保护机密,维护隐私和财产保护方面起到重要作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。
电子密码锁是以 51系列单片机 (AT89C51为核心, 配以相应硬件电路, 完成密码的识别和显示、驱动电磁执行器并检测其驱动电流值。
单片机接收键入的代码, 并与存贮在 EEPROM 中的密码进行比较, 如果密码正确, 则驱动电磁执行器开锁; 如果密码不正确, 则允许操作人员重新输入密码, 单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器, 同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。
2设计要求用 4*4的矩阵键盘组成 0至 9及确认键和清除键;提示信息的显示电路用 8位数码管组成显示,初始化时显示器显示“EF” ,当输入密码时,只显示“-” ,当密码位数输入完毕按下确认键时, 对输入的密码与设定的密码进行比较, 若密码输入正确,则锁开,即 LED 发光二极管发光;若密码输入不正确, 则蜂鸣器一直发出“嘀” 、“嘀”的报警声,直到复位。
摘要:随着电子技术飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高。
电子表已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使电子表具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的电子表集成电路芯片出售,价格便宜、使用也方便,但鉴于电子表电路的基本组成包含了数字电路的主要组成部分,因此进行电子表的设计是必要的,用汇编语言设计电子表显示程序,要求根据输入程序显示电子表画面。
研究电子表及扩大其应用,有着非常现实的意义。
关键词:LED,单片机电子秒表,仿真。
1绪论1.1课题背景及研究意义电子表是采用发光二极管(LED)直接显示时、分、秒的高精度计时设备,应用十分广泛,具有直观性强,操作方便,实用性强的特点。
一提到表,大家一定会想起振动。
机械表利用的是机械振动,电子表当然是利用电学振荡。
最早的振荡电路是由电感器和电容器构成,称为LC电路,但其频率稳定性却不大好,后来,科学家们用石英晶体代替LC振荡器,就大大提高了频率稳定性。
石英为规则的六边形晶体。
在石英晶体上按一定方位切割下的薄片叫做石英晶片。
石英晶片有一个奇妙的特性:若晶片上加以机械力,则在相应的方向上就会产生电场。
这种物理现象称为"压电效应"。
当在石英晶片的极板上接上交流电场。
当外加交变电压的频率与石英晶片的固有频率相等时,就会产生共振。
这种现象称为"压电共振"。
利用这种稳定的振荡特性,人们就创造出了精度极高的电子表。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如按时自动打铃、时间程序自动控制、秒表等。
所有这些,都是以钟表数字化为基础的。
烟台大学机091-2 课程设计目录一.设计任务................................ ...............二.功能与框图................................ ..........三.单片机部分................................ .........四.基本人机接口设计..........................五.附录................................ ........................六.总程序................................ ..................七.参考文献................................ ..............一.设计任务1.1设计题目:频率计1.2任务要求:检测十秒内人按按钮的最快频率,并用三位LED显示出实际检测的频率。
1.3设计内容:⑴设计思路:根据任务要求,确定设计要分为三个小部分:首先,设计程序检测出人按按键的频率;然后,设计一个比较子程序,筛选出人按按键的最快频率;最后,将筛选出的频率值输出到LED上进行显示。
其中最主要的是如何检测人按按钮的频率,对此,有三种设计方案,(1)通过定时器定时1S,检测人按按钮的频率;(2)通过检测相邻两次按键动作的时间间隔计算频率,也需用到定时器;(3)直接定时检测十秒内人按按键的频率(因为任务要求可以理解为不同的含义)。
综合考虑,我们选择了第一种设计方案。
(2)基本人机接口设计①完成显示接口设计。
②完成按键接口设计。
设计要求:①完成设计说明书;②软件设计;③硬件设计;④程序仿真;1.4设计步骤⑴理解并确定设计要求⑵确定整体控制方案⑶编写程序说明书附录附上电路图一张及汇编控制程序一份。
二.功能与框图按键接外部中断一→89C51单片机→LED 显示端口如上图,按键按下,外部中断一产生中断,此时定时器0已经开始计时,等时间到后记录数据,将数据送至单片机。
1 引言1.1 数字时钟的发展史电子钟有着很长的历史,从民国19年的电钟,研制始於60年代中期的国内电晶体、半导体管钟,到研制始於70年代末的石英电子钟,再到今天我们所用的智能电子钟。
以前的电子钟存在着很多缺点,其外观体积庞大,在功能上有死摆、走时时间不长、走时精确度不高等缺点。
如今的电子数字时钟无论是外观,还是在功能上,都有了很大的改进。
1.2 设计的目的与意义我们大学生的生活包括:学习、休息以及参与社会的多种实践活动,环环有条理,丰富多彩。
时钟的计时功能与我们的各种行为和活动有着密切的联系,于是时钟的作用便体现出来,只有合理安排时间,养成良好的时间观念,才能给我们的生活、学习带来极大的方便,这就需要电子钟时刻提醒我们。
因此,在这里设计一个较简单的电子钟,它能完成计时的功能。
这个时钟系统很简单,但对于我们学生很实用。
1.3 设计的基本思路与主要内容设计一个电子产品,首先了解它能实现的功能,时钟系统最基本的功能就是实现计时,在这里设计的数字数字时钟,它能实现计时的功能,给数字时钟加上电自动计时。
设计一个数字时钟,要求:开机时,显示00:00:00的时间开始计时,“秒”的调整,每按一次加1s;“分”的调整,每按一次加1min;“时”的调整,每按一次加1h。
计时满23:59:59时,返回00:00:00重新计时。
硬件设计很简单,主要包括:单片机、按键电路、驱动显示电路,以及LED 显示器四个部分。
单片机选用AT89C51芯片,它无须外扩程序存储器,设计电路很简单。
显示时、分、秒加两个分隔符,采用8位的数码管,用74LS245来驱动LED数码管显示字符。
以秒计数并显示时、分、秒。
其中秒和分为60进制,小时为24进制计数。
2 数字时钟系统的整体设计2.1 系统的功能要求以单片机技术为核心,充分应用各种外围电路元器件,设计一个通过显示器显示时间(时、分、秒)的数字时钟。
要求:1、开始时,时、分、秒显示为00:00:00;2、P0.0/AD0控制“秒”的调整,每按一次加1s;3、P0.1/AD1控制“分”的调整,每按一次加1min;4、P0.2/AD2控制“时”的调整,每按一次加1h。
福建工程学院设计内容:基于51单片机的电子时钟设计院系:计算机科学与信息学院专业:计算机科学与技术类班级:嵌入式1105班学号:3110307618姓名:林强指导老师:蔡文培完成日期:2014-06-03摘要随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方变得更加广泛,因此,设计开发数字时钟具有良好的应用前景。
由于单片机成本价格低、高性能,在自动控制产品得到了广泛的应用。
本设计利用Ateml公司的AT89C51单片机对电子时钟进行开发,设计了实现所有功能的硬件电路,使用Keil C来进行代码编写和调试,通过Keil C与Proteus进行联合调试来测试最终结果。
在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及Proteus仿真实验板上的硬件情况,并对各功能进行了分析。
主要工作放在软件的编程上面,用Proteus仿真环境可以实现时间、日期、定时以及它们的设定功能,详细对软件编程以及调试进行了说明,并对计时误差进行了分析及校正。
整个实验效果良好,可以投入使用。
关键词:单片机AT89C51 电子时钟C语言目录第一章设计任务分析1.1课题背景单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构:一种是在通用微型计算机中广泛采用的,程序存储器和数据存储器共用一个存储器空间的结构,称为“冯·诺依曼”(V on Neumann)结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为“哈佛”(Harvard)结构,目前的单片机采用此种结构为多。
本文讨论的单片机多功能时钟系统的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能多等特点。
不仅能满足所需要求而且还有很多功能可供扩展,有着广泛的应用领域。
1.2课题意义在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。
早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性价比的不断提高,新一代产品的应用也越来越广泛。
大则可以构成复杂的工业过程控制系统,完成复杂的控制功能;小则可以用于家电控制,甚至可以用于儿童电子玩具。
它功能强大、体积小、质量轻、灵活好用,配以适当的接口芯片,可以构成各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。
这些具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。
根据这种实际情况,设计了一个单片机多功能时钟系统,它有基本的时间功能,还有定时功能,既可作为闹铃,也可扩展为定时对家电等电气产品的自动控制,可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制;可增加温度传感器,进行实时温度显示,进一步扩展为利用不同的温度某些电气产品进行自动控制;也可增加湿度传感器,进行实时湿度显示,以便对湿度进行控制,方便人们的生活。
1.3本章小结本章主要介绍了课题背景、设计任务和课题意义,对单片机的优点及结构作了简要叙述,也对本系统的应用及概况进行了说明。
第二章系统功能及操作2.1 系统功能的确定本系统有显示时间、日期和设定闹铃功能,并且可以对时间、日期进行设定。
闹铃提示使用屏显提示方式。
2.2 系统操作设置本系统的按键是4x4键盘,可以输入0~9 ,设置闹铃、取消、确定、设置时间、设置日期。
具体按键码如下:0x11 →数字’1’0x12 →数字’2’0x14 →数字’3’0x18 →设置闹铃0x21 →数字’4’0x22 →数字’5’0x24 →数字’6’0x28 →设置时间0x41 →数字’7’0x42 →数字’8’0x44 →数字’9’0x48 →日期设置0x81 →取消0x82 →数字’0’0x84 →设置闹铃标志0x88 →确定2.3 本章小结本章主要对本系统的基本功能和操作进行了详细说明。
第三章 系统硬件设计3.1仿真电路板的原理图3.2功能电路分析3.2.1时钟电路仿真电路的时钟振荡源电路如图所示。
其中 为12MHz 的晶振,改变两电容CB 的值即可对此晶振频率进行调节。
该电路提供单片机工作所需的振荡频率,计算定时器初值即需此晶振频率,在通信时也需知道晶振频率,以对波特率进行计算。
时钟电路 复位电路LCD 电路 键盘电路3.2.2 复合复位电路如图所示为实验板的复合复位电路,当RESET 信号为低电平时,仿真电路为工作状态,当RESET信号为高电平时,仿真电路为复位。
这是上电复位和按钮复位的结合体。
3.2.3 LCD显示电路如图所示,本电路中使用的是LCD1602 ,D0~D7双向数据端接51单片机的P0口,RS,RW,E分别接P2.0~P2.2,由于P0口没有上拉电阻所以要连接一个9针排阻,起到加大驱动电流,提高稳定性的作用。
3.2.4 键盘电路如图键盘是4x4 的16键的行列式键盘,行接P1口高4位,列接P1口的低4位。
3.3本章小结本章主要对芯片作了介绍,对其内存单元作了详细说明,并对系统硬件的结构框图和各功能电路作了说明,以及这些电路在本设计中的用途。
第四章系统软件设计4.1 计时时钟实现的基本方法时钟的最小计数单位是秒,AT89C51晶振频率为12M,机器周期为1M,那么机器一周期时间为1/f=1/1M=1微秒。
使用定时器0的方式2,定时器的最大计数时间为256微秒,想要以1秒闪烁,则TH0 = 6,TL0 = 6,每次计数都是记(256-6=250)微秒,中断次数1秒除以250微秒等于4000次。
以此循环实现1s计数。
4.2 实现时钟程序设计步骤系统采用模块化结构,主程序只需调用各个子程序模块就能实现相应功能。
其模块结构如下图:4.2.1主程序模块设计4.2.2 计时子程序模块说明当T0中断时,count设为4000次,即满足4000次中断后在中断服务程序里调用时间更新函数TimeUpdate(),秒满60,秒清零,分加1,分满60,时加1,时满24,调用星期计算函数,日加1,并更新相应的星期。
4.2.3 显示模块说明显示部分主要是对lcd1602的特性操作,lcd1602初始化设置为5x7点阵。
利用其CGDRM 写数据来实现显示时间、日期、闹铃标志。
CGRAM初始值为0x40。
其中日期(年、月、日)和闹铃标志的显示是使用如下数组来实现:ring_buf[]={0x0a,0x15,0x0a,0x11,0x0a,0x04,0x0e,0x00};//闹铃nin[]= {0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02};// "年"yue[]= {0x0f,0x09,0x0f,0x09,0x0f,0x09,0x0b,0x11};// "月"ri[] = {0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00};// "日"4.2.4 键盘扫描模块说明键盘采用4x4的行列式键盘,行线读取P1口高4位信号,列线读取P1口的低4位信号,通过软件延时方法消除抖动,延时时间10ms。
4.2.5 时钟、闹铃设定模块说明当设定时间时,断开T0中断,秒单元清0,进入时、分单元设定。
设定好后重装T0初值,开T0中断。
如下图所示:4.2.6 日期设定模块说明日期设定与时间设定类似,除了对输入的控制,还有增加了对星期的更新步骤。
4.3本章小结本章主要对软件实现的功能进行说明,包括软件流程图,软件的参数就算和原理说明。
第5章调试结果及PCB图的设计5.1 调试及结果5.1.1 调试过程该时钟程序的功能模块先后实现的顺序为:主程序→时间模块→显示模块→键盘模块→时间设定及其显示模块→日期及其显示模块→日期设定及其显示模块→定时及其显示模块→定时设定及其显示模块。
每完成一个模块就与前一个已完成的模块结合起来调试,直至实现相应功能,再编写下一模块程序。
在与主程序衔接时,主程序和各子程序也需作相应的改动,以便与子程序更好的衔接,特别是显示子程序需作较大改动,以便对不同内容进行显示。
5.1.2 调试遇到的问题调试过程还是有困难的,首先是程序定义的unsigned char 数组出问题,问题如下:*** ERROR L107: ADDRESS SPACE OVERFLOWSPACE: DA TASEGMENT: ?DT?USART_READWRITELENGTH: 007AH上网查了下,找到了具体的原因和解决方法如下:说明data空间已经不够用,原因是可能有好多函数,而函数内部的局部变量又没有定义其空间,这种情况下,系统会将变量分配到你在Otions for Target 对话框里的设置的空间。
如果你在下图所示中的Memory Model 里设置成Small:variables in DATA,则DATA 空间很快便用完,导致data空间不够用。
解决的办法有三种,一是通过更改Memory Model 设置,可以设置成pdata或xdata,以便有足够大的空间,但这又带来新的问题,程序运行速度减慢,而且code代码也会加大,因为如果一个局部变量被存放在了xdata空间,汇编语言访问xdata空间的代码大小要比访问data空间的代码大,变量一旦很多,程序的代码也会逐渐增大;二是根据自己的要求设置变量的空间。
所以这涉及到代码优化的问题,遇到具体问题时,在运行速度和代码大小之间取得适合自己的情况;第三种,即目前使用的是将unsigned char 改为unchar code ,由于unchar code 将数据保存到c51的4k字节的Flash 中,导致运行的时候才将数据写入RAM所以速度稍微慢些,不过肉眼看不出来区别。
其次,因为刚接触LCD1602,对其特性没有完全掌握,刚开始让其显示自定义中文字符年、月、日和闹铃标志出现了严重的错误,具体是在向LCD1602写数据时出现的:要从CGRAM中读出数据在1602上显示,搞了半天发现CGRAM里的地址和DDRAM里的地址有上面的转换关系,所以解决方法是(address&=0x3f)/0x08 这样作为写入数据的参数才能正确被LCD1602显示。