配色: 字号:
单片机60秒倒计时设计
2013-01-10 | 阅:  转:  |  分享 
  
摘要

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。由于单片机具有体积小,易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

本次设计采用C语言编程,通过倒计时子程序模块、矩阵键盘扫描模块、中断等子程序的正确调用,完成了可以随时设置初值的基于51单片机控制的60秒倒计时系统。



关键词:倒计时单片机KeiluVision3LED数码显示器































目录

1MCS-51单片机硬件结构及原理 1

1.1MCS-51系列单片机结构 1

1.1.1MCS-51单片机的基本组成 1

1.1.2内部基本结构 3

1.2MCS-51单片机存储器安排 6

1.2.1存储器空间安排 6

1.2.2片内存储器 6

2课程设计的目的和任务 9

2.1单片机秒表课程设计的概述 9

2.2课程设计思路及描述 9

2.3课程设计任务和要求 10

3软件与硬件设计 11

3.1系统硬件方案设计 11

3.2软件方案设计 11

3.3生“HEX”文件的步骤 12

4程序编写与课程设计效果 15

4.1源程序及注释 15

4.2原理图分析 15

4.3课程设计效果 18

总结 19

致谢 20

参考文献 21





























1MCS-51单片机硬件结构及原理

1.1MCS-51系列单片机结构

1.1.1MCS-51单片机的基本组成

1总体结构



图1-1单片机的总体结构

2.MCS-51单片机外部引脚及其说明

最常见的封装形式是40引脚双列直插式DIP(DualIn-linePackage)

尚有44引脚的无引线芯片载体封装PLCC(PlasticLeadedChipCarrier)



图1-2MCS-51单片机外部引脚及说明

其中两条电源线,两条外接晶体,4条控制或作电源复用,32条I/O引线。

⑴电源引脚:2条

VCC:+5V

VSS:接地

⑵外接晶体:2条,接石英晶体构成自激振荡器

⑶控制线:4条

①EA/VPP:程序存储器选择/编程电源输入线

┌1访问片内程序存储器,寻址范围为0000H~0FFFH

EA=┤

└0访问片外程序存储器(用于片内无ROM/EPROM型)

VPP:用于片内EPROM型,在编程固化期间加编程高压。

②RST:复位输入(VPD:对HMOS芯片为片内RAM掉电保护备用电源)



图1-3复位电路

保持两个机器周期的高电平便复位。推荐此引脚与VCC之间接一个10μf电容,与VSS之间接一个下拉电阻8.2k,便上电复位。

③ALE/PROG:

ALE(AddressLatchEnable):当访问外部存储器时,用该输出脉冲锁存地址的低位字节。

ALE输出正脉冲的频率为晶体频率的1/6。但在访问外部数据存储器时,即运行MOVX指令时,将跳过一个ALE脉冲,即这时的频率是晶体频率的1/12。

PROG:

④PSEN:外部程序存储器读信号输出。

用以区分外部数据存储器RAM的读信号RD(P3.7)。其写信号WR是P3.6。

⑷I/O接口:4个8位的I/O接口--P0、P1、P2和P3口,每个口都有锁存器、一个输出驱动器和一个输入缓冲器。其中P0口是三态开漏双向口,而P1、P2和P3口都是准双向口,内部都有固定的上拉电阻。

特点:一口多用、分时复用

①P0口:┌作输出时,开漏电路需加上拉电阻

不需要扩展时此口可作一般I/O口用┤

└作输入时,需要先写入1,使之浮置

外接存储器时,分时作为扩展电路的低8位地址和数据总线复用,这时由P2口提供高8位地址。

②P1口:内有固定上拉电阻,每条I/O线都可单独用作输入或输出。要用作输入,必须先写入1,使输出驱动器的FET截止,通过上拉电阻置为高电平。复位以后,自动对其写入1,置为输入状态。

③P2口:在外接存储器时,作为高8位地址总线。

④P3口:内有固定的上拉电阻,可作为通用I/O口用,也可通过把相应位置1,使它具有以下专用功能:

P3.0RXD串行输入口

P3.1TXD串行输出口

P3.2INT0外部中断O

P3.3INT1外部中断I

