基于单片机60秒倒计时系统控制设计 - 图文

更新时间:2024-05-02 17:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于单片机60秒倒计时系统控制设计

目录

摘要 ................................................................... 1 第1章、单片机概述`.................................................... 2 第2章、设计任务及要求 ................................................. 2 2.1.设计任务........................................................... 2 2.2.设计要求........................................................... 2 第3章、设计方法和内容 ................................................. 3 3.1.硬件设计........................................................... 3 3.2.软件设计........................................................... 6 3.3.软件程序........................................................... 7 第4章、软件调试 ....................................................... 7 4.1 系统调试工具KEIL C51 ............................................... 7 4.2 系统调试工具PROTEUS ............................................... 8 4.3仿真 ............................................................... 9 第5章、设计总结与致谢 ................................................ 10 参考文献 .............................................................. 10

基于单片机的60秒倒计时系统

摘要

单片机就是微控制器,它是嵌入式系统中的重要且发展迅速的组成部分。单片机接上震荡元件(或震荡源)、复位电路和接口电路,载入软件后,可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,它就成为众多产品、设备的智能化核心。所以,生产企业称单片机为“微电脑”。

单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。 关键字:单片机 微电脑 智能化

1

第1章、单片机概述`

单片机就是微控制器,它是嵌入式系统中的重要且发展迅速的组成部分。单片机接上震荡元件(或震荡源)、复位电路和接口电路,载入软件后,可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,它就成为众多产品、设备的智能化核心。所以,生产企业称单片机为“微电脑”。

单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。 但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。

本篇论文讨论了简单的倒计时器的设计与制作 ,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。

第2章、设计任务及要求

2.1.设计任务

课程设计是提高学生单片机技术应用能力以及文字总结能力的综合训练环节,是配合单片机课程内容掌握、应用得的专门性实践类课程。通过典型实际问题的实际,训练学生的软硬件的综合设计、调试能力以及文字组织能力,建立系统设计概念,加强工程应用思维方式的训练,同时对教学内容做一定的扩充。使自己深刻理解并掌握基本概念,掌握单片机的基本应用程序设计及综程序设计的方法。通过做一个综合性训练题目,达到对内容的消化、理解并提高解决问题的能力的目的。 2.2.设计要求

对于单片机控制的60s倒计时的要求如下:

(1)用单片机AT89C51的定时器实现60s倒计时。本例中用两位数码管静态显示倒计时秒值。

(2)用PROTEUS软件设计,仿真基于AT89c51单片机的60s倒计时。 (3)实现计时暂停。

2

第3章、设计方法和内容

本设计由硬件设计和软件设计两部分组成,硬件设计主要包括单片机芯片选择,数码管选择及晶振,电容,电阻等元器件的选择及其参数的确定;软件设计主要是实现60秒倒计时程序的编写,包括利用中断实现1秒的定时及60秒的倒计时。

具体设计:通过AT89C51型号单片机,由P1和P2两组I/O引脚分别控制两个7SEG–COM –ANODE型号数码管,分十位控制和个位控制,达到显示60秒倒计时的目的。通过复位电路,在仿真过程中点击开关实现60复位。 3.1.硬件设计 AT89C51的芯片概述

AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 其工作电压在4.5-5V,一般我们选用+5V电压。外形及引脚排列如图1所示 :

AT89C51主要特性

图1:89C51的核心电路框图

·与MCS-51 兼容

·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz

3

·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道

·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路

AT89C51管脚说明

(1)电源及时钟引脚(4个) Vcc: 电源接入引脚 Vss:接地引脚

XTAL1:晶振震荡器接入的一个引脚(采用外部振荡器时,此引脚接地);

