课程设计_单片机__60秒秒表

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,$

相关文档
最新文档