P3.4T0定时器O的外部输出

P3.5T1定时器I的外部输出

P3.6WR外部RAM写信号

P3.7RD外部RAM读信号

1.1.2内部基本结构

(1)运算器

主要由8位的算术逻辑运算单元ALU、两个8位的暂存器TMP1和TMP2、8位累加器ACC、寄存器B和程序状态字寄存器PSW组成。

①ALU:可对4位、8位(、16位)数据进行操作和处理。

如加、减、乘、除、增量、减量、十进制数调整、比较、逻辑与、或、异或、求补循环移位等操作。

②ACC:累加器(Accumulator)这是使用最频繁的寄存器,它本身没有运算功能,它配合ALU完成算术和逻辑运算。在算术和逻辑运算中,参与运算的两个操作数必须有一个是在A累加器中,运算结果也存放在A累加器中。

③B:8位寄存器,在乘和除法运算中用来存放一个操作数和部分的运算结果。在不作乘除用时,可作为一般通用寄存器来使用。

④PSW:程序状态字寄存器,8位寄存器,用来提供当前指令操作结果引起的状态变化信息特征,以供程序查询和判断用。这些标志如有无进位、半进位、溢出等信息。

(2)控制器

控制器包括指令寄存器、指令译码器和定时控制逻辑电路等。这部分是整个CPU的控制中枢。控制过程是取指→译码→控制。

①指令寄存器和指令译码器:

从存储器中取出指令→指令寄存器→指令译码器翻译成控制信号,再通过定时控制电路,在规定的时刻向有关部件发出相应的控制信号,如寄存器传送、存储器读写、加或减算术操作、逻辑运算等命令,其动作的依据就是该时刻执行的指令。

②时钟和定时电路:

CPU的操作需要精确的定时,这是用一个晶体振荡器产生稳定的时钟脉冲来控制的。单片机内部已集成了振荡器电路,只需要外接一个石英晶体和两个频率微调电容就可工作。其频率范围为1.2~12MHz。

振荡周期:定时信号振荡器频率的倒数,用P表示。

如6MHz时为1/6μS,12MHz时为1/12μS。

时钟周期:对振荡周期二分频,它是振荡周期的两倍。又称状态周期,用S表示,其前半周期为P1,后半周期为P2。

机器周期:一个机器周期含6个时钟周期,分别用S1~S6表示。含12个振荡周期,分别用S1P1、S1P2…S6P2表示。

指令周期:完成一条指令所需要的时间。

一个指令周期一般含1~4个机器周期。大部分指令是单字节单周期指令,少数是单字节双周期、双字节双周期指令,只有乘法和除法指令占用4个机器周期。



图1-4各种周期的相互关系

(3)存储器

根据不同的型号,不同的芯片内部可有不同的存储器配置,一般片内可以有两类存储器:程序存储器(ROM、EPROM、EEPROM等)和数据存储器RAM。它们是两个完全分开的各自独立的存储空间。详细情况在存储器安排一节介绍。



表1-1存储器型号表

(4)输入和输出接口

从结构安排上看,MCS-51单片机有4个8位的并行I/O接口P0、P1、P2、P3,当采用片内存储器而不再片外扩展存储器时,它们都是既可输入也可输出的(准)双向接口,这些端口的地址与RAM统一编址,可以把它们当作寄存器来看待。但当需要在片外扩展存储器芯片时,P2口就作为高8位地址总线使用,同时P0既作为8位的数据总线又作为低8位的地址总线分时复用。详细结构后面介绍。

(5)其他部件

定时器/计数器、通信串行口、中断控制逻辑

①定时器/计数器

MCS-51单片机片内有2个16位的定时器/计数器。详细结构和用法后面介绍。

②通信串行口

MCS-51单片机片内有一个全双工异步通信串行接口。详细结构和用法后面介绍。

③中断控制逻辑

MCS-51单片机片内有可实现五个中断源二个不同优先级的中断控制逻辑。详细结构和用法后面介绍。

(6)布尔处理机--位处理机

可直接位寻址、位操作,构成一个位处理机。有位处理指令系统计17条指令,位处理累加器Cy。在片内RAM中,可对16个字节(20H~2FH)的16×8=128位直接寻址,其位地址从00H~7FH。(也可字节寻址20H~2FH)。

