欢迎来到天天文库
浏览记录
ID:55296437
大小:42.00 KB
页数:13页
时间:2020-05-09
《基于单片机的秒表课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于单片机的秒表课程设计姓名:班级:学号:专业:指导老师:年月日目录1、总体设计方案简介1.1设计课程任务1.2系统分析1.3系统方案1.4方案论证2、硬件设计2.1控制芯片的介绍2.2硬件接线2.2.1硬件接线接口2.2.2硬件接线图3、软件设计3.1程序设计思路3.2流程图3.3源程序3.4仿真结果4、元件清单5、心得体会基于单片机的秒表课程设计摘要本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成数字式秒表的硬件电路的。电子秒表电路主要由AT89S51单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八段数码显示和计时,能通过控制电
2、路控制时间的暂停和开始。关键字:AT89S51数码管最小系统1总体设计方案简介1.1设计课题任务设计一个具有特定功能的数字式秒表。用AT89C52设计一个2位LED数码显示“秒表”,显示时间为00-59,另设计一个“开始”按钮和一个“复位”按钮。按键说明:按“开始”按键,开始计数,数码管从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00。1.2系统分析设计的电路主要是能多次计时,计时的多少通过显示电路出来,设计框图如图所示;控制部分技术和存储部分显示部分1.3系统方案利用AT89C52单片机设计数显定时器。此方案采用AT89C52单片机系统来实现。AT89
3、C52芯片内含8KB的EEPROM,不需要外扩展存储器,可是系统整体结构更为简单。设计框图如图所示;外部控制开关AT89C52单片机七段数码显示1.4方案论证此方案是以AT89C52芯片为中心控制系统,可实现计时、清零等功能,大大提高了系统的智能化,也是的系统所测结果精度大大提高。所以此方案可行。2硬件设计2.1控制芯片的介绍AT89S52是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器,的8位CMOS微控制器,使用高密度、非易失存储技术制造,并与80S52引脚和指令系统完全兼容。主要性能:与MCS-51微控制器产品系列兼容。片内有4KB可在线重复编程的快
4、闪擦写存储器存储数据保存时间为10年宽工作电压范围:VCC可为2.7V到6V全静态工作:可从0Hz至16MHz程序存储器具有3级加密保护128*8位内部RAB32条可编程I/O线两个16位定时器/计数器中断结构具有5个中断源和2个优先级可编程全双串行通道空闲状态维持低功耗和掉电状态保存存储内容2.2硬件接线2.2.1硬件接线端口时钟引脚:XTAL1和XTAL2与内部的反相放大器构成一个振荡器,它提供单片机的时钟控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。P2口:P2.6和P2.7端口分别控制数码管的十位和个位供电,当相应的端口
5、变成低电平时,驱动相应的三极管会导通,+5V通过三极管给数码管相应的位供电,这是只要PO口送出数字的显示代码,数码管就能正常显示数字。PO口:PO.O-PO.6端口用排线连接到数码管显示模块区域中的A-G端口上;PO.O对应着A,......,PO.6对应着G。P0.7接高电平。P1.0接“开始”按键2.2.2硬件接线图(见附录图)3软件设计3.1程序设计思路在硬件的基础上,可以通过软件完成数字式秒表的设计。我先用了矩阵键盘上的任意两个独立按键作为控制键。用一个键去控制计时的开始;用一个键做计时的清零按键。用按键扫描的方式判断按键是否按下。用动态显示的方法扫描秒表的计数
6、,显示所记下的数。用中断的方法来进行计时加1,每10ms中断一次进行重新赋值并加1,当10ms单元达到10,就令该单元赋0,并让100ms单元加1,以此类推。3.2流程图1主程序流程图程序初始化开个中断P1.0=1关定时器0,1调用显示子程序P1.0=0开定时器0,1程序开始3.3源程序FIRSTEQUP2.7;第一位数码管的位控制SECONDEQUP2.6;第二位数码管的位控制SECEQU00H;1S到的标记UALUEEQU21H;秒计数器COUNTEQU22H;软件计数器DISPBUF1EQU5EH;5EH是显示缓冲区DISPBUF2EQU5FH;5EF是显示缓冲区
7、HIDDENEQU10;消隐码在字型码表的第10位ORG0000HLJMPSTART1ORG000BHLJMPINT_T0ORG0100HSTART1:JBP1.0,START1LJMPSTARTSTART:MOVSP,#5FH;设置堆栈指针初值MOVVALUE,#0;秒计数器MOVCOUNT,#0;软件计数器MOVDISPBUF1,#0;显示缓冲区填充0MOVDISPBUF2,#0;显示缓冲区填充0MOVTMOD,#01HMOVTH0,#0ECH;取60536的高8位,60536=65536-10000*6/12定时器初值,定时时间10
此文档下载收益归作者所有