课程设计_单片机__60秒秒表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
前言 (2)
1.总体设计方案 (3)
2硬件设计方案 (3)
2.1 电路原理 (3)
2.2 电路原理图 (4)
3.软件设计(加流程图) (6)
3.1函数流程图 (6)
3.2 算法描述 (9)
3.3源程序 (10)
4系统的安装调试 (11)
5课程设计总结与体会 (12)
6.参考文献 (14)
前言
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。单片微型计算机简称单片机,是典型的嵌入式微控制器单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
本次课程设计要求制作一个秒表,开始时,显示“00”,第1次按下按钮后就开始计时;第2次按按钮后,计时停止;第3次按按钮后,计时归零。
1总体设计方案
1.1硬件设计思路
将单片机设计成控制器,在M CS51的P0口和P2口都接,P0口接上拉电阻,分别显示十位和个位数字。另设计一个按钮,第1次按下按钮后就开始计时;第2次按按钮后,计时停止;第3次按按钮后,计时归零。
1.2软件设计思路
通过单片机实现控制00-59的计数,根据设计的要求,将0到59的数据除以10,分别取商和余数。并且当一秒钟到来时,计数单元加1,到达60时,则自动返回到0,从新秒计数。同时在计数过程中调用延时程序。
2硬件设计
2.1电路原理
编写程序对M CS51芯片进行初始化,在编程过程中主要使用延迟程序来实现秒计时器的计时功能。用Proteus软件来实现秒计时器的仿真,其中将P0口和P1口分别作为高低位输出端口。该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片AT89C51中的P1.0管脚做为外部中断0的入口地址,并实现按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能.;定时器T0作为每秒加1的定时器。其中“开始”按键按下一次(由上向下拨)时开始计时,当再次按下按键时,计
时器计数暂停;“清零”按键按下一次时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
2.2电路原理图
图3.1电路原理图
时钟
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。在MCS51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚TXAL2,在芯片的外部通过这两个引角跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。此电路采用12MHz的石英晶体。如下图所示
AT89S52(MCS51)简介
(1) 与MCS-51产品相兼容;
(2) 具有8KB可改写的Flash 内部程序存储器,可写/擦1000次;
(5) 256字节内部RAM;
(6) 32根可编程I/O口;
(7) 3个16位定时器/计数器。
(8) 8个中断源;
(9) 可编程中串行口;
(10) 低功耗空闲和掉电方式。
它的价格便宜,功能强大,能耗低。很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。其芯片引脚图如图2-1所示。
图2-1 单片机AT89S52引脚图
3软件设计(加流程图)
3.1函数流程图
实验系统流程图
图4.1.1 实验系统流程示意图
主程序
ORG 0
LJMP START ;启动指令
ORG 30H ;跳出中断入口
START: MOV P0,#0 ;将p0口清零
MOV P2,#0 ;将p2口清零
MOV @R0,#00 ;将值0赋给R0
NEXT: MOV A,@R0 ;实现P0口从零到5的变化,
以及P2口从零到九
的变化
MOV B,#10
DIV AB
MOV DPTR,#TABLE ;建表
MOVC A,@A+DPTR ;将表的首地址传给累加器A
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY ;调用延时程序
INC @R0
MOV A,@R0
CJNE A,#60,NEXT ;比较循环
LJMP START
END
延时程序流程图
图4.1.2 延时程序流程图
延时子程序
DELAY: MOV R5,#100
DELAY2: MOV R6,#20
DELAY1: MOV R7,#248
DJNZ R7,$