在寄存器中可对11个字节的专用寄存器(80H、88H、90H、98H、A0H、A8H、B0H、B8H、(C8H)、D0H、E0H、F0H单元)的(11×8-3)/(12×8-3)计85/93位直接寻址,其位地址从80H~F7H(中间不完全连续)。其中包括P0~P3的各位I/O口。

这提供了面向控制的功能,可简化、优化实时控制程序设计,实现复杂的组合逻辑功能。

1.2MCS-51单片机存储器安排

1.2.1存储器空间安排

程序存储器与数据存储器严格分开

数据存储器片内与片外严格分开

片内---程序存储器(8×514kB×8)×5160kB×8,803164kB×8)×8

但仅有3个逻辑存储空间:程序存储器64kB×8

片内数据存储器256Bytes

片外数据存储器64kB×8



图1-5存储器空间安排

1.2.2片内存储器

⑴片内RAM区(128单元)

①寄存器区(00H~)~

②可位寻址区(20H~)③普通RAM区(30H~)~)⑵SFR区(21个)

①PSW(ProgramStatusWord):程序状态字寄存器



其中,CY:进借位标志;AC:辅助进借位标志;F0:用户标志;RS1、RS0:工作寄存器组选择;OV:溢出标志;P:奇偶标志。

(1)Cy进位标志。当执行算术运算时,最高位向前进位或借位时,Cy被置位。在执行逻辑运算时,可以被硬件或软件置位或清零。在布尔处理机中,它被认为是位累加器。

(2)Ac辅助进位标志。进行加法或减法运算时,当低四位向高四位进位或借位时,Ac被置位,否则就被清零。Ac被用于十进制调正,详见DAA指令。

(3)F0标志。是用户定义的一个状态标志,可以用软件来使它置位或清零,也可以用软件测试F0以控制程序的流向。

(4)RS1,RS0寄存器区选择控制位1和0。可以用软件来置位或清0,以确定工作寄存器区。RSl,RS0与工作寄存器区的对应关系如表2—3所示。

