文档库 最新最全的文档下载
当前位置:文档库 › 单片机 六位数字钟 课程设计 毕业设计

单片机 六位数字钟 课程设计 毕业设计

单片机 六位数字钟 课程设计 毕业设计
单片机 六位数字钟 课程设计 毕业设计

数字钟

系 别:汽车与电气工程系 专 业: 电气自动化

班 级: 09电气(1)班 姓 名: 张 云 飞 学 号: 0902030148 指导教师: 杨新华 完成时间:2011年12月 15日

2011年

12月15日

扬州职业大学 课程设计论文 论文分类号: 密 级:无

目录

目录 ................................................................................................................................................................. I 摘要 ................................................................................................................................................................ I I 第一章绪论 . (1)

1.1关于单片机的基础知识 (1)

1.2开发背景及电子钟原理 (2)

1.2.1 开发背景 (2)

1.2.2 电子钟原理 (2)

1.3方案比较 (2)

1.4 定时与中断系统 (3)

第二章系统硬件设计 (3)

2.1 电源电路图 (3)

2.2硬件电路设计框图 (4)

2.3数字钟原理图 (4)

2.4单片机模块 (5)

2.5 AT89S52芯片简介 (5)

2.6 AT89S52功能描述 (6)

2.7键盘控制电路 (8)

2.8复位电路 (8)

2.9显示电路 (8)

2.9.1 LED共阳数码管简介 (9)

第三章系统软件设计 (10)

3.1编程思路 (10)

3.2系统资源分配 (11)

3.3编程流程图初始化程序框图: (11)

3.4数字钟程序 (12)

第四章单片机应用系统的调试 (17)

4.1.硬件调试 (17)

4.2软件调试 (17)

4.3系统调试 (18)

谢辞 (18)

参考文献 (19)

摘要

该数字钟电路采用单片机AT89S52实现,晶振频率采用6MHZ,显示部分采用了3个两位一体共阳极的LED数码管组成的动态显示电路,通过6个驱动器(即共阳极PNP 型的三极管)来驱动放大LED,用4个LED闪动的点来指示秒的节拍,其中字段由P0口控制。按键K0进行选位,K1、k2进行时间调整,可适用显示时,分,秒的信息。

利用我们现所学的知识,本着经济,可靠、体积小、功能扩展方便并具有先进性的基本原则,我们选用当今世界流行的已被广泛应用的器件AT89S52单片微型计算机为核心并根据其功能要求的特性来构成本方案的基本设计思想,利用单片机实现的电子钟具有编程灵活,便于电子钟功能的扩充,体积小、精度高、功能扩展极其方便,成本低。关键词:单片机、数码显示、动态显示、AT89S52

第一章绪论

1.1关于单片机的基础知识

单片机又称微控制器,其最基本的机构是将CPU和计算机外围功能单元,如存储器、I/O口、定时器/计数器、中断系统等集成在一个芯片上构成的。虽然单片机只是一个芯片,但无论从组成还是从功能上来看,它都具有了危机系统的特征。

目前,单片机正朝着高性能和多品种方向发展,但以MCS-51为主的8位单片机仍然占据着单片机的主导地位。单片机的应用日益广泛,如应用在仪器仪表、家用电器和专用装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。

单片机的应用从根本上改变了传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片机通过软件方法实现了。这种以软件取代硬件的并能提高系统性能的控制技术,称之为微控制技术。微控制技术标志着一种全新概念的出现,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展,日益完善,更加充实。

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

单片机具有体积小、可靠性高、功能强、灵活方便等优点,故可以广泛应用于国民经济的各个领域,对各行业的技术改造和产品更新换代起到了推动作用。利用单片机的智能性,可以方便的实现具有智能的电子钟设计。由于微处理器具有时钟振荡系统,利用系统借助微处理器的定时器/计数器可实现电子钟的功能。

本系统主要由AT89S52单片机以及数码管、按键等组成,实现有时钟显示及校准功能。用户可以通过按键校准时钟。由于本系统采用了数码管作为显示器,所以在夜间看时间更加方便。

1.2开发背景及电子钟原理

1.2.1 开发背景

电子定时技术在这十年来得到了迅猛发展,尤其在家电生活领域如太阳能、微波炉等,也在其它电子领域得到广泛应用,随着人们生活水平的提高,对产品的追求是使用更方便、更具时间化,电子定时技术正是一个重点的发展方向。为了提高对电子定时产品的开发效率以及生产厂家的检测手段等,重点推出该套定时电子钟,它犹如一台示波器,并且利用最先进的单片机技术,对定时信号进行全面的分析,显示详尽的数据,编码、解码信息,使开发人员对编、解码情况一目了然,以便设计人员提高工作效率,增加产品的稳定性、可靠性。

1.2.2 电子钟原理

电子钟的设计主要有硬件设计和软件设计两大部分:硬件部分主要有AT89S52的最小系统,显示部分、键盘部分,以及电源部分;软件设计则结合硬件,实现指标提出的各项要求,时、分、秒的显示则是利用AT89S52内部的定时器,在软件支持下,完成其精度主要取决于单片机本身的晶振频率精度,为了提高计时的准确性,采用6MHZ晶振。LED显示采用动态扫描方式实现,P0口输出段码数据,P2.1—P2.6口作扫描输出,P3.0、P3.1和P3.2接按钮开关。为了提供LED数码管的驱动电流,用三极管9012作电源驱动输出。

1.3方案比较

