大工《单片机原理及应用》大作业参考题目及要求内容仅供参考735.docx
- 文档编号:1566408
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:9
- 大小:68.07KB
大工《单片机原理及应用》大作业参考题目及要求内容仅供参考735.docx
《大工《单片机原理及应用》大作业参考题目及要求内容仅供参考735.docx》由会员分享,可在线阅读,更多相关《大工《单片机原理及应用》大作业参考题目及要求内容仅供参考735.docx(9页珍藏版)》请在冰豆网上搜索。
大工《单片机原理及应用》大作业参考题目及要求内容仅供参考735
网络教育学院
《单片机原理及应用》大作业
题目:
单片机电子时钟设计
题目一:
单片机电子时钟设计
准则:
设计一个基于51单片机或STM单片机的电子时钟,并且能够实现时分秒的显示和调节
撰写要求:
(1)首先介绍课题背景,并进行需求分析及可行性分析,包括软硬件功能分配、核心器件的选型等;
(2)对系统硬件进行设计,包括硬件功能模块划分、电路原理图设计等;
(3)对系统软件进行设计,选用汇编语言或C语言编写程序,给出软件开发流程;
(4)总结:
需要说明的问题以及设计的心得体会。
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。
秒表计时器是电器制造,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。
数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。
本设计中用单片机和数码管组成数字秒,表力求结构简单。
本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。
利用中断系统使其能实现开始暂停的功能。
P0口输出段码数据,口作列扫描输出,、、、分别接四个按钮开关,分别实现开始、暂停、清零和查看上次时间的功能。
显示电路由五位共阴极数码管组成。
1、1总体方案的设计
数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。
本设计中用单片机和数码管组成数字秒,表力求结构简单。
设计中包括硬件电路的设计和系统程序的设计。
硬件电路主要有主控制器、控制按钮与显示电路组成。
主控制器采用单片机AT89S52,显示电路采用四位共阴极数码管显示计时时间。
本设计利用AT89S52单片机的定时器,使其能精确计时。
利用中断系统使其实现启动和暂停的功能,P0口输出段码数据,~连上译码器作为位选,和接口的两个按钮分别实现启动和暂停功能。
设计的基本要求是正确性。
硬件电路按下图进行设计。
计时器采用T0中断实现,定时溢出中断周期为1ms,当溢出中断后向CPU发出溢出中断请求,每发出10次中断请求就对10ms位(即最后一位)加一,达到100次就对100ms位加一,以此类推,直到为止。
再看按键的处理。
两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动和暂停。
单片机的选择
本设计在选取单片机时,充分借鉴了许多成型产品使用单片机的经验。
并根据自己的实际情况,选用了ATMEL公司的AT89S52。
ATMEL公司的89系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦写操作、低廉的价格完全替代了87C51/62和8751/52,低电压、低功耗,有DIP、PLCC、QFP封装,是目前性能最好、价格最低、最受欢迎的单片机之一。
AT89S52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC52相同,其主要用于汇聚调整时的功能控制。
功能包括对汇聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,汇聚调整控制,汇聚测试图控制等。
单片机外部结构
AT89S52单片机采用40脚的DIP封装,如下所示。
(1)主电源引脚Vss和Vcc
Vss接地
Vcc正常操作时为+5V接地
外接晶振引脚XTAL1和XTAL2
a、XTAL1内部振荡电路反相放大器的输出端,是外接晶体的一个引脚。
当采用外部振荡时,此引脚接地。
b、XTAL2内部振荡电路反相放大器的输出端,是外接晶体的的另一端。
当采用外部振荡时,此引脚接外部振荡源。
(2)控制或与其他电源复用引脚
a、RST/VPD当振荡器运行是,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,
以保持内部RAM中的数据。
b、ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部存储器,ALE引脚以不变的频率(振荡器频率的1/6)周期性的发出正脉冲信号。
因此,它可以用作对外输出的时钟,或用于定时目的。
c、PSEN外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN在每个机器周期内两次有效。
d、EA/Vpp内部程序存储器和外部程序存储器选择端。
当EA/Vpp位高电平时,访问内部程序存储器,当EA/Vpp为低电平时,则访问外部程序存储器。
对于EPROM编程期间,此引脚上加21VEPROM编程电源(Vpp)。
(3)输入/输出引脚~,~,~,~。
a、P0口(~)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。
b、P1口(~)是一个带有内部上拉电阻的8位准双向I/O口。
能驱动四个LSTTL负载。
c、P2口(~)是一个带有内部上拉电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。
P2口可以驱动四个LSTTL负载。
d、P3口(~)是一个带有内部上拉电阻的8位准双向I/O口。
能驱动四个LSTTL负载。
显示电路的选择与设计
对于数字显示电路,通常采用液晶显示或数码管显示。
对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT89S52单片机本身没有专门的液晶驱动接口。
而数码管作为一种主动显示器件,具有亮度高、响应速度快、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距离操作。
因此在本设计中,我们采用7段数码管作为显示介质。
数码管显示可以分为静态显示和动态显示两种。
由于本设计需要采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。
通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的公共阴极位选线由另外的I/O口线控制。
动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。
系统总体电路的设计
系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。
8051单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。
8051单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。
复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。
按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键和查看键分别接单片机的和,均设为低电平有效。
而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口和,这两个I/O口的第二功能分别为单片机的外部中断1端口和外部中断0端口。
同样设置为位低电平有效。
显示电路由五位数码管组成,采用动态显示方式,因此有8位段控制端和5位位控制端,八位段控制接P0口,~分别控制数码显示管的a、b、c、d、e、f、g、dp显示,8051的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。
五位位控制则由低位到高位分别接到~口,NPN三极管9013做为位控制端的开关,当~端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。
通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。
主程序设计
本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。
其中主程序是整个程序的主体。
可以对各个中断程序进行调用。
协调各个子程序之间的联系。
系统(上电)复位后,进入主程序,主程序流程图如图。
首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。
数码管显示程序对显示缓存区内的数值进行调用并在数码管上进行动态显示。
显示一次就对和进行一次扫描,查询复位键是否按下,当复位键按下后,程序返回开始,重新对系统进行初始化。
当没有按下复位键时,程序则扫描是否按下,当没有按下则返回显示程,不断地调用显示缓存区的数据进行显示。
使用户能清楚的看到当前电子秒表所记录的时间。
当查询到按下后则跳转到另外一段显示程序并调用最红缓存区的数据进行显示,此时显示的时间即为上一次计时的时间。
与此同时,在按下后单片机执行显示程序的同时也在对进行扫描,当断开后立即跳转回之前的显示程序显示当前的计时时间。
在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。
当外部中断有请求则去执行外部中断服务程序。
并在执行完后返回主程序。
中断程序设计
本方案中用到了三个中断:
外部中断0、外部中断1和定时器T0溢出中断。
CPU在响应中断时,先处理高级中断,后处理低级中断,若有多个同级中断时,则应按自然优先顺序处理。
例如当CPU正在处理一个中断申请时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂停对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。
待服务结束,再继续执行原来较低级的中断服务程序。
而当CPU为级别高的中断服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行编程是要注意中断的使用,避免出现中断的嵌套。
合理分配中断对本设计是很重要的。
(1)外部中断0服务程序
外部中断0服务程序结合外部键实现数字秒表的启动功能。
流程如下图所示。
(2)外部中断1服务程序
外部中断1服务程序结合外部键实现数字秒表的停止功能。
流程图如下所示。
(3)定时器T0中断服务程序
当定时/计数器T0器溢出后,向CPU发出中断请求信号。
CPU跳转到定时中断程序执行,具体流程如图。
定时中断程序是一个进位程序,主要负责对1ms的加一。
1ms位没有满十就跳出中断程序,返回显示程序。
当1ms位满十后就对1ms位清零,向10ms位加一,同时检测10ms位是否满十,没有满十就跳出中断程序,返回显示程序。
如果满十就向100ms位加一,依次类推,最终达到秒后归零,从零开始再次计时。
定时/计数器T0工作在方式0下,TH0和TL0组成一个13位的二进制数计数器。
单片机开机或复位时,它的值为00H,当T0启动后,从第一个输入脉冲开始计时,每来一个脉冲计数加一,即从0000000000000开始计数到1111111111111,再计数一个脉冲时TH0和TL0组成的13位计数器将会从13个1变成13个0,并产生溢出,溢出位将被送到TF0标志位,通过溢出标志产生溢出中断请求。
显然,T0定时器在方式0下引起一次中断所允许计数的最多脉冲个数为213个。
但如果定时计数器如果每次都固定从0开始计数,到计满后,再向CPU发出溢出中断请求信号那是毫无意义的。
为了使定时计数器在规定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 大工 单片机 原理 应用 作业 参考 题目 要求 内容 仅供参考 735