ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:999.31KB ,
资源ID:11673240      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11673240.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计 基于51单片机的简约电子钟.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计 基于51单片机的简约电子钟.docx

1、单片机课程设计 基于51单片机的简约电子钟单片机课程设计项目名称 基于51单片机的简约电子钟 专业班级 通信091班 学生姓名 指导教师 2012 年 12 月 21 日摘 要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习、应用,以STC11F

2、02E芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。关键词: STC11F02E;单片机;电子时钟;AbstractSCM since its introduction in the 1970s, with its high performance and low cost, the attention and concern of the people of the very wide application microcontroller since its introducti

3、on in the 1970s, with its high performance and low cost, by the peoplewide attention and concern, has developed rapidly. Microcontroller small size, light weight, strong anti-interference ability, the environment less demanding, low price, high reliability, good flexibility, easier development. Due

4、to the above advantages, in our country, the microcontroller has been widely used in all aspects of industrial automation and control, automatic detection, intelligent instruments, household appliances, power electronics, electromechanical integration equipment, etc., and 51 microcontroller each MCU

5、 most typical and most a representative. This course designed by its learning, application, STC11F02E chip as the core, supplemented by the necessary circuitry to design a simple electronic clock, it is powered by 4.5V DC power supply through digital tube display time be able to accurately adjust ti

6、me, so as to reach the study, design, development software, the capabilities of the hardware.The keywords: STC11F02E; microcontroller; electronic clock;目 录摘 要 IAbstract II第1章 绪论 11.1 概述 11.2 单片机技术的研究现状 11.3 总体设计方案 21.3.1 设计思路 2第2章 系统硬件原理及设计 42.1 核心器件STC11F02E介绍 42.2 主要设计软件介绍 62.2.1 PROTEUS软件简介 62.2.

7、2 KEIL简介 62.3 硬件电路 72.3.1 总体设计框图及设计原理图 7第3章 系统软件设计 83.1 软件设计分析 83.2 软件程序设计 8结论 19参考文献 20附录 1 21附录 2 22项目创新及特色 23第1章 绪论1.1 概述单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块

8、芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年

9、以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。 汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。1.2 单片机

10、技术的研究现状单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前

11、,高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。当前趋势SoC嵌入式系统(System on Chip)式的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决,因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应

12、用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。1.3 总体设计方案1.3.1 设计思路利用单片机(STC11F02E)制作简易电子时钟,采用了共阴数码管,在数码管的a-h 段都加上330 欧姆的上拉电阻,增大数码管的驱动电流,然后还采用了一个蜂鸣器做报时用,外加两个按键,电路非常简单,但是它的亮点是程序,程序使用了一种全新的按键处理方法,一个按键实现长按,短按功能。1.3.2 设计方案 根据设计任务的基本要求,设计了由单片机(STC11F02E)作为主控器件,按键组成的按键操作电路,以及三极管、蜂鸣器组成的发声电路。本次设计时钟电路,使用了

13、STC11F02E单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED显示即可满足设计要求。1.4 课题意义时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,

14、石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数

15、器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机STC11F02E芯片和LED数码管为核心,辅以必要的电路,没有用到时钟芯片,因此采用校准功能,构成了一个超级简单的单片机电子时钟,该方案节省硬件成本,但程序设计较为复杂。第2章 系统硬件原理及设计2.1 核心器件STC11F02E介绍STC11F02E单片机是宏晶科技设计生产的单时钟/ 机器周期(1T)的单片

16、机,是高速/ 低功耗/ 超强抗干扰的新一代8051 单片机,指令代码完全兼容传统8051,但速度快8-12 倍。内部集成高可靠复位电路,针对高速通信,智能控制,强干扰场合。STC11/10xx系列单片机的定时器0/定时器1/串行口与传统8051兼容,增加了独立波特率发生器,省去了定时器2.传统8051 的111 条指令执行速度全面提速,最快的指令快24 倍,最慢的指令快3 倍.外形及引脚排列如图所示:图2-1 STC11F02E外形图及引脚序列主要特性:1. 增强型 8051 CPU,1T,单时钟/ 机器周期,指令代码完全兼容传统80512. 工作电压:STC11Fxx 系列电压: 5.5V-