为了达到本次设计的要求,有众多方法可以选择,如:运用电子电路设计就是其中一种。采用大量门元件组成数字钟电路,但因条件有限,再加上其十分烦琐、焊接复杂、精度不高,达不到本次设计的目的,故不采用。为了达到实现LED显示器的数字显示,可采用动态显示法和静态显示法。由于静态显示法需要数据锁存器等硬件,接口又稍微复杂一些,而本身此次设计时钟显示只有六位,并且系统本身又没有其它什么繁重的处理任务,所以决定采用动态扫描法实现LED的显示。设计中单片机采用容易购买的AT89S52系列,单片机就具有足够的空余硬件资源实现其它的扩展功能,如果考虑到要采用电池供电的话,则可采用其它适合型号的单片机。在软件方面,通过程序的编制,可以很快的通过运用伟福软件进行修改,大大的提高了工作效率,程序灌输也很迅速。

从上面几种方案可以看出,利用单片机所设计的数字钟要比采用电子电路所设计的数字钟有明显的优越性。利用AT89S52单片机控制的硬件电路比较简单,软件方面程序也不复杂。因此制作原理简单,可在功能作用上要比电子电路设计的数字钟精确广泛,方便小巧又通俗易懂。在本次设计采用单片机设计中,动态扫描显示法又有静态扫描法无法比拟的优点,故本次设计采用了以AT89S52为核心,利用其外部电路和数码管的动态扫描的设计思想。

1.4 定时与中断系统

定时器一般指硬件定时器,其实质就是计数器,一般都具有定时兼计数的功能。本设计采用T0定时器工作方式1,它的最大计数量是65536,最大定时时间是131.072ms,本设计定时100ms。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

第二章系统硬件设计

2.1 电源电路图

图2.1电源电路图

电源电路是由整流桥,7805稳压块和前后滤波电容组成,整流桥接收变压器送来的低压交流信号,经整流后变成直流电,在经过100uf 的电解电容滤波后,送到7805稳压块后,输出稳定的正5V 电压,再次滤波后送到单片机内.有关计算如下:Uc=1.2U(U为变压器二次侧电压)UO=(1+R1/R2)Uoc+IqR2 (U0为输出电压)

2.2硬件电路设计框图

2.3数字钟原理图

数字钟原理图

3个按键电路 时钟电路 复位电路

片机

LED 显示器数码驱动

电路

6位LED 显示器电路

2.4单片机模块

(1)主控模块电路

主控模块电路如下图所示;单片机采用6M的晶振,EA引脚置高电平,复位电路中的开关采用按钮控制。

图2.3主控模块电路

2.5 AT89S52芯片简介

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器,使用Atmel 公司高密度非易失性存储器技术制造。

AT89S52具有以下几个特点:

·AT89S52与MCS-51系列的单片机在指令系统和引脚上完全兼容;

·8K字节在系统可编程Flash存储器;

·1000次擦写周期;

·全静态操作:0Hz-33MHz;

·三级加密程序存储器;

·32个可编程I/O口线;

·三个16位定时器/计数器;

·六个中断源;

·全双工UART串行通道;

·低功耗空闲和掉电模式;

·掉电后中断可唤醒;

·看门狗定时器;

·双数据指针;

·掉电标识符。

2.6 AT89S52功能描述AT89S52引脚图 DIP封装

AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K

在系统可编程Flash 存储器。使用Atmel 公司高密度非易

失性存储器技术制造,与工业80C51 产品指令和引脚完全兼

容。片上Flash允许程序存储器在系统可编程,亦适于常规

编器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程

Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵

活、超有效的解决方案。 AT89S52具有以下标准功能: 8k

字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,

2 个数据指针,三个16 位定时器/计数器,一个6向量2级中

断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流

(IIL)。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在系统编程用)

P1.6 MISO(在系统编程用)

P1.7 SCK(在系统编程用)

P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @ DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 INT O(外中断0);P3.3 INT1(外中断1);P3.4 TO(定时/计数器0);P3.5 T1(定时/计数器1);P3.6 WR(外部数据存储器写选通);P3.7 RD(外部数据存储器读选通);此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLA SH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次P SEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLA SH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用1 2V编程电压Vpp。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL 2:振荡器反相放大器的输出端。

2.7键盘控制电路

(1)单片机系统中为了实现对系统的控制和数据的输入,应用系统设置了键盘等输入设备,包括单片机复位用的复位键,功能转换及数字输入键等。

键盘[4]的最根本的功能就是当该按键按下后,单片机应用系统能够完成该按键所设定的功能。当按一下K0时,数字钟选位;当按一下k1,数字钟的对应位将加1;当按一下K2时,数字钟的对应位将减1。

图2.5键盘控制电路

2.8复位电路

复位电路[5]在到单片机系统中是必不可少的。所谓的复位就是将单片机重新启动,这时单片机内部的所有寄存器都回到初始状态。本例电路中对应的复位电路。

图2.6复位电路

对于AT89S52[6]单片机来说,它是高电平复位,也就是说只要将单片机的RESET 脚接高电平并保持一定的时间就可以实现单片机的复位。从上面的电路可以看出实现的是按键复位两个复位功能。在单片机工作的时候按下复位按钮,单片机的SERET脚接到高电平,电容C3马上放电完毕;松开该按钮后电容C3开始充电,经过一定的时间后电容充电饱和,8.2K的下拉电阻把RESET脚拉回到低电平状态,实现了单片机的复位。

2.9显示电路

(1)数码管显示电路