XTAL2:晶体振荡器的另一个引脚(采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。 (2)控制线引脚(4个)

RST/Vpd:复位信号输入引脚/备用电源输入引脚;

ALE:地址锁存允许信号输出引脚/编程脉冲输入引脚: EA:内外存储器选择引脚/片外EPROM编程电压输入引脚; PSEN:外部程序存储器选通信号输出引脚。 (3)并行I/O引脚

P0.0-P0.7:一般I/O口引脚或数据/低位地址总线复用引脚; P1.0-P1.7:一般I/O口引脚;

P2.0-P2.7:一般I/O口引脚或高位地址总线引脚; P3.0-P3.7:一般I/O口引脚或第二功能引脚

所需器件如下表所列: 序号 元件类型 1 2 3 4 5 6 7 芯片 晶振 电源电容 电容 电阻 电阻 数码管 元件参数 AT89C51 12M 10UF 30PF 10K 470 8段 元件个数 1 1 1 2 1 14 2 备注 共阳 LED数码管显示器概述 本设计中采用的是7SEG–COM –ANODE型号数码管,它是一种半导体发光器件,其基本单元是发光二极管。实物如图2所示:

4

图2 7SEG–COM –ANODE型号数码管

数码管的分类

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 LED数码管有两种连接方法如下:

共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

图3LED数码管有两种连接方法

共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。

测量数码管引脚,分共阴和共阳两类:

找公共共阴和公共共阳:首先,我们找个电源(3到5伏)和1个1K(几百欧的也行)的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的,找到一个就够了,然后GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。

5

3.2.软件设计

开始显示60秒循环20次中断50ms溢出跳转到中断,倒计时开始到0后返回主程序结束

图4程序框图

定时/计数器初值计算

(1)本电路应用TIMER0 MODE 16位计数器的计时中断法。

(2)1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。本设计中,设定中断每次溢出时间50ms。 (3)由上式得知,循环20次即可达到1秒定时,即: N=t/Tcy=0.05s/0.000001=5000 X=65536-5000=15536=3CB0H

(4)由上式得知5000个脉冲,首先需设定TL0=3CH,TH0=0B0H,此时第1次只要输入5000个脉冲输入,就会溢出;第2次至第20次,则需每1000000个计时脉冲,定时1秒。 (5)上电时,显示60,开始倒数计时按下开关实现复位。

6

3.3.软件程序

KEY EQU P3.0

ORG 00H SJMP STAR ORG 1BH SJMP T1S ORG 30H STAR: MOV R2,#60 MOV R4,#20 MOV IE,#88H MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#OBOH SETB TR1 ACALL DIS SJMP $

TIS: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R4,T1S1 MOV R4,#20 DJNZ R2,T1S0 CLR TR1

T1S0: ACALL DIS T1S1: RETI

SEG7: INC A

MOVC A,@A+PC RET

DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H DB 0C6H,0A1H,86H,8EH LOOP: CLR TR1 DIS: MOV A,R2 MOV B,#10 DIV AB ACALL SEG7 MOV P1,A MOV A,B ACALL SEG7 MOV P2,A JNB KEY,LOOP RET END

第4章、软件调试

4.1 系统调试工具keil C51

Keil C51 仿真器是一款利用KEIL C51 的IDE 集成开发环境作为仿真环境的廉价仿真器,是利用SST公司具有IAP功能的单片机SST89C58制作而成,主要是利用了SST89C58的IAP功能,所谓IAP功能是In application program 的英文缩写,是在应用编程的意思,通俗一点讲就是:它可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。它之所以具有这种功能,实际上它有两块程序flash区,其中一块flash中运行的程序可以更改另外的一块程序flash区中的程序,正是利用这一特性才用它作成了仿真器,我们把仿真器的监控程序事先烧入SST89C58,监控程序

7

通过SST89C58的串口和PC通讯,当使用KEIL C51的IDE环境仿真时,用户的程序通过串口被监控程序写入flash程序区中,当用户设置断点等操作仿真程序时,flash程序中的用户程序也在相应的更改,从而实现了仿真功能 。

调试的主要方法 : 1. 启动Keil c51

2. 新建一个工程。Project菜单—〉New project ,选择好我们要保存的文件夹后,键入Frist 保存。接着弹出CPU类型选择框,我们选择最常用的AT89C51,按确定。

3. 在工程中加入文件。新建一个文件,文件菜单File—〉New,我们再选择:文件菜单File—〉Save As? (另存为)弹出 对话框后,我们文件名框中键入First.c(注意文件后缀名是 .c)保存。C文件建好啦。现在我们把文件加入到工程中去。 点击Target 1前面的+号,右键单击Source Group 1—〉选择Add Files to Group,Source Group 1,选择添加 Add。编译运行,检查程序是否有错误

4.2 系统调试工具PROTEUS

Proteus是一款EDA软件,该软件具有模拟电路仿真,数字电路仿真,单片机以及外围电路组成的系统的仿真,RS-232动态仿真,I2C调试器,SPI调试器,键盘和LCD系统的仿真,以及各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。该软件目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、ARM以及各种外围芯片。该软件还支持大量的存储器和外围芯片,所以,该软件是一款集单片机和SPICE分析于一身的仿真软件。

调试方法:首先用Keil软件将C编译成HEX文件,打开Keil软件,新建一个文档,输入C程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Options for target,选择OUTPUT子菜单,在Create HEX Fi前打钩,DeBug子菜单中,Settings选择ProteusVSM Simulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN文件,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试。

8

4.3仿真

9

第5章、设计总结与致谢

通过本次单片机课程设计,使我明白了自己在学习这门课时在方法上存在的不足,让我对 单片机芯片,指令表,外部接线图有了更好的了解,也让我了解了关于单片机的设计原理,有很多设计理念来源于实际,从中找到正确的设计方法。

在这次设计实践之后,我学会了单片机的基本编程方法,对单片机的工作原理和使用方法也有了更深刻的理解。在读理论的运用中,提高了我们的工程素质,在没有做实践设计以前,我们对知道的掌握都是思想上的,对一些细节不加重视。在课程设计过程中我了解到,单片机并不是一门单一的编程技术,它是一门系统专业课程。单片机可以广义的认为是一台背嵌入操作系统的高可靠性微机。首先需要精深单片机本身的编程语言、语句表语言。然后根据程序在实验室进行调试,使其达到预期的程度。最后,依照调试结果写论文。不断地锻炼自己的动手和思维能力。最后,依照调试结果写论文。不断地锻炼自己的动手和思维能力。最后也要感谢向根祥老师的悉心指导,才能使我们的设计得以顺利完成。

参考文献

[1]张俊谟.《单片机中级教程-原理与应用》 北京航天航空出版社。. [2] 李朝清.单片机原理及口技术.北京航空航天大学出版社.2005. [3] 高卫东.51单片机原理与实践. 北京航空航天大学出版社.2008. [4] 徐建民.汇编语言程序设计.电子工业出版社.2007.

10

第5章、设计总结与致谢

通过本次单片机课程设计,使我明白了自己在学习这门课时在方法上存在的不足,让我对 单片机芯片,指令表,外部接线图有了更好的了解,也让我了解了关于单片机的设计原理,有很多设计理念来源于实际,从中找到正确的设计方法。

在这次设计实践之后,我学会了单片机的基本编程方法,对单片机的工作原理和使用方法也有了更深刻的理解。在读理论的运用中,提高了我们的工程素质,在没有做实践设计以前,我们对知道的掌握都是思想上的,对一些细节不加重视。在课程设计过程中我了解到,单片机并不是一门单一的编程技术,它是一门系统专业课程。单片机可以广义的认为是一台背嵌入操作系统的高可靠性微机。首先需要精深单片机本身的编程语言、语句表语言。然后根据程序在实验室进行调试,使其达到预期的程度。最后,依照调试结果写论文。不断地锻炼自己的动手和思维能力。最后,依照调试结果写论文。不断地锻炼自己的动手和思维能力。最后也要感谢向根祥老师的悉心指导,才能使我们的设计得以顺利完成。

参考文献

[1]张俊谟.《单片机中级教程-原理与应用》 北京航天航空出版社。. [2] 李朝清.单片机原理及口技术.北京航空航天大学出版社.2005. [3] 高卫东.51单片机原理与实践. 北京航空航天大学出版社.2008. [4] 徐建民.汇编语言程序设计.电子工业出版社.2007.

10

本文来源:https://www.bwwdw.com/article/nx1g.html

Top