17、4.1V/3.7V(5V 单片机)STC11Lxx 系列电压:3.6V-2.4V/2.1V(3V 单片机)3. 工作频率范围:0 - 35MHz,相当于普通8051 的 0420MHz4. STC11F/Lxx 系列单片机用户应用程序空间: 1/2/3/4/5/6/8/16/20/32/40/48/52/56/60/62K 字节5. STC11 系列单片机 :RAM 为1280 字节或256 字节。STC10 系列单片机 :RAM 为512 字节或256 字节6. 通用I/O 口(40/36 个),复位后为: 准双向口/ 弱上拉(普通8051 传统I/O 口)可设置成四种模式:准双向口/ 弱上

18、拉,推挽/ 强上拉,仅为输入/ 高阻,开漏每个I/O 口驱动能力均可达到20mA,但整个芯片最大不要超过100mA7. ISP (在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 有EEPROM 功能9. 看门狗10. 内部集成MAX810 专用复位电路(晶体频率在24MHz 以下时,要选择高的复位门槛电压,如4.1V 以下复位,晶体频率在12MHz 以下时,可选择低的复位门槛电压,如3.7V 以下复位,复位脚接1K 电阻到地)11. 内置一个对内部Vcc 进行掉电检测的掉电检测电路,可

19、设置为中断或复位5V 单片机掉电检测门槛电压为4.1V/3.7V 附近,3.3V 单片机掉电检测门槛电压为2.4V 附近12. 时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟常温下内部R/C 振荡器频率为: 4MHz 8MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准13. 2 个16 位定时器(与传统8051 兼容的定时器/ 计数器,16 位定时器T0 和T1)1个独立波特率发生器(故不必用T2做为波特率发生器,详细使用方法请参考独立波特率发生器做串口通讯的相关使用说明及示例程序)14

20、. 3 个时钟输出口,可由T0 的溢出在P3.4/T0 输出时钟,可由T1 的溢出在P3.5/T1 输出时钟,独立波特率发生器可以在P1.0口输出时钟(部分型号无独立波特率发生器,详情请参阅单片机选型一览表)15. 外部中断I/O 口有5 路,支持传统的下降沿中断或低电平触发中断Power Down(掉电)模式可由外部中断唤醒,INT0/P3.2, INT1/P3.3, INT/T0/P3.4, INT/T1/P3.5,INT/RxD/P3.0(或INT/RxD/P1.6)16. Power Down(掉电)模式可由内部掉电唤醒专用定时器唤醒(STC11xx 系列有此功能,STC10xx 无此

21、功能),也可由上面提到的外部中断口中断唤醒,由于INT/RxD 支持下降沿中断,故也可支持远程通信唤醒17. 一个独立的通用全双工异步串行口(UART),做主机时可以当2 个串口使用RxD/P3.0,TxD/P3.1可以切换到RxD/P1.6,TxD/P1.7,通过将串口在P3 口和P1 口之间来回切换,将1 个串口作为2 个主串口分时复用,可低成本实现2 个串口,当然有其局限性18. 工作温度范围: -40 - +85(工业级) / 0 - 75(商业级)19. SOP16/DIP16/DIP18/SOP20/DIP20/LSSOP20/PDIP-40/LQFP-44/PLCC44(暂时尽量

22、不要选PLCC44)SOP16/DIP16 有12 个I/O 口,SOP20/PDIP20/LSSOP20 有16 个I/O 口,LQFP44 有40 个I/O 口,PDIP40 有36 个I/O 口。2.2 主要设计软件介绍本设计利用KEIL编程软件对时钟源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,两种软件的简介如下:2.2.1 PROTEUS软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿

23、真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面

24、,它也支持IAR、Keil和MPLAB等多种编译器。 2.2.2 KEIL简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、

25、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级

26、语言的优势。2.3 硬件电路2.3.1 总体设计框图及设计原理图图2.3.1 总体设计框图图2.3.2 设计原理图第3章 系统软件设计3.1 软件设计分析在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。在主程序中,对不同的按键进行扫描,实现秒表,时间调整,复位清零等功能,系统总流程图如下图:3.2 软件程序设计#include#include#include#define uint unsigned int#define uchar unsigned char#define Key1 0x8

27、0 /P3.7,按键1#define Key2 0x20 /P3.5, 按键2/*以下数据最后处理的时候要合并*/uchar comnum;/公共端显示值uchar timecount;/时间计数值uchar sec=59,min=59,hour=11;/秒分时uchar point;/控制中间两点uchar com3num;/*公共端3控制的方格数值*/uchar h1,h2,h4,h5;/*1,2,4,5控制的方格值*/void init();/初始化函数声明/void KeyInit();/*读取按键函数,按键初始设置*/void KeyRead();/读取按键并且执行按键操作/*以下是

28、按键相关定义*/uchar Trg=0;/Trg(triger代表是触发)uchar Cont=0;/Cont(continue)代表是连续按下uchar cnt_plus;/计算上面按键按住的长数 uchar cnt_plus2;/计算下面按键长按的计算值uchar cnt_plus3;/长加uchar keycount;/按键计数值uchar sec1,min1,hour1;/用于设置时间时所用到uchar setnum;/用于设置的是当前那个值uchar flashcount;/闪烁计算值bit flashflag;/闪烁标志/bit longkeyflag;/长按标志sbit beep

29、=P36;/蜂鸣器控制管脚/sbit longkey2=P35;bit beepflag;/报时标志bit openbeep;/是否打开蜂鸣器标志bit opennum;bit lightflag;bit cal_flag;/*校准标志*/char cal_sec;/校准的秒数(有正负)uchar cal_sec2;/用于转换cal_sec为整数时用到bit cal_finish;/用于设置负数时确定是否只设置一次uchar table1=0xfd,0x70,0xee,0xfa/*3*/,0x73,0xbb,0xbf,0xf0,0xff,0xfb;/显示码表(0-9,不带方格)(共阴) (h点

30、要置1)!uchar table2=0x00/*不亮*/,0xa0,0x60,0x30,0x28,0x24,0x21,0x22,0x81/*8两边*/,0x42/*次两边*/,0x1c/*中间三横*/,0xff/*11全亮*/;/下面的8段uchar comtable=0xfe,0xfd,0xfb,0xf7,0xef;/5个公共端控制数组uchar data numtable5;/显示那个数码管 (5代表5个数据!Mark!)void main() timecount=19; comnum=0; com3num=1; cnt_plus=0; keycount=0;/ P3=0xff;/暂定 p

31、oint=0x00;/中间点/ beep=0; setnum=0; flashcount=0; openbeep=0; opennum=1; lightflag=0; cal_flag=0; cal_sec=0;/校准值初始为0秒 cal_finish=0;/ longkeyflag=1; init(); while(1) void init()/初始化函数 TMOD=0x11;/两个16位 TH0=(65536-49996)/256;/49996 TL0=(65536-49996)%256; TH1=(65536-3721)/256;/ TL1=(65536-3721)%256; EA=1; ET0=1;/暂定 TR0=1;/暂定 ET1=1; TR1=1;/*按键读取函数*/void KeyRead()/读取按键并且执行按键操作 uchar ReadData=(P3|0x5f);/(P3|0x5f)0xff;/P3组需要处理,没有按键的不变化(P3) Trg=ReadData &(ReadDataCont);/判断是否点

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1