LED的驱动是有52单片机来完成的,单片机的P1口接数码管的七个段选端,位选端由P2.0 、P2.1、P2.2、P2.3、P2.4、P2.5来驱动。原理图所示电路中六位数码管都是共阳的,当单片机的P2.0 、P2.1、P2.2、P2.3、P2.4、P2.5引脚电平为“0”时,三极管导通,数码管为高电平驱动,通过程序控制可以使数码管显示。

2.9.1 LED共阳数码管简介

共阳极数码管中8个发光二极管的阳极(二极管正端)连接一起,即为共阳极接法,简称共阳数码管[10]。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输入端为低电平时,该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。公式为:R值=(U-Uled)/Iled (R值为限流电阻)

图2.8 共阳极7段数码管

第三章系统软件设计

3.1编程思路

本设计中的计时采用定时器T0中断完成,其中状态循环调用显示子程序。

显示子程序

数码管显示的数据存放在内存单元2A-2CH中,其中2AH存放秒数据,2BH存放分数据,2CH存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示时用十进制BCD码数据对应段码存放在ROM表中。显示时先取出2AH-2CH 每一地址中的数据,然后查处对应的显示用段码从P1口输出。P3口将对应的数码管选中,就能该地址单元的数据值。

定时器T0中断服务程序

定时器T0用于时间计时。定时溢出中断周期设为50ms,中断累计20次(即1s)时对秒进行加1操作。时间计数单元地址分别在2AH(s)、2BH(min)、2CH(h),28H单元存放“熄灭符”数据(#0AH)。在单元中采用十进制BCD码计数,满60进位。

中断程序

T1中断服务程序用于指示调整单元数字的亮闪,对应单元的显示数据换成“熄灭符”数据(#0AH)。这样在调整时间时,对应调整单元的显示数据就会间隔闪亮。

调用功能程序

调时功能程序的设计方法是:如果K1只按下1次,进入调秒状态;连续按下2次,进入调分状态;连续按下3次,进入调时状态。当进入调秒状态是,秒小于30,就清零;秒大于或等于30,就向分进1。进入调整时间状态,按K2进行+1。最后按K3确定。

定时/计数器的工作方式

设系统使用6MHz的晶振,定时器0工作在方式1,则10ms定时对应的定时器初值可由下式计算得到:

定时时间=(216—定时器0初值)×机器周期

定时器T0的计数初值

定时时间 10ms

计数值= ——————— = ————— =5000

机器周期时间 2us

计数初值= 65537- 5000 = 60537 = EC78H

3.2系统资源分配

1、数码管显示数据存放在2AH-2CH中,2AH显示秒,2BH显示分,2CH显示时。

2、将十进制码数据对应的段码存放在ROM中,显示时,取出2A-2CH的每一地址数据,然后查处相应的段码从P0口输出,P3口将选中的对应的数码管,就可以实现该地址单元数据。

3、T0中断

时间计数单元为2DH(秒)、2EH(分)、2FH(时),79H单元放“熄灭符”(#0AH),计数单元采用十进制BCD码计数,满60位,T0中断服务程序。

定时器T0设为50ms溢出中断,为秒计数用,定时器T1为调整时闪烁用,P1.0为调整按钮,P0为字符输出口,采用共阳显示器。

4、T1中断

用于指示调整单元数字的闪亮,在时间的调整状态下,按K2键+1,按K3键确定。

3.3编程流程图初始化程序框图:

初始化程序

设置堆栈指针设置中断状态

设置定时器0的工作方式,并赋予初值

设置时间初值对其他需要初始化的RAM 进行预置清各种标志进入主程序

3.4数字钟程序

;RAM分配表

;单元地址

;30H ;10毫秒计时

;31H ;0.5秒计时

;32H ;秒计数器

;33H ;分计数器

;34H ;f时计数器

;35H ;f选位计数器

;位地址;f用途

;00H ;f键已按下标志

;01H ;f秒节拍显示标志(兼被修改位闪动标志)

ORG 0000H

S0 BIT P3.0

S1 BIT P3.1

S2 BIT P3.2

LJMP STA

ORG 000BH

LJMP T0_SUV

STA: MOV SP,#6FH ;设置堆栈

MOV IE,#82H ;允许T0中断

MOV TMOD,#02H ;定时器方式2

MOV TH0,#06H ;定时时间500us

MOV TL0,#06H

MOV 30H,#14H ;10ms计时初值

MOV 31H,#32H ;0.5s计时初值

MOV 32H,#00H ;清秒计数器

MOV 33H,#00H ;清分计数器

MOV 34H,#12H ;清时计数器

MOV 35H,#03H ;置选位计数器为非修改状态

SETB TR0 ;启动定时器

MAIN: MOV A,P3 ;取键盘

ORL A,#11111000B ;屏蔽非键盘输入位

CJNE A,#0FFH,LOOP1 ;有键按下转LOOP1

SJMP LOOP2 ;无键按下,则跳过

LOOP1: JB 00H,LOOP3 ;有键已按下标志,则跳过SETB 00H ;无键已按下标志置标志后查键

JB S0,LOOP4 ;不是选位键转加1键

LJMP KEY0 ;是选位键按下转该键程序LOOP4: JB S1,LOOP5 ;不是选位键转减1键

LJMP KEY1 ;是加1键按下转该键程序LOOP5: JB S2,LOOP2

LJMP KEY2 ;是减1键按下转该键程序

LOOP2: CLR 00H ;无键按下清键已按下标志LOOP3: MOV DPTR,#TABLE ;置7段码表格首址

MOV A,34H ;取时的高位显示

SW AP A

ANL A,#0FH

CJNE A,#00H,AA

MOV A,#0A0H

AA: MOVC A,@A+DPTR

MOV C,01H ;秒节拍显示处理

MOV ACC.7,C

MOV P1,A

MOV A,35H ;如修改时单位,作闪动处理

CJNE A,#02H,LOOP12 ;选位计数器未选中时单位跳过

JNB 01H,LOOP12 ;无闪动标志跳过

ORL P1,#7FH ;清显示

LOOP12: CLR P2.0 ;显示时十位

LCALL DEL Y ;延时5ms

ORL P2,#0FFH ;关显示

MOV A,34H ;取时的低位显示

ANL A,#0FH

MOVC A,@A+DPTR

MOV C,01H

MOV ACC.7,C

MOV P1,A

MOV A,35H

CJNE A,#02H,LOOP13

JNB 01H,LOOP13

ORL P1,#7FH

LOOP13: CLR P2.1 ; 显示时个位

LCALL DELY

ORL P2,#0FFH ;关显示

MOV A,33H ;取分的高位显示

SW Ap A

ANL A,#0FH

MOVC A,@A+DPTR ;取分高位段码

MOV C,01H ;加闪信号

MOV ACC.7,C

MOV P1,A

MOV A,35H ;判断分位上否被选位

CJNE A,#01H,LOOP14 ;分位未被选转

JNB 01H,LOOP14 ;无闪动标志转

ORL P1,#7FH ;有闪动标志关显示

LOOP14: CLR P2.2 ;显示分十位

LCALL DELY

ORL P2,#0FFH ;关显示

MOV A,33H ;取分个位显示

ANL A,#0FH

MOVC A,@A+DPTR

MOV C,01H ;加闪信号

MOV ACC.7,C

MOV P1,A ;送分个位段码

MOV A,35H

CJNE A,#01H,LOOP15 ;分位未被选转

JNB 01H,LOOP15 ;无闪动标志转

ORL P1,#7FH ;有闪动标志关显示

LOOP15: CLR P2.3 ;显示分个位

LCALL DELY

ORL P2,#0FFH

MOV A,32H ;取秒十位显示

SW AP A

ANL A,#0FH

MOVC A,@A+DPTR

MOV C,01H ;加闪信号

MOV ACC.7,C

MOV P1,A ;送秒十位段码

MOV A,35H

CJNE A,#00H,LOOP16 ;秒位未被选转

JNB 01H,LOOP16 ;无闪动标志转

ORL P1,#7FH ;有闪动标志关显示

LOOP16: CLR P2.4 ;显示秒十位

LCALL DELY

ORL P3,#0FH ;关显示

ORL P2,#0FFH ;关显示位码

MOV A,32H ;取秒个位显示

ANL A,#0FH

MOVC A,@A+DPTR

MOV C,01H ;加闪信号

MOV ACC.7,C

MOV P1,A ;送秒个位段码

MOV A,35H

CJNE A,#00H,LOOP17 ;秒位未被选转

JNB 01H,LOOP17 ;无闪动标志转

ORL P1,#7FH ;有闪动标志关显示

LOOP17: CLR P2.5 ;显示秒个位

ORL P3,#0FH ;关显示

LCALL DEL Y

ORL P2,#0FFH ;关显示位码

LJMP MAIN

KEY0 : INC 35H ;选位键程序

MOV A,35H

CJNE A,#04H,LOOP6 ;将选位计数器值限制在0~3之内

MOV 35H,#00H

LOOP6: LJMP LOOP3 ;返回显示程序

KEY1: MOV A,35H ;加1键程序

ADD A,#32H ;得到被修改单元地址MOV R0,A

CJNE A,#32H,FXG1 ;不是修改秒转分修改

MOV A,@R0

MOV 32H,#00H ;秒单元清零

SUBB A,#30 ;当前秒数大于30秒吗?

JNC FXG ;大于30秒清零转分加1

LJMP LOOP3 ;小于30秒清零转显示FXG: MOV R0,#33h

FXG1: MOV A,@R0

ADD A,#01H ;将该单元加1

DA A

MOV @R0,A

MOV R1,35H

CJNE R1,#01H,LOOP7

CJNE A,#60H,LOOP8 ;是修改分,满六十则清零

MOV @R0,#00H

SJMP LOOP8

LOOP7: CJNE R1,#02H,LOOP8 ;非修改状态不作处理

CJNE A,#24H,LOOP8 ;是修改时,满24则清零

MOV @R0,#00H

LOOP8: LJMP LOOP3

NOP

KEY2: MOV A,35H ;减1键程序

ADD A,#32H ;得到被修改单元地址

MOV R0,A

CJNE A,#32H,FXG2 ;不是修改秒转分修改

MOV A,@R0

MOV 32H,#00H ;秒单元清零

SUBB A,#30 ;当前秒数大于30秒吗?

JNC FXG ;大于30秒清零转分加1

LJMP LOOP3 ;小于30秒清零转显示FXG2: MOV A,@R0

ADD A,#99H ;将该单元减1

DA A

MOV @R0,A

CJNE A,#99H,LOOP9 ;结果不为负,则不作处理

MOV R1,35H

CJNE R1,#01H,LOOP10

MOV @R0,#59H ;结果为负,是修改分则置成59分

SJMP LOOP9

LOOP10: CJNE R1,#02H,LOOP9 ;非修改状态不作处理

MOV @R0,#23H ;结果为负,是修改时则置成23时LOOP9 : LJMP LOOP3 ;只要有修改就将秒清零

T0_SUV: PUSH ACC ;T0中断服务程序(500us)PUSH PSW

DJNZ 30H,LOOP11 ;10ms计时

MOV 30H,#14H

DJNZ 31H,LOOP11 ;0.5s计时

MOV 31H,#32H

CPL 01H ;秒节拍显示取反

JNB 01H,LOOP11 ;未到1秒跳过

MOV A,32H ;秒加1

ADD A,#01H

DA A

MOV 32H,A

CJNE A,#60H,LOOP11

MOV 32H,#00H

MOV A,33H ;分加1

ADD A,#01H

DA A

MOV 33H,A

CJNE A,#60H,LOOP11

MOV 33H,#00H

MOV A,34H ;时加1

ADD A,#01H

DA A

MOV 34H,A

CJNE A,#24H,LOOP11

MOV 34H,#00H

LOOP11: POP PSW

POP ACC

RETI

DEL Y: MOV R2,#02H ;延时5ms

DEL Y1: MOV R3,#0F9H

DJNZ R3,$

DJNZ R2,DEL Y1

RET

TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;7段码字形表

DB 92H,82H,0F8H,80H,90H,0FFH

END

第四章单片机应用系统的调试

4.1.硬件调试

硬件调试是利用开发系统、基本测试仪器(万用表、示波器)等,检查用户系统硬件中存在的故障。

(1)逻辑错误样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的,包括错线、开路和短路等几种,其中短路是最常见的故障。

(2)元器件失效元器件失效的原因有两方面,一是器件本身已经损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容﹑二极管的极性错误或集成块安装方向错误等。

(3)可靠性差引起系统不可靠的因素很多,如接插件接触不良会造成系统时好时坏,内部和外部的干扰﹑电源纹波系数过大或器件负载过大等造成逻辑电平不稳定,另外走线和布局不合理等也会引起系统的可靠性差。

(4)电源故障若样机中存在电源故障,则加电后将造成器件损坏。电源故障包括电压值不符合设计要求﹑电源引出线和插座不对应﹑电源功率不足和负载能力差等。

硬件调试可分为静态调试与动态调试两步进行:

静态调试静态调试是在用户系统未工作时的一种调试。步骤如下:

第一步:目测。检查外部的各种元件或者是电路是否有断点。

第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与接地线之间是否有短路现象。

第三步:加电检测。给电路板加电,检测所有的插座或者是硬件的电源是否符合要求的值。

第四步:联机检查。因为只有单片机开发系统才能完成对用户系统的调试。

动态调试动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存

单片机课程设计-电子钟

中北大学 单片机课程设计说明书 数字钟设计 1 设计任务与要求 (1)

1.1设计任务 (1) 1.2设计要求 (1) 2单片机简介 (2) 2.1单片机的发展历程 (2) 3系统设计思路和方案 (3) 3.1系统总体方案 (3) 3.2硬件简介 (3) 3.2.1硬件选择 (3) 3.2.2 51单片机的构成 (4) 3.2.3 STC89C52RC引脚功能说明 (5) 3.2.4 LED简介 (6) 3.3 Keil调试 (7) 4、系统实物图 (9) 5、课程设计体会 (9) 参考文献 (10) 附录A (11) 附录B (13) 附录C (14)

1 设计任务与要求 1.1设计任务 本课题应完成以下设计内容: 1)硬件设计 设计数字钟的电路原理图,用PROTEL绘制硬件电路。制作实物。 2)软件设计 (1)时、分、秒的设置及显示; (2)画出程序框图; (3)调试与分析。用PROTEUS仿真。 3)课程设计说明书 1.2设计要求 本课程设计的基本要求是使学生全面掌握单片机控制系统设计的基本理论,熟悉掌握MCS-51 系列单片机的编程方法,具体要求:本例利用AT89C51的定时器和6位7段数码管,设计一个电子时钟。显示格式为“XX XX XX”,由左向右分别是:时、分、秒。

