单片机课程设计.docx
- 文档编号:10574486
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:26
- 大小:186.92KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
单片机课程设计
单片机电子时钟
摘要:
在日常生活中,电子时钟与我们密切相关,在很多地方都会用到电子时钟。
除了专用的时钟、计时显示牌外,许多应用系统常常也带有实时时钟显示,如各种智能化仪器仪表、工业过程控制系统以及家用电器等。
实现电子时钟的方法有多种,通过前面我们对单片机基本理论及相关知识的学习,在这里,要求用单片机为主控制芯片设计一简单的单片机电子时钟。
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
关键词:
电子时钟;单片机;计时
SCMElectronicClock
Abstract:
Inourdailylife,theelectronicclockiscloselyrelatedtotheelectronicclockwhichwillbeusedinmanyplaces.Inadditiontoadedicatedclock,timinglicenses,therearemanyapplicationswhichoftenwithreal-timeclockdisplay,suchasavarietyofintelligentinstrumentation,industrialprocesscontrolsystemsandhomeappliances.TherearemanywaystorealizetheElectronicclock,throughthefrontoflearningourSCMbasictheoryandrelatedknowledge,here,themicrocontroller-basedcontrolchipdesignasimplesingle-chipelectronicclock.WiththedevelopmentofcomputerpenetrationinthesocialfieldandLSIinrecentyears,theusingofmicrocontrollerapplicationsisconstantlygodeeper,becauseithasthefeaturesofasmallsize,lowpowerconsumption,cheap,reliable,easytouse.Thereforeitisparticularlysuitableforthecontrolofthesystem,moreandmorewidelyusedinautomaticcontrol,Intelligentinstruments,dataacquisition,andmilitaryproductsandhomeappliances,SCMoftenusedasacorecomponentinthestructure,accordingtothespecifichardwareandsoftwareforapplication-specificobjectcharacteristicscombinedtomakeperfect.
Keywords:
electronicclock;microcontroller;timing
第一章引言1
课程设计的目的1
课程设计内容1
第二章总体方案设计2
总体思想--方案论证2
方案的选择2
第三章硬件系统设计4
总电路设计4
器件的介绍4
单元模块设计6
第四章软件系统设计9
软件程序思想9
主程序及流程图9
子程序及流程图12
第五章系统仿真16
KEIL51介绍16
PROTEUS介绍20
仿真过程及仿真结果28
第六章结束语29
致谢30
参考文献31
第一章引言
课程设计的目的
本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS164译码器的工作原理和与LED连接的方法。
通过它可以进一步学习与掌握单片机原理与使用方法。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
课程设计内容
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、数码管驱动器74LS164等),再配以相应的软件,是它具有星期,时,分,秒显示的功能,并且时,分,秒还可以调整。
此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。
而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。
第二章总体方案设计
总体思想--方案论证
1.计时方案
单片机电子时钟计时有两种方法:
第一种是通过单片机内部的定时器/计数器,采用软件编程来实现时钟计时,这种实现的时钟一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合;第二种是采用专用的硬件时钟芯片计时,这种实现的时钟一般称为硬时钟。
专用的时钟芯片功能比较强大,除了自动实现基本计时外,一般还具有日历和闰年补偿等功能,计时准确,软件编程简单,但硬件成本相对较高,通常用在对时钟精度要求较高的场合。
2.显示方案
对于电子时钟而言,显示是另一个重要的环节。
显示通常采用两种方式:
LED数码管显示和LCD液晶显示。
其中LED数码管显示亮度高,显示内容清晢,根据具体的连接方式可分为静态显示和动态显示,在多个数码管时一般采用动态显示,动态显示时须要占用CPU的大量时间来执行动态显示程序,显示效果往往和显示程序的执行相关。
LCD液晶显示一般能显示的信息多,显示效果好,而且液晶显示器一般都带控制器,显示过程由自带的控制器控制,不须要CPU参与,但液晶显示器造价相对较高。
为了便于比较与学习,这里给出两种设计方案,一种是软件计时LED数码管显示的单片机电子时钟,另一种是硬件定时LCD液晶显示的单片机电子时钟。
软件计时LED数码管显示的单片机电子时钟总体设计框图如图2-1所示。
硬件定时LCD液晶显示的单片机电子时钟总体设计框图如图2-2所示。
图2-1软件计时LED显示时钟总体框图图2-2硬件定时LCD显示时钟总体框图
方案的选择
对于电子时钟而言,显示是另一个重要的环节。
显示通常采用两种方式:
LED数码管显示和LCD液晶显示。
其中LED数码管显示亮度高,显示内容清晢,根据具体的连接方式可分为静态显示和动态显示,在多个数码管时一般采用动态显示,动态显示时须要占用CPU的大量时间来执行动态显示程序,显示效果往往和显示程序的执行相关。
LCD液晶显示一般能显示的信息多,显示效果好,而且液晶显示器一般都带控制器,显示过程由自带的控制器控制,不须要CPU参与,但液晶显示器造价相对较高。
掌握单片机最小系统的电路原理图;硬件的焊接、连接;独立编辑、编译软件;上电以后自动进入计时状态,起始于00:
00:
00。
设计键盘调整时间,完成时间设计。
定时时间为1/20秒,采用定时器实现。
采用LED数码管显示,时、分,秒采用数字显示。
采用24小时制,具有方便的时间调校功能。
第三章硬件系统设计
总电路设计
软件计时LED数码管显示的时钟的具体硬件电路如图3-1所示,其中单片机采用应用广泛的AT89C51,系统时钟采用12MHz的晶振,8个数码管显示,小时与分钟、分钟与秒钟之间用短横线间隔,采用共阳极七段式数码管,由于并口上没有连接其它的硬件电路,所以P0口直接作段选码输出端,P2口作位选码输出端。
采用简化按键方式,只设定3个开关K0、K1和K2,通过P1口低3位相连。
其中K0键为调时模式选择键,K1为加1键,K2为减1健。
图3-1软件计时LED显示时钟硬件电路图
器件的介绍
定时计数器:
定时/计数技术在计算机系统中具有极其重要的作用。
计算机系统都需要为CPU和外部设备提供定时控制或对外部事件进行计数。
例如,分时系统的程序切换,向外部设备输出周期性定时控制信号,对外部事件个数统计等。
另外,在检测、控制和智能仪器等设备中也经常会涉及到定时。
因此,计算机系统必须有定时和计数技术。
定时/计数的本质是计数,对周期性信号计数就实现定时。
通常,实现定时的方法有三种:
软件定时、硬件定时、可编程定时。
软件定时是利用CPU执行指令需要若干指令周期的原理,运用软件编程,然后循环执行一段程序而产生延时,再配合简单输出接口可以向外送出定时控制信号。
这种方法的优点是不需要增加硬件或硬件很简单,只需要编制相应的延时程序以备调用。
缺点是执行延时程序占用了CPU时间,所以定时的时间不宜太长,且在某些惰况下不宜使用。
硬件定时是通过硬件电路(多偕振荡器件或单稳器件)实现定时,故定时参数的调整不灵活,使用不方便,其成本较低。
可编程定时结合了软件定时使用灵活和硬件定时独立的特点,它以大规模集成电路为基础,通过编程即可改变定时时间或工作方式,又不占用CPU的执行时间。
在计算机系统中通常用到的是可编程定时,51单片机内部就集成了可编程的定时/计数器,它是51单片机中使用非常频繁的重要功能模块。
LED显示器:
LED数码管显示器是由发光二极管按一定的结构组合起来的显示器件。
在单片机应用系统中通常使用的是7段或8段式LED数码管显示器,8段式比7段式多一个小数点。
这里以8段式来介绍,单个8段式LED数码管显示器的外观与引脚如图3-2所示,其中a,b,c,d,e,f,g和小数点dp为8段发光二极管,位置如图中所示,组成一个“
”形状。
(a)引脚图(b)共阴极(c)共阳极
图3-28段式LED数码管引脚与结构
8段发光二极管的连接有两种结构:
共阴极和共阳极。
如图3-2所示。
其中,图(b)为共阴极结构,8段发光二极管的阴极端连接在一起,阳极端分开控制,使用时公共端接地,要使哪根发光二极管亮,则对应的阳极端接高电平;图(b)为共阳极结构,8段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源,要使哪根发光二极管亮,则对应的阴极端接地。
LED数码管显示器显示时,公共端首先要保证有效,即共阴极结构公共端接低电平,共阳极结构公共端接高电平,这个过程我们称为选通数码管。
再在另外一端送要显示数字的编码,这个编码称为字段码,8位数码管字段码为8位,从高位到低位的顺序依次为dp、g、f、e、d、c、b、a。
如:
共阴极数码管数字“0”的字段码为00111111B(3FH),共阳极数码管数字“1”
MCS-51:
MCS-51系列单片机是美国Intel公司在1980年推出的高性能8位单片机,它包含51和52两个子系列。
对于51子系列,主要有8031、8051、8751三种机型,它们的指令系统与芯片引脚完全兼容,仅片内程序存储器有所不同,8031芯片不带ROM,8051芯片带4KB的ROM,8751芯片带4KB的EPROM。
51子系列单片机的主要特点如下。
●8位CPU。
●片内带振荡器,频率范围MHz~12MHz。
●片内带128B的数据存储器。
●片内带4KB的程序存储器。
●程序存储器的寻址空间为64KB。
●片外数据存储器的寻址空间为64KB。
●128个用户位寻址空间。
●21个字节特殊功能寄存器。
●4个8位的并行I/O接口:
P0、P1、P2、P3。
●两个16位定时/计数器。
●两个优先级别的5个中断源。
●1个全双工的串行I/O接口,可多机通信。
●111条指令,含乘法指令和除法指令。
●片内采用单总线结构。
●有较强的位处理能力。
●采用单一+5V电源。
对于52子系列,有8032、8052、8752三种机型。
52子系列与51子系列相比大部分相同,不同之处在于:
片内数据存储器增至256B;8032芯片不带ROM,8052芯片带8KB的ROM,8752芯片带8KB的EPROM;有3个16位定时器/计数器;6个中断源。
本书以51子系列的8051为例来介绍MCS-51单片机的基本原理。
虽然MCS-51系列单片机的芯片有多种类型,但它们的基本组成相同。
MCS-51单片机的基本结构如图3-3所示。
图3-3MCS-51的基本结构
单元模块设计
51系列单片机是美国Intel公司在1980年推出的高性能8位单片机,它包含51和52两个子系列。
51单片机集成了中央处理器(CPU)、存储器系统(RAM和ROM)、定时/计数器、并行接口、串行接口、中断系统及一些特殊功能寄存器(SFR),它们通过内部总线紧密的联系在一起。
51单片机有40个引脚,在本次设计当中有很多口都没有使用,我们下面介绍的就是对本次设计最为重要的4个8位的并行I/O接口。
表3-1P3口的第二功能
P3口
第二功能
RXD串行口输入端
TXD串行口输出端
INT0外部中断0请求输入端,低电平有效
INT1外部中断1请求输入端,低电平有效
T0定时/计数器0外部计数脉冲输入端
T1定时/计数器0外部计数脉冲输入端
WR外部数据存储器写信号,低电平有效
RD外部数据存储器读信号,低电平有效
51系列单片机有4个8位的并行I/O接口:
P0、P1、P2和P3口。
它们是特殊功能寄存器中的4个。
这4个口,既可以作输入,也可以作输出,既可按8位处理,也可按位方式使用。
输出时具有锁存能力,输入时具有缓冲功能。
每个口的具体功能有所不同。
P0口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用的I/O接口。
它包括一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。
P1口只作通用I/O接口使用。
P1口具有驱动4个LSTTL负载的能力。
P2口有两种用途:
通用I/O接口和高8位地址线。
P3口除了作为通用I/O口使用外,它的每一根线还具有第二种功能,见表3-1。
当P3口作为通用I/O接口时,第二功能输出线为高电平。
当P3口作为第二功能时,锁存器的输出端必须为高电平,P3口的状态取决于第二功能输出线的状态。
单片机复位时,锁存器的输出端为高电平。
复位与复位电路
复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的状态,并从这个状态开始工作。
当单片机系统在运行出错或操作错误使系统处于死锁存时,也可按复位键重新启动。
单片机复位后,PC内容初始化为0000H,那么单片机就从0000H单元开始执行程序。
片内RAM为随机值,运行中的复位操作不改变片内RAM的内容。
RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续2个机器周期以上。
按下复位按钮时,电源对外接电容器充电,使RST为高电平,复位按钮松开后,电容通过内部下拉电阻放电,逐渐使RST端恢复低电平。
时钟信号有外部引入方式和内部振荡器方式两种方式。
下面就来对两种方式进行简单地介绍:
内部振荡方式
51单片机内部有一个高增益的反相放大器,其输入端为引脚XTAL1,输出端为引脚XTAL2,用于外接石英晶体振荡器或陶瓷谐振器和微调电容,构成稳定的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
外部引入方式常用于多片单片机组成的系统中,以便各单元之间的时钟信号同步运行。
LED数码管是由发光二极管构成的,亦称半导体数码管。
将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成“8”字,再把发光二极管另一电极作笔段电极,就构成了LED数码管。
若按规定使某些笔段上的发光二极管发光,就能显示从0~9的…系列数字。
同荧光数码管(VFD)、辉光数码管(NRT)相比,它具有:
体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL、CMOS电路兼容等的数显器件。
+、-分别表示公共阳极和公共阴极。
a~g是7个笔段电极,DP为小数点。
另有一种字高为7.6mm的超小型LED数码管,管脚从左右两排引出,小数点则是独立的。
本系统利用6位LED数码管显示时间,共阴极结构。
LED数码管由7段发光二极管组成,当要显示某个数字时只要将数字所对应的引脚送入低电平。
本设计中主要有三个控制按键,按键功能为:
(1)为调时间模式,长按进入调分状态:
分单元闪烁,按加1,按减1.再长按进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。
(2)按下进入秒表状态:
再按秒表又启动,按暂停,再按秒表清零,按退出秒表回到时钟状态。
第四章软件系统设计
软件程序思想
软件系统程序由主程序和子程序组成,主程序包含初始化参数设置、按键处理、数码管显示模块等,在设计时各个模块都采用子程序结构设计,在主程序中调用。
时钟由定时/计数器0产生,采用中断方式工作,因此还要编写定时/计数器0中断服务子程序,在定时/计数器0中断服务程序中形成时钟关系。
1.主程序
主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下时,则转入相应的功能程序。
2.数码管显示模块
本系统共用8个数码管,从左到右依次显示时十位、时个位、横线、分十位、分个位、横线、秒十位和秒个位。
数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区,其中秒个位和秒十位、分个位和分十位、时个位和时十位分别由秒数据、分数据和小时数据分拆得到。
在本系统中数码管显示采用软件译码动态显示。
在存储器中首先建立一张显示信息的字段码表,显示时,先在P2口送出位选码,选中显示的数码管,然后从显示缓冲区中取出当前显示的信息,查表在字段码表中查出所显示的信息的字段码,从P0口输出,就能在相应的数码管上显示显示缓冲区的内容。
3.定时器/计数器T0中断服务程序
计时选择定时器/计数器T0。
具体处理如下:
定时器/计数器T0选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满,这样就形成了时钟关系。
在对各单元计数的同时,把它们的值放到存储单元的指定位置。
4.按键处理模块
按键处理设置为:
如没有按键,则时钟正常走时。
当按K0键一次,时钟暂停走动进入调小时状态,再按K0键一次,进入调分状态,再按K0键一次,回到正常走时;对于K1和K2按键,如果是正常走时,按K1和K2不起作用,如果进入调时或调分状态,按K1可对时或分进行加1操作,小时加到24则回到0,分加到60则回到0;按K2可对时或分进行减1操作,小时减到负则回到23,分减到负则回到59。
主程序及流程图
使用AT89C51单片机,12MHz晶振,P0输出字段码,P2口输出位选码
用共阳LED数码管,为调时模式按键,为加1键,为减1键
片内RAM的70H到77H单元为LED数码管的显示缓冲区
78H,79H,7AH分别为秒、分、小时计数单元
7BH为50ms计数器,7CH为调时模式计数器
图4-1主程序流程图
ORG0000H
LJMPSTART
ORG000BH;定时器/计数器T0中断程序入口
LJMPINTT0
主程序
START:
MOVR0,#70H
MOVR7,#0CH
INIT:
MOV@R0,#00H
INCR0
DJNZR7,INIT
MOV72H,#10
MOV75H,#10
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#03CH
SETBEA
SETBET0
SETBTR0
START1:
LCALLSCAN
LCALLKEYSCAN
SJMPSTART1
;延时1MS子程序
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
;延时20MS子程序
DL20MS:
ACALLSCAN
ACALLSCAN
ACALLSCAN
RET
;数码管显示程序
SCAN:
MOVA,78H;将小时、分钟和秒拆分成十位和个位
MOVB,#0AH;存入显示缓冲区的相应位置
DIVAB
MOV71H,A
MOV70H,B
MOVA,79H
MOVB,#0AH
DIVAB
MOV74H,A
MOV73H,B
MOVA,7AH
MOVB,#0AH
DIVAB
MOV77H,A
MOV76H,B
MOVR1,#70H;循环扫描显示
MOVR5,#0FEH
MOVR3,#08H
SCAN1:
MOVA,R5
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVA,R5
LCALLDL1MS
INCR1
MOVA,R5
RLA
MOVR5,A
DJNZR3,SCAN1
MOVP2,#0FFH
MOVP0,#0FFH
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
子程序及流程图
图4-2定时器/计数器T0中断服务程序流程图
定时器/计数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计