来源:m.fanwen118.com时间:2023.3.6
单片机实训报告
实验题目: 电子时钟设计
姓 名: 孙 志 敏
学 号: 2008043535
指导老师: 王 宇 松
实验地点: 福煤实验楼B405
20xx年 6 月 5 日
一、绪论
1.1电子时钟简介
19xx年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开
始迅速发展起来。但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越
来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?
这就要求人们不断设计出新型时钟。现代的电子时钟是基于单片机的一种计时工具,采用延
时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六
十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的
工具。
1.2电子时钟的基本特点
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英
表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电
子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,
减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选
的灵活性好。
1.3电子时钟的原理
该电子时钟由89C51,BUTTON,八段数码管等构成,采用晶振电路作为驱动电路,
由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为
一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又
松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按
键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,
同样每按一次小时加一。
二、单片机简介
单片机全称为单片机微型计算机(Single Chip Microsoftcomputer)。从应用领域来看,
单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。单片
机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
2.1单片机的特点
1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程
序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。
2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别
是单片机具有很强的位处理能力。
3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际
引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令
来设置或由机器状态来区分。
4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。
AT89C51的单片机结构及原理。
AT89C51单片机引脚图如下:
AT89C51引脚图
MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下: VCC:+5V电源。
VSS:接地。
RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚 备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。XTAL1和XTAL2管脚应接晶振电路,电路如图1所示:
图(1)
复位电路如图2所示:
三、 Protues简介
Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。④具有强大的原理图绘制功能。总之,该软件
是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。
3.1工作界面
四、 数字钟的基本原理
4.1实现功能
采用51单片机系列AT89C51,对时钟进行控制
单片机有单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、 存储器和I/O接口电路等。因此,单片机值需要和适当的软件及外部设备结合,便可成为一个单片机控制系统。
1)开机运行时,显示00:00:00的时间开始计时;
2)首先按下SB开关,P3.5控制“秒”的调整,每按一次加1秒;
3)P3.3控制“分”的调整,每按一次加1分;
4)P3.2控制“时”的调整,每按一次加1小时;
4.2系统工作原理
工作原理:
数字时钟是一个将“时”,“分”,“秒”显示与人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字时钟电路主要由显示器“时”,“分”,“秒”和单片机。8个数码管的段选、位选分别接到单片机的P1、P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时钟脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过八段显示器显示。校对电路用来对“”“”“”显示进行校对调整。
五、数字钟的硬件、软件设计
电路原理图:
电脑钟的protues原理图如下
5.1对原理图分析
使用At89C51控制,其中使用p2做输出,p3口做控制信号,使用外部中断1作调节小时,外部中断0作调节分钟,定时器1在计数模式作调节秒,定时器1在定时模式用于计数,而p0.0做总控开关的入口。
其中黄灯显示是否在调节状态,当亮时为可调,当灭时不可调。
基本原理如下
软时钟是利用单片机内部的定时器\计数器来实现的,它的处理过程如下:首先设定单片机内部的一个定时器\计数器工作于定时方式,对机器周期计数形成基准时间,然后用另一个定时器\计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。然后通过数码管把它们的内容在相应位置显示出来即可。
数码管显示一般采用动态显示方式。动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳定。译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。
在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。另外,为了使用方便,设计了简单的按键,可以通过按键实现时、分的调整,这样在主程序中就加入了键盘设置子程序。
时制式为24小时制。
1采用LED数码管显示时、分,秒采用数字显示。
2具有方便的时间调校功能。
3计时稳定度高,可精确校正计时精度。
2 总体方案设计
5.2实现时钟计时的基本方法
利用C51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,
使用T0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs =50000μs
X=15536→0011110010110000→3CB0H
(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
5.3数字钟的软件设计
系统软件设计流程图:
LJMP MAIN ORG 0003H LJMP SHI ORG 000BH LJMP JISHI ORG 0013H LJMP FEN ORG 001BH LJMP MIAO ORG 0030H
MAIN:MOV TMOD ,#01H MOV R4,#20 MOV TH1,#255 MOV TL1,#255 MOV TH0, #3CH MOV TL0,#0B0H CLR EX0 CLR EX1
SETB ET0 CLR ET1 SETB EA SETB TR0 SETB TR1 SETB IT0 SETB IT1 MOV R0,#00H MOV R1,#00H MOV R5,#00H SETB P0.1
FANHUI:MOV DPTR,#TAB MOV A,R0 MOV B,#10 DIV AB
MOVC A,@A+DPTR MOV P2, A MOV P1,#02H LCALL DELAY MOV P2,#0FFH MOV A,B
MOVC A,@A+DPTR MOV P2,A MOV P1,#01H LCALL DELAY MOV P2,#0FFH MOV P1,#04H MOV P2, #0BFH LCALL DELAY MOV P2,#0FFH MOV A,R1 MOV B,#10 DIV AB
MOV P1,#10H MOVC A,@A+DPTR MOV P2, A LCALL DELAY MOV P2,#0FFH MOV P1,#08H MOV A,B
MOVC A,@A+DPTR MOV P2,A LCALL DELAY MOV P2,#0FFH
MOV P1,#20H MOV P2,#0BFH LCALL DELAY MOV P2,#0FFH JNB P0.0,ZK MOV P1,#80H MOV A,R5 MOV B,#10 DIV AB
MOVC A,@A+DPTR MOV P2, A LCALL DELAY MOV P2,#0FFH MOV P1,#40H MOV A,B
MOVC A,@A+DPTR MOV P2,A LCALL DELAY MOV P2,#0FFH JNB P0.0,ZK LJMP FANHUI ZK: CPL ET1 CPL EX0 CPL EX1 CPL ET0 CPL P0.1 LJMP FANHUI JISHI:MOV TH0,#3CH MOV TL0,#0B0H DJNZ R4,LOOP MOV R4,#20 INC R0
CJNE R0,#60 ,LOOP MOV R0,#00H INC R1
CJNE R1,#60, LOOP MOV R1,#00H INC R5
CJNE R5,#24,LOOP MOV R5,#00H LOOP: RETI DELAY:MOV R2,#10 ZJ: MOV R3,20 DJNZ R3,$
DJNZ R2,ZJ
RET
RET
ORG 0200H
MIAO:CLR EA
INC R0
SETB EA
RETI
FEN:CLR EA
INC R1
SETB EA
RETI
SHI:CLR EA
INC R5
SETB EA
RETI
ORG 0300H
TAB:DB 0C0H,0F9H,0A4H, 0B0H,99H,92H,82H,0F8H,80H,90H
END
5.4程序的调试过程
在PROTEUS中设计硬件
PROTEUS软件使用过程如下:
1)选择元器件 2)放置元器件 3)连线 4)添加程序 5)运行仿真
2、在WAVE中编写程序,编译、连接形成HEX文件。
3、在PROTEUS中把HEX文件加载到单片机芯片上。即protues原理图中。
4、运行仿真看结果如图:
5.5 元器件清单
元器件清单如下
六、 心得体会
为期一周的单片机课程设计让我们受益匪浅.此次课程设计软件与硬件相结合,考察了我们的焊接水平与编程能力.对于我们应用电子技术的学生而言焊接是不成问题,也很顺利;可到了编程时就出现了很大的障碍,先开始的显示时钟还算顺利,下面的报警部分就花费了相当长的时间,还有加上报警时的音乐也是我们到图书馆里查阅资料由汇编转化成C语言得来的.本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提.单片机是我们上学期开设的课程,所以很多专业知识也都忘记了.不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了.其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了.
我们将各个部分的程序编好后怎么都连不起来,出不了预期的效果.对于硬件在编程过程中PCB板的接触又是一个头疼的问题,在进行编译的时候,数码显示管上什么都没有,按一下旁边与之相连的元器件时就有显示了,所以也花费了好多时间在PCB板的重新焊接上.对于软件我们在时钟完成后就对其加入了报警系统,可加了之后发现程序乱了,以前的时钟也不可以控制
了.经过反复研究,发现接地接错了位置,导致了用来报警的红灯跟绿灯根本不亮,然后就将接地线重新焊接了一下,功夫不负有心人,红灯亮了,配合编好的程序,用纸板挡住了发射管与接收管之间的信号传输,数码显示管出现闪烁的效果,并且没信号的时候绿灯亮,有信号的时候红灯就亮了,这个现象让我们喜出望外.经过修改时钟程序和报警系统都被使用上了,可更大的难题就是如何让它报警?这困扰了我们,数码显示管上终于有了闪烁的效果,可报警声还没加的上去.老师的要求是除了蜂鸣器上的报警声再加一段音乐.翻阅了图书馆里的书籍,查出来的音乐程序都是用汇编编的,要将此程序放到主程序中就必须将汇编程序改编成C语言程序.这再次困扰了我们,虽然以前也学过汇编跟C之间的互换,可都是简单的,从没涉及到这么复杂的程序过,改编很是有压力,经过研究,我们将汇编程序舍弃了,到网上下载了一段音乐程序,是C语言编的.要让音乐在我们的红外报警系统中唱出来可不是什么简单的事情,虽然找到了音乐程序,但要让音乐程序跟我们的主程序融合在一起得花费点心思了.
最后在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费,我们从中学到了很多知识.,也让我们对单片机有了更深一步的了解.虽然最后结果是出来了,可这与老师的精心指导是分不开的,她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以说老师是功不可抹的.
总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅.
+ 更多类似范文
单片机实训报告一周的实训,让我们从另一个角度去发现单片机。期间我学会了很多宝贵的知识和经验,在这次单片机实训中我们巩固了我们平时所…
时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。在学习单片机这门课程之前,就早早的听各种任课老师和学长学…
单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。在学习单片机这门课程之前,就早早的听各…
这次实习我们使用控制电路的单片机是at89s51型号的。通过它实现对八盏双色灯发光二极管的控制p0和p2口控制四盏灯。在at89s…
单片机实训总结为了锻炼学生的动手能力及激发学生的创新能力,我们班于第十五周在单片机实验室迚行了单片机实训。在实训过程中首先我们要明…
51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机…