2单片机简介 2.1单片机的发展历程 单片机是微型计算机的一个重要分支,也是一种非常活跃和颇具生命力的机种,特别适用于工业控制领域。1971年微处理器研制成功不久,就出现了单片机,但最早的单片机是1位的,处理能力有限。单片机的发展共分四个阶段:第一阶段是初级阶段,功能非常简单;第二阶段是低性能阶段, 16位定时器/计数器,片内ROM、RAM容量加大,直到现在仍被广泛应用,是目前应用数量较多的单片机。、32位单片机推出阶段,以满足不同的用户需要。纵观单片机几十年的发展历程,单片机的今后发展方向将向多功能、高性能、高速度、低功耗、低价格、外围电路内装化以及内存储器容量增加和FLASH存储器化方向发展。 2.2实用价值与理论意义 在单片机模块里比较常见,数字时钟是一种用0数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更高的使用寿命,新词得到了广泛的应用。 数字时钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室等公用场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。因此研究数字时钟及扩大其应用有着非常现实的意义。

单片机课程设计代码

陈新 2014/7/21 17:32:03 QQ可以找到历史记录的 陈新 17:33:15 无痕的回忆 17:01:52 LED_LOOP: MOV R1, #251 ;1s的显示延时(好奇怪,居然不准) LED_LOOP_1: MOV R4, #14 ;使用了寄存器R1,R4(估计可以使用堆栈临时释放) LED_LOOP_2: LCALL DISPLAY_MOVE DJNZ R4, LED_LOOP_2 DJNZ R1, LED_LOOP_1 RET 无痕的回忆 23:10:36 ORG 0000H AJMP MAIN ORG 0030H HC595_SCK BIT P0.4 HC595_RCK BIT P0.5 HC595_RST BIT P0.6 HC595_DAT BIT P0.7 MAIN: MOV A, #00H MOV P0, A CLR HC595_RST LOOP0: MOV R0, #0 LOOP1: MOV R1, #100 LOOP2: MOV R4, #10 LOOP3: LCALL DISPLAY DJNZ R4, LOOP3 DJNZ R1, LOOP2 INC R0 LJMP LOOP1 DELEY0: MOV R6, #4 ;1ms延时的子程序 DELEY1: MOV R7, #123 DELEY2: DJNZ R7, DELEY2 DJNZ R6, DELEY1 NOP RET