(5)OV溢出标志。当执行算术运算ADD或SUBB指令时,对带符号数作加、减运算时,OV=1,表示加、减运算的结果超出8位带符号数的范围(+127~OV标志常用C6和C7的关系来表示。

OV=C6⊕C7

当进行加、减运算时,C6表示D6位向D7位有进位或借位,C7表示D7位向进位位有进位或借位。

在MCS-51单片机中,无符号数乘法指令MUL和除法指令DIV的执行结果也会影响溢出标志。

(6)奇偶标志。表示累加器A中1的位数的奇偶数。若1的位数为奇数,则P置位,偶数,则清0。该标志在每个指令周期由硬件来置位或清o。

此标志位对串行通信中的数据传输有重要意义。在串行通信中常用奇偶校验来检验数据传输的误码率。在发送端可根据P的值对数据的奇偶位置位或清零,若通信协议中规定采用奇校验的办法,则P=1,当数据传输到接收端,若P=1,则表示传输过程中,奇偶无错误,可以接收,否则奇偶有错,不能接收。

②DPTR:数据指针DPTR=DPH+DPL

83H82H

这是一个16位的寄存器,用来存放外部数据存储器的16位地址,当对64kB的外部数据存储器寻址时,可作间址寄存器,用下列两条指令来传送数据:

MOVXA,@DPTR

MOVX@DPTR,A

在访问程序存储器时,DPIR可用作基址寄存器,以读取存放在程序存储器内的表格常数;

MOVCA,@A十DPTR

DPTR可以分成两个8位寄存器:高位字节寄存器DPH和低位字节寄存器DPL,既可作一个16位寄存器用,也可作两个8位寄存器来用。

③SP,堆栈指针,8位寄存器

复位初始化后,SP=07H,从08H开始存放。因为08H~~

2.课程设计的目的和任务

2.1单片机秒表课程设计的概述

一、课程设计题目

秒表系统设计——用At89C51设计一个2位LED数码显示“秒表”,显示时间为0.0~60秒,每毫秒自动加一,每十毫秒自动加一秒。

二、增加功能

增加一个“复位0.0”按键(即清零),一个“暂停”和“开始”按键,一个“复位60”按键(用来60秒倒计时),一个倒计时“逐渐自减”按键。

三,课程设计的难点

单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程。

四、课程设计内容提要

本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有一个开关按键:即秒表开始键(同时也用作暂停键),key1按键按下去时数码管复位为“60”(用于倒计时),key4按键按下去则是数码管开始“逐渐自减”倒计时。

五、课程设计的意义

通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。

掌握定时器、外部中断的设置和编程原理。

通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义

六、课程设计软件

MCS-51系列单片机微机仿真课程系统中的软件(Keiluvision2)。

2.2课程设计思路及描述

该课程设计要求进行计时并在数码管上显示时间,则可利用MCS-51系列单片机的芯片AT89C52的P3.4,P3.5,P3.6,P3.7作为按键的入口;定时器T0作为每0.1秒减一的定时器;定时器T1作为每0.1秒加一的定时器。其中“开始”按键当开关由上向下拨时开始计时,此时若再拨“开始”按键则数码管暂停;“清零”按键当开关由上向下拨时数码管清零,此时若再拨“开始”按键则又可重新开始计时。

方框图如图所示:



图2-1数字秒表设计导向

2.3课程设计任务和要求

1.设计指标

了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、倒计时清零等功能,精确到0.1秒。

要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零等功能。

2.设计要求

画出电路原理图(或仿真电路图);

软件编程与调试;

电路仿真与调试。

3.软件与硬件设计

3.1系统硬件方案设计

单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、I\O接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。

在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和I\O接口,使单片机应用系统能够运行。

在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都根据系统的要求配置相应的键盘和显示器。配置键盘和显示器一般都没有统一的规定,有的系统功能复杂,需输入的信息和显示的信息量大,配置的键盘和显示器功能相对强大,而有些系统输入/输出的信息少,这时可能用几个按键和几个LED指示灯就可以进行处理了。在单片机应用系统在中配置的键盘可以是独立键盘,也可能是矩阵键盘。





























图3-1系统硬件结构框

3.2软件方案设计

此次选用C51来编程,首先要有初始化程序,通过初始化程序,将对主程序所用到的变量、常量以及各个参数和所调用的子函数定义。其次还有显示程序、按键扫描及处理程序、时钟程序和倒计时程序,系统软件流程图如图所示:































3.3生“HEX”文件的步骤

1新建工程



图3-3新建工程





















2“HEX”文件输出设置



图3-4“HEX”文件输出设置

3新建“C”文件



图3-5新建“C”文件

4写入程序



图3-6写入程序

5运行程序使之输出“HEX”文件



图3-7运行程序使之输出“HEX”文件









4程序编写与课程设计效果

4.1源程序及注释

可键盘设置倒计时时间

#include

unsignedcharnum,t,n;

unsignedcharcodetable[]={0xc0,0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9};

unsignedcharcodetable1[]={0x92,0x99,0xb0,0xa4,0xf9,0xc0};

voidmain()

{

num=0;

t=0;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

P0=0xc0;

P2=0x82;

while(1)

{

if(t==20)

{

t=0;

num++;

if(num==10)

num=0;

P2=table[num];

if(num==1)

{

P0=table1[n];

n++;

}

}

if(n==6)

{

if(num==0)

while(1);

}

}

}

voidexter0()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t++;

}

4.2原理图分析



图4-1原理图













如图4-2AT89C51



图4-2原件图

如图4-37段数码显示管



图4-37段数码显示管



如图4-4复位按钮



图4-4复位按钮



如图4-5电容



图4-5电容







如图4-6电阻



图4-6电阻

4.3课程设计效果



图4-8原理图



















总结

体会:为期一个星期的课程设计终于落下了帷幕。万事开头难。在刚开始课程设计的时候,大家都有点茫然而且无从下手的感觉。首先是题目的选择,在没有决定题目之前,查找资料毫无目的,基本是查查这个资料,待会又搜索另一个。这大大的浪费了时间。最后,经过老师的指导及自己查阅相关的资料,逐渐有了自己的设计想法,制定出了系统的结构框图。终于定下了题目。定下了题目之后,做起来就比较有目的。在指导老师的提示下,我们在网上查到了一些相关的资料,再综合书本上学到的一些知识,参考网上的程序,经过调试修改后,最终实现了题目设计的要求。