DISPLAY: MOV A, R0 MOV B, #100 DIV AB MOV B, #10 DIV AB ;MOV A, #0 LCALL SHOW_NUM MOV A, P0 ANL A, #0F0H ORL A, #1 MOV P0, A ;延时LCALL DELEY0 ;延时LCALL DELEY0 MOV A, R0 ;有问题MOV B, #100 DIV AB ;MOV A, #7 LCALL SHOW_NUM MOV A, P0 ANL A, #0F0H ORL A, #2 MOV P0, A ;延时LCALL DELEY0 ;延时LCALL DELEY0 MOV A, R0 MOV B, #100 DIV AB XCH A, B MOV B, #10 DIV AB ;MOV A, #7 LCALL SHOW_NUM MOV A, P0 ANL A, #0F0H ORL A, #4 MOV P0, A LCALL DELEY0 ;延时LCALL DELEY0 ;延时 MOV A, R0 MOV B, #10 DIV AB

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

单片机课程设计--简易电子钟.doc

单片机课程设计报告设计课题:简易电子时钟的设计 专业班级:07通信1班 学生姓名:黎捐 学号:0710618134 指导教师:曾繁政 设计时间:2010.11.5—2010.12.20

一、设计任务与要求 (1)设计任务: 利用单片机设计并制作简易的电子时钟,电路组成框图如图所示。 (2)(2) 设计要求:1)制作完成简易的电子时钟,时间可调整。 2)有闹钟功能。 二、方案设计与论证 简易电子时钟电路系统由主体电路和扩展功能电路两主题组成,总体功能原理是以STC89C52单片机为主要的控制核心,通过外接4个独立式键盘作为控制信号源,八个七段数码管作为显示器件,蜂鸣器作为定时器件,单片机实时的去执行相应的功能。在数码管上显示出来,此时通过不同的按键来观看和调节各种数据。CPU 控制原理图如图1所示。 图1. CPU 控制原理图 三、硬件系统的设计 3.1 STC89C52控制模块 STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O )端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。 MCS-52单片机内部结构 8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM): 8052内部有128个8位用户数据存储单元和128 个专用寄存器单元,它们是统一编 时间显示显示 主控器(51单片机) 时间 调整 声音报 时 (选做)

最新单片机课程设计心得(精选多篇)

单片机课程设计心得(精选多篇) 第一篇:单片机课程设计心得 单片机课程设计实训体会 两周的单片机课程设计实训 ,真是让我们受益匪浅,学到了很多东西,不管怎么样,先感谢学校给我的这么多机会.真正的学到了东西. 此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力.因为以前做过关于焊接的电工实习,所以对于我们机械设计专业的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提.其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了. 系统以at89s51 为核心部件,利用软件编程,通过键盘控制和液晶显示实现了秒表的功能,能实现本设计题目的基本要求和发挥部分。尽量做到硬件电路简单稳定,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。

我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果.对于硬件在编程过程中pcb板的接触又是一个头疼的问题,在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在pcb板的重新焊接上,最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期两周的单片机课程设计没有浪费,我们从中学到了很多知识.,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的,他引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以说老师是功不可抹的. 由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。 踉踉跄跄地忙碌了两周,我的单片机课程设计也终将告一段落。设计实物也基本达到预期的效果,但由于能力和时间的关系,总是觉得有很多不尽人意的地方,譬如功能不全、外观粗糙……数不胜数。但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。

单片机电子时钟课程设计报告

目录 1、引言·3 2、总体设计·4 3、详细设计·5 3.1硬件设计·5 3.2软件设计·10 4、实验结果分析·26 5、心得体会·27 6、参考文献·27

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 关键词:单片机 AT89C51

1.引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机课程设计--数字钟

单片机课程设计--数字钟 一、设计目的及意义 (1)巩固、加深和扩大51系列单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力; (3)对课题设计方案的分析、选择、比较、熟悉用51单片机做系统开发、研制的过程,软硬件设计的方法、内容及步骤 二、原理图设计中简要说明设计目的 (1)功能:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。 (2)原理图中所使用的元器件功能在图中的作用 1.主要元件AT89C51 P3.2 /INT0(外部中断0) 定时器/计数器0溢出中断 2.LED及按键开关 用于时间的显示和设定 (3)各器件的工作过程及顺序 计时状态,AT89C51通过P1口持续向LED发送信号,使LED扫描显示刚前时分秒,当出现定时器/计数器0溢出中断时,时间加多1秒,AT89C51从P1口向LED输出新的时间;只按住SET UP键时,进入外部中断0,时间计数停止,通过点击按键H,M,S对时分秒进行调整,新的时间值送给了计时程序,松开SET UP键退出中断,回到计时状态; 按住SET UP键和ALARM键时,进入外部中断0,时间计数停止,通过点击按键H,M对时分进行闹钟定时,AT89C51记忆时分值,退出时先松开SET UP键再松开ALARM; 闹铃:当时间值和设定闹铃值一样时,进行闹铃一分钟。