通过学习单片机这门课程设计,不仅了解了AT89c51的功能、还加强了单片机的理论知识得了解,而且进一步接触并了解到了软硬件的结合这个实践问题。不仅如此,此次设计也加强了我们动手培养了我的动手能力及分析思考和解决问题的能力,更令我的创造性思维得到拓展。













































致谢

一周的实习生活短暂而难忘,在中,老师给我们提出许多意见,这些都将使我们终身受用。领导及各位指导老师刻苦的工作作风,严谨的教学风格,精湛的教学技艺,崇高的敬业精神和博大的爱生心怀更是为我们展现了作为一名合格、称职的人民教师所必须具备的素质与精神,这也是我们今后努力的方向。



























































参考文献

[1]李朝青,单片机原理与接口技术,北京航空航天大学出版社。

[2]楼然苗,单片机课程设计指导,北京航空航天大学出版社。

[3]于海生,微型计算机控制技术[M],清华大学出版社,1999.6。



















































































单片机60秒倒计时



21







P1.0



P1.1



P1.2



P1.3



P1.4



P1.5



P1.6



P1.7



RST/VPD



RXD/P3.0



TXD/P3.1



INT0/P3.2



INT1/P3.3



T0/P3.4



T1/P3.5



WR/P3.6



RD/P3.7



XTAL2



XTAL1



VSS



1



2



3



4



5



6



7



8



9



10



11



12



13



14



15



16



17



18



19



20



8031

8051

8751



40



39



38



37



36



35



34



33



32



31



30



29



28



27



26



25



21



22



23



24







VCC



P0.0



P0.1



P0.2



P0.3



P0.4



P0.5



P0.6



P0.7



EA/Vpp



ALE/PROG



PSEN



P2.7



P2.6



P2.5



P2.4



P2.3



P2.2



P2.1



P2.0



10μFC1

?





RST





R1

8.2KΩ





+5V





10μFC1

?





RST





+5V





R2

200Ω





?

?





RST





R1

?





+5V





?





C2

22μF

?





8031

8051

8751





8031

8051

8751





8031

8051

8751





(a)上电复位电路





(c)按键脉冲复位电路



(b)按键电平复位电路





R1

8.2KΩ





P1



P2





S1



P2







振荡周期



时钟周期



机器周期



机器周期



指令周期



XTAL2

(OSC)



S2





S3





S4





S5





S6





S1





S2





S4





S5





S3





S6





P1





P1





P1





P1





P1





P1





P1





P1





P1





P1





P1





P2





P2





P2





P2





P2





P2





P2





P2





P2





P2





P2





存储器类型

单片机系列





掩膜ROM





EPROM





RAM





MCS-51





51

子系列







8031





/





/





128B







8051





4KB





/





128B







8751





/





4KB





128B





52

子系列







8032





/





/





256B







8052





8KB





/





256B





8752



/





8KB





256B





SFR









通用RAM区



位寻址区



00H



1FH



20H



2FH



30H



7FH



80H



FFH



80H



88H



90H



98H



A0H



A8H



B0H



B8H



D0H



E0H



F0H



专用寄存器中位寻址







外部

ROM



内部

ROM

(EA=1)



外部

ROM

(EA=0)



0000H



0000H



0FFFH



0FFFH



1000H



FFFFH







外部

RAM



(I/O口

地址)



0000H



FFFFH



内部数据存储器

(a)



外部数据存储器

(b)



程序存储器

(c)



工作寄存器区



RS1RS0





选择工作寄存器组





00





0组(00H~07H)





01





1组(08H~0FH)





10





2组(10H~17H)





11





3组(18H~1FH)





开关





MCS-51





AT89C52RC





LED显示



12.0MHz晶振



1个独立式的按键





电源指示灯







电源开关





2个数码管显示



STC89C51RC



开始



系统初始化



While(1)



数码管显示选择



按键的扫描及处理



图3-2系统软件流程图





献花(0)
+1
(本文系草木戒工作...首藏)