(3)流程图 Y Y 按下设定键 N (4)程序清单 #include #define uint unsigned int #define uchar unsigned char sbit wela1=P2^0; sbit wela2=P2^1; sbit wela3=P2^2; sbit wela4=P2^3; sbit wela5=P2^4; sbit wela6=P2^5; sbit dp= P1^7; sbit c0= P0^0; sbit c1= P0^1; sbit c2= P0^2; sbit c3= P0^3; sbit c4= P0^4; sbit c5= P0^5; 定时器溢出中断0 LED 扫描显示 初始设定 时间加1秒 外部中断0 按下闹钟? 时间调整 闹钟定时 时间相同? 闹铃

单片机课程设计完整版样本

课程设计( 论文) 课程名称单片机 题目名称简易密码锁的设计学院高等技术学院 专业班级高1 1 0 9 学号3869 学生姓名刘欢 指导教师胡立强 11月28 日 目录

一,任务目的 (3) 二,任务要求 (3) 三,电路与元器件 (4) 四,程序设计 (5) 五,程序运行测试 (6) 六,任务小结 (7) 七,心得体会 (8) 八,参考文献 (9) 1.任务目的

经过对具有四个按键输入和一个数码管显示的简易密码锁的设计与制作, 让读者理解C语言中数组的基本概念和应用技术, 并初步了解单片机与键盘和LED数码管的接口电路设计及编程控制方法。 2.任务要求 在一些智能门控管理系统, 需要输入正确的密码才能开锁。基于单片机控制的密码锁硬件电路包括三部分: 按键、数码显示和电控开锁驱动电路, 三者的对应关系如图表3.16所示。 表3.16 简易密码锁状态 简易密码锁的基本功能如下: 4个按键, 分别代表数字0,1,2,3: 密码在程序中事先设定, 为0-3之间的一个数字; 上电复位后, 密码锁初始状态为关闭, 密码管显示符号”—”; 当按下数字键后, 若与事先设定的密码相同, 则数码管显示字符”P”, 打开锁, 3秒后恢复锁定状态, 等待下一次密码的输入, 否则显示字符”E”持续3秒, 保持锁定状态并等待下次输入。 3.电路与元器件 根据任务要求, 用一位LED数码管作为显示器件, 显示密码锁的状态信息, 数码管采用静态连接方式; 4个按键连接到P0口的低四位

P0.0-P0.3引脚, 设P0.0连接数字”0”按键、P0.1连接数字”1”按键, 依次类推; 锁的开、关电路用P3.0控制的一个发光二极管代替, 发光二极管点亮表示锁打开, 熄灭表示锁定。根据以上分析, 采用如图3.21所示的连接电路。 图3.21 简易密码锁电路 简易密码锁电路所需元器件清单如表3.17所示。 元器件名称参数数量元器件名 称 参数数量 插座DIP40 1 电阻103 1 单片机AT89SC51 1 电解电容22UF 1

单片机课程设计数字电子钟[修改好的]

单片机技术课程设计说明书数字电子钟 院、部:电气与信息工程学院 学生姓名:郭红满 指导教师:王韧职称副教授 专业:通信工程 班级:1102 完成时间:2013-12-20

摘要 电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键K1、K2、K3和K4键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。 关键词电子钟;AT89S52;硬件设计;软件设计

ABSTRACT Clock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons K1, K2, K3 and K4 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value. Key words Electronic clock;AT89S52;Hardware Design;Software Design

单片机课程设计---简易电子琴设计

单片机 课程设计 课程设计名称: 专业班级: 学生姓名: 学号: 指导教师: 课程设计时间:

一、需求分析 1.1课题背景 随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。电子科技也在不断的前进,电子技术正在以不同的方式改变着我们的生活,电子琴设计也是希望给人们带来一些生活的乐趣。电子琴可以应用在很多方面,比如一些简易的玩具上或手机上。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 1.2 课题设计的任务与主要内容 本文的主要内容是用AT89C51单片机为核心控制元件,设计一个简单的电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。定时器按设置的定时参数产生中断,由于定时参数不同,就会发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同音调。 先根据要求设计硬件电路和编写相应的程序,然后进行仿真调试,最后细心焊接硬件电路图,将程序烤入芯片中,最终达到设计目的。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

单片机课程设计电子钟汇编语言

ORG 0000H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV R0,#00H MOV R1,#00H CLR P3.0 CLR P3.1 UU: MOV TMOD ,#00H MOV TH0,#00H MOV TL0,#00H CLR TR0 MM: MOV A,40H MOV 50H,#11111110B MOV P2,50H MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P0,A LCALL YY MOV A,50H RL A MOV 50H,A MM1: MOV P2,50H MOV DPTR,#TAB MOV A,41H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM2: MOV P2,50H MOV DPTR,#TAB MOV A,42H

MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM3: MOV P2,50H MOV DPTR,#TAB MOV A,43H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM4: MOV P2,50H MOV DPTR,#TAB MOV A,44H MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM5:MOV P2,50H MOV DPTR,#TAB MOV A,45H ADD A ,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM6: MOV P2,50H MOV DPTR,#TAB MOV A,46H

单片机课程设计-电脑时钟

ORG 0000H LJMP MAIN ORG 000BH LJMP TIM01 ;0.1s T0中断 ORG 0300H MAIN: ACALL INIT ;调用初始化函数 LOOP: LCALL KEYIN ;键盘输入 AJMP LOOP INIT: MOV 7FH,#7EH ;7FH存当前输入位置79-7EH MOV 79H,#0 ;初始化显示 MOV 7AH,#0 MOV 7BH,#0 MOV 7CH,#0 MOV 7DH,#0 MOV 7EH,#0 MOV 70H,#0 ;初始化初始时间0h0m0s MOV 71H,#0 MOV 72H,#0 MOV 73H,#0 SETB 20H.0 ;20H.0存储当前输入状态,闹钟输入,或初始值输入KEYIN: LCALL KEY ;键盘输入函数,循环对79-7EH输入,或是命令输入CLR C PUSH ACC ;入栈,保存A值 SUBB A,#10 ;和10比较 JNC CONTRL ;大于等于10,命令键 POP ACC ;A出栈数字键,放到显示缓存 MOV R0,7FH ;A放到7FH内容指向地址处 MOV @R0,A MOV A,7FH ;是否出了79H-7EH范围 CJNE A,#79H,RU ;出范围,循环到7EH MOV 7FH,#7FH RET RU: DEC 7FH ;范围内自减1 RET CONTRL: POP ACC ;控制键,执行相应控制操作 CJNE A,#0DH,N0C LCALL KJUD ;D 控制计时开始,KJUD判断是否在有效时间范围内 JNC N0 ;控制操作完成退出 LCALL TIMINIT ;定时器及相关内容初始化 N0C: CJNE A,#0CH,N0B ;C 暂停开始键

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

单片机数字时钟课程设计资料

单片机课程设计 数字时钟设计 学院:机电工程学院 专业:农业电气化与自动化 班级:10级农电一班 姓名: 学号: 指导教师: 2013年1月5日

课程设计(论文)任务书 题目:数字电子钟 任务与要求: 1. 设计数字时钟,能显示时、分、秒; 2. 整点采用声音报时功能; 3.按键调时、分 时间: 2012 年 12 年28 日至 2013 年 1月 5 日共 9 天 摘要 近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正

在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。 本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245译码器的工作原理和与,LED连接的方法。 本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、BCD-锁存/7段译码/驱动器74LS245等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及 实用方法。通过它可以进一步学习与掌握单片机原理与使用方法。 关键词:单片机 AT89C51 共阴极LED数码显示器 74LS245译码器

单片机课程设计 电子日历时钟显示器设计

目录 1.题目设计要求 (1) 2.开发平台简介 (1) 3.系统硬件设计 (2) 3.1设计原理 (2) 3.2器件的功能与作用 (2) 3.2.1 MCS51单片机AT89C51 (2) 3.2.2复位电路 (3) 3.2.3晶振电路 (4) 3.2.4 DS1302时钟模块 (4) 3.2.5 引脚功能及结构 (4) 3.2.6 DS1302的控制字节 (5) 3.2.7 数据输入输出(I/O) (5) 3.2.8 DS1302的寄存器 (6) 3.2.9 液晶显示LCD1602 (6) 3.2.10 串行时钟日历片DS1302 (8) 4.系统软件设计 (10) 4.1程序流程 (10) 4.2程序代码 (10) 5.系统仿真调试 (20) 5.1仿真原理图设计 (20) 5.2仿真运行过程 (21) 5.3仿真运行结果 (21) 6.总结 (21) 7.参考文献 (22)

1.题目设计要求 通过串行日历时钟芯片DS1302生成当前日期和是时间,通过IO口传输到AT89c52芯片中,然后再将AT89c52接收到的数据输出到LCD上。要求LCD上显示的日期和时间与当前系统时间保持一致。 2.开发平台简介 2.1系统仿真平台Proteus Proteus软件是由英国Labcenter Electronics公司开发的EDA工具软件,已有近20年的历史,在全球得到了广泛应用。Proteus软件的功能强大,它集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计,还能够对微处理器进行设计和仿真,并且功能齐全,界面多彩。和我们手头其他的电路设计仿真软件,他最大的不同即它的功能不是单一的。另外,它独特的单片机仿真功能是任何其他仿真软件都不具备的。 2.2软件开发平台Keil C Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

单片机课程设计——基于C51简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

单片机电子时钟课程设计设计报告

单片机电子时钟设计 一、作品功能介绍 该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。 功能介绍: (1)上电以后自动进入计时状态,起始于00:00:00。 (2)设计键盘调整时间,完成时间设计,并设置闹钟。 (3)定时时间为1/100秒,可采用定时器实现。 (4)采用LED数码管显示,时、分,秒采用数字显示。 (5)采用24小时制,具有方便的时间调校功能。 (6)具有时钟和秒表的切换功能。 使用方法: 开机后时钟在00:00:00起开始计时。 (1)长按P3.2进入调分状态:分单元闪烁,按P3.2加1,按P3.3减1.再长按P3.2进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。 (2)(2)按P3.3进入设定闹时状态: 12:00: ,可进行分设定,按P3.4分加1,再按P3.2为时调整,按P3.4时加1,按P3.3调闹钟结束.在闹铃时可按P3.2停闹,不按闹铃1分钟。 (3)按下P3.4进入秒表状态:再按P3.4秒表又启动,按P3.4暂停,再按P3.4秒表清零,按P3.4退出秒表回到时钟状态。 二、电路原理图 如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。

电子时钟原理图 各个模块设计 1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机, 它完全兼容传统的8051,8031的指令系统,他的运行速度 要比8051快最高支持达33MHz的晶体震荡器,在此系统中 使用12MHz的晶振。 AT89S52具有以下标准功能: 8k字节Flash,256字节 RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三 个16 位定时器/计数器,一个6向量2级中断结构,全双 工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模 式下,CPU停止工作,允许RAM、定时器/计数器、串口、中 断继续工作。掉电保护方式下,RAM内容被保存,振荡器被

相关文档
相关文档 最新文档