资源描述
设计任务书
设计题目:
单片机在定时闹铃中的应用
设计要求:
l 使用4位七段显示器来显示现在的时间。
l 显示格式为“时时分分”。
l 由LED闪动来做秒计数表示。
l 具有4个按键来做功能设置,可以设置现在的时间及显示闹铃设置时间。
一旦时间到则发出一阵声响,同时继电器启动,可以扩充控制家电开启或关闭。程序执行后工作指示灯LED闪动,表示程序开始执行,七段显示器显示“0000”,按下操作键K1-K4动作如下:
l 操作键K1:设置现在的时间
l 操作键K2:显示闹铃设置时间。
l 操作键K3:设置闹铃时间。
l 操作键K4:闹铃ON/OFF设置,设为ON时连续3次发出哔的一声,设为OFF时发出哔一声。
设置现在的时间或是闹铃时间设置如下:
l 操作键K1:调整时。
l 操作键K2:调整分。
l 操作键K3:设置完成。
在本设计中使用一般的七段显示器扫描控制显示数据,除了具有显示现在时间外,我们也可以自行扩充其要求如下:
l 增加码表计数。
l 闹铃功能时间到了则产生音乐声。
l 增加计时倒数的功能。
l 增加多组定时器功能。
设计进度要求:
第一周 : 根据设计要求查找相关资料
第二周 : 硬件的设计
第三-五周 : 软件的设计
第六周 : 综合调试
第七周 : 撰写毕业论文
第八周 : 打印毕业论文、毕业答辩
指导教师(签名):
34
摘 要
本设计是利用8051单片机结合七段显示器设计的简易的定时闹铃,可以放在计算机教室或是实验室中使用,由于用七段显示器显示数据,在夜晚或黑暗的场合中也可以使用,可以设置现在的时间,若时间到则发出一阵声响,并可以启动继电器,进一步可以扩充控制家电开关。
本设计充分发挥8051单片机高速,多输入输出,功能强大以及价格低廉的优点,本设计设计的定时闹铃易于扩展,使用范围广泛,同时在不升高成本的情况下尽可能满足用户要求。21世纪是通信、讯息、电力、材料、电子、能源以及控制技术大发展并相互交叉的时代,自从微电子技术发展以来,单片机微型计算器因其体积小、价格低、性能灵活、开发方便的独特优势,在机电一体化产品的开发和控制中得到了最广泛的应有,而且越来越向纵深发展。从简单的机电一体化产品深入到数控系统、柔性化、智能化系统以及机器人系统等。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本题《单片机在定时闹铃中的应用》就是应用单片机这一特点而进行开发。程序简单,功能强大,所要求的硬件设备比较少及经济实用。
本设计以MCS—51单片机为控制核心,充分利用其功能,实现了定时闹铃的自动控制,而且控制程序有很强的适应能力实测数据满足设计任务书基本要求和发挥部分的主要技术指标要求。
关键词;单片机,定时,闹铃,显示器
目 录
摘 要 III
1.概论 1
1.1 绪论 1
1.2 单片机简介 1
2.设计思路 7
2.1 控制电路的设计 7
2.2 8051单片机的结构组成与设计应用 10
2.3 8051单片机引脚的选择 12
2.4 LED的选择与设计 14
3.系统硬件设计与系统软件设计 17
3.1 系统硬件设计 17
3.2 系统软件设计 17
4.调试过程 20
4.1 硬件调试 20
4.2 软件调试 20
4.3 KeiL调试 21
4.4试验箱调试 21
致 谢 22
参考文献 23
附 录A 24
1 概 论
1.1 绪 论
近年来,计算机技术迅速发展,计算机在工业、农业、国防、科研及日常生活的各个领域均发挥着极其重要的作用,成为各国工业发展水平的重要标志之一。
自从世界上公认的第一台电子计算机问世以来,计算机的发展日新月异。短短的几十年间,以有电子管数字计算机发展到今天的超大规模集成电路计算机,运算速度由每秒5000次提高到今天的每秒上白亿次。近年来,计算机一方面向着高速、智能化的超级巨型机方向发展,另一方面向着微型机的方向发展。
在微机的大家族中,单片微型计算机(以下简称单片机)异军突起,发展迅速。从美国仙童(Fairchild)公司1974年生产出第一块单片机(F8)开始,在短短的几十年中,单片机如雨后春笋一般,大量涌现出来。GI公司、Rockwell公司、Intel公司、Zilong公司Motorola公司、NEC公司等世界上几大计算机公司都纷纷推出自己的单片机系列。目前,已经出现了4位、8位和16位的单片机,甚至32位的超大规模集成电路单片机(如T414)也以面试,同时性能也在不断提高。如Intel公司的8096,其数据总线为16位,ROM为8K字节,RAM有232位字节,中断源8级,时钟频率为12MHz,可进行加、减、乘、除运算,具有8个模拟通道,10位A/D变换,全双工异步通信接口,5个8位并行接口和4个16位可编程定时器。据统计,90年代世界每6人就有一片单片机,美国及西欧已达到人均4片。目前单片机已经成为工控领域、军事领域及日常生活中最为广泛应用的计算机。
1.2 单片机简介
单片微型计算机(Single-Chip Microcomputer),简称单片机。它在一块芯片上集成了中央处理器(CPU)、只读存储器(ROM)、输入/输出接口、可编程定时器/计数器等,有的甚至包含A/D转换器。总而言之,一块单片机芯片,就相当于一台计算机。
1. 单片机的特点
⑴集成度高、功能强
微型计算机通常有中央处理器(CPU)、存储器(RAM、ROM)以及I/O接口组成,其各部分分别集成在不同的芯片上。例如,大家熟悉Z80微型计算机就是由Z80- CPU、存储器(RAM、ROM)、PIO、CTC等芯片组成的,其原理如图1.1所示:
图1.1 Z80型微机结构
图1.2典型单片机结构
和微型计算机进行比较,单片机不仅体积大大减小,而且功能大为增强。MCS-51系列单片机内的定时/计数器为16位,而Z80微型计算机只有8位;MCS-51系列单片机中不但有4个I/O接口,而且还有串行接口,且时钟频率可达12MHz。
⑵结构合理
目前单片机大多采用Harvard结构。这是数据存储器与程序存储器相互独立的一种结构。而在许多微型计算机中(如Z80、Intel8085、M8000等)中,大都采用两类存储器合二为一(及统一编址)的方式。单片机采用上述结构主要有以下两点好处:
a:存储容量大。例如:采用16位地址总线锝位单片机可寻址外部64KBROM(包括内部ROM)。此外还有内部RAM(通常为128字节)和内部 ROM(一般为2~4KB)。正因为如此,使用单片机不仅可以进行控制,而且能够进行数据处理。单片机不仅设有监控程序,还可同时汇编、反汇编,具有高级语言以及各种函数库、子程序及图表。因此单片机的功能大为增强,用户使用起来十分方便。
b:速度快。单片机由于主要用于工业控制方面,一般都需要较大的程序存储器,用以固化已调好的控制程序;而数据存储器的容量相对较小,主要用来存放少量的随机数据。小容量随机存储器直接装在单片机内部,可使数据船送速度快。
⑶抗干扰性强
由于单片机的各种功能部件都集中在一个芯片上,特别是存储器也集成在芯片内部,部线短,数据大都在芯片内部传送,不易受到外部干扰,增强了抗干扰能力,使系统运行更可靠。
⑷指令丰富
单片机一般都有传送指令逻辑运算指令,转移指令,加、减运算指令等。有些单片机还具有乘法及除法运算指令,特别是位操作指令十分丰富。例如在MCS-51系列单片机中,专门设有布尔处理器,并且有一个专用的处理布尔变量的指令集。指令集中包括布尔变量的传送、逻辑运算、控制转移、置位等指令。因而单片机能在逻辑控制、开关变量控制以及顺序控制中得以广泛应用。
2. 单片机的组成及工作过程
单片机是由中央处理器(CPU)和适当容量的存储器、输入/输出接口电路三大基本部分组成,它通过接口电路再与输入/输出外部设备连接。
以下简单叙述各部件的作用:
⑴中央处理器(CPU)
CPU是整个单片机系统的核心,它是有算术逻辑运算单元和控制器组成的。它的功能是进行数据处理,并且控制数据和指令在单片机中的运行,即控制单片机根据给定的要求进行操作。
⑵存储器
存储器是单片机存放程序和数据的部件,它是有许多存储信息的单元组成。存储单元越多,存储器容量越大,可存放的信息量就越多。
⑶输入/输出借口电路(I/O)接口
接口电路CPU和外部设备之间不可缺少的连接纽带。人们要控制单片机的运行,可通过键盘送入指令,也可用开关送入信号,键盘和开关都是输入设备。单片机要运行的结果输出,可通过显示器、打印机告诉人们,也可通过接口电路输出信号,操作各种电器设备进行动作,显示器、打印机和电器设备都是输出设备。
因为外部设备与CPU之间的逻辑电平、速度、时序、驱动能力的有很大的差别,所以必须通过I/O接口电路解决它们之间的匹配问题。
⑷单片机的工作过程
单片机在工作前,首先必须在程序存储器内装入程序。单片机开始工作后,即按地址先从存储器中取出指令,然后把指令译码,以确定该指令执行的是什么操作和操作数的存放地址,再根据这3个地址取操作数,接着CPU对操作数进行操作,操作结果送入存储器或经接口电路送入显示器、打印机等外部设备。
3. 单片机的应用
(1)工业过程控制中的应用
由于单片机的I/O接口线多,位操作指令丰富,逻辑操作功能强,因此,特别适用于工业过程控制。它既可以作为主机控制,也可作为分布式控制系统的前端机。在作为主机使用的系统中,单片机为核心控制器件,用来完成模拟量和开关量的采集、处理和控制计算(包括逻辑运算),然后输出控制信号。
(2)生活中的应用
由于单片机价格低廉、体积小、逻辑判断及控制功能强,因此广泛地应用于人类生活的各个方面。如:洗衣机、电冰箱、电子玩具及电梯控制等。
(3)计算机网络及通信技术中的应用
单片机集成了通信接口,因而使其在计算机网络及通信设备中得以广泛应用,例如Intel公司的8044,它由8051单片机及SDLC通信接口组合而成,用性能高的串行接口单元SIU代替传统的UART,其传送距离可达1200m,传送速率为2.4Mbit/s。
4. 单片机的发展概况
自从1974年12月美国仙童(Fairchild)公司第一个推出8位单片机F8以来,单片机以惊人的速度发展,从4位机、8位机发展到16位机、32位机,集成度越来越高,功能越来越强,应用范围越来越广。
到目前为止,单片机的发展主要分为以下四个阶段:
第一阶段:4位单片机。这种单片机的特点是价格便宜,控制功能强,片内含有多中I/O接口,如并行I/O接口、串行I/O接口、定时/计数器接口、中断功能接口等。根据不同的用途,还配有许多专用接口,如打印机接口、键盘及显示器接口,PLA(可编程逻辑阵列)译码输出接口,有些甚至还包括A/D、D/A转换,PLL(锁相环),声音合成等电路。丰富的I/O功能大大地增强了4位单片机的控制功能,从而使外部接口电路极为简单。
第二阶段:低、中档8位机(1974~1978年)。这种8位机一般不带有I/O接口,寻址范围通常为4KB。它是8位机的早期产品,如Mostek公司的3870、Intel公司的8048等单片机即属此类。
MCS-48系列单片机是Intel公司1976年以后陆续推出的第一代8位单片机系列产品。它包括基本类型8048、8478和8035;强化型(高档)8049、8749、8039和8050、8040;简化型(低挡)8020、8021、8022;专用型UPI-8041、8741等。
低、中档单片机目前已经逐渐被高档8位单片机所取代。例如,MCS-51系列高档8位机所取代。
第三阶段:高档8位机阶段(1978~1982年)。这一类单片机常有串行I/O接口,有多中断处理,定时/计数器为16位,片内的RAM和ROM的容量相对增大,且寻址范围可达64KB,有的片内还带有A/D转换接口。这类单片机有Intel公司的MCS-51、Motorla公司的6801而后Zilog公司的Z等。由于这类单片机应用领域较广,其结构和性能还在不断地改进和发展。
第四阶段:16位单片机和超8位单片机(1982年至今)。此阶段的主要特征是,一方面不断完善高档8位机,改善其结构,以满足不同用户的需要:另一方面发展16位单片机及专用单片机。16位单片机除了CPU为16位外,片内RAM和ROM的容量也进一步增大,片内RAM为232字节,ROM为8KB,片内带有高速输入输出部件,多通道10位A/D转换部件,中断处理级为8级,其实时处理能力更强。近年来,32位单片机已进入实用阶段,但还未引入国内市场。
单片机的发展趋势将是;向着大容量、高性能化,小容量、低价格化和外围内装化等几个方面发展。
大容量化:片内存储器大容量化。以往单片机的ROM为1~4KB,RAM为64~128字节。因此在某些复杂的应用上,存储器容量不够,不得不外接扩充。为了适应这种领域的要求,运用新的工艺,使片内存储器大容量化。目前,单片机的ROM一般可达4~8KB,RAM为256字节,有的单片机内ROM可达12KB。今后,随着工艺技术的不断发展,片内存储器容量进一步扩大。
单片机的高性能化:主要是指进一步改进CPU的性能,加快指令运算速度和提高系统控制的可靠性,并加强了位处理功能、中断和定时控制功能;采用流水结构,指令以队列形式出现在CPU中,从而有很高的运算速度。有的单片机基本采用了多流水线结构,这类单片机的运算速度要比标准的单片机高出10倍以上。
小容量、低价格化:与上述相反,小容量、低价格化的4位、8位单片机是发展的动向之一。这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单片化。
外围电路内装化:这也是单片机的发展的主要动向。随着集成度的不断提高,有可能把众多的外围功能器件集成在片内。除了一般必须具有的CPU、ROM、RAM、定时/计数器等外,片内集成的部件还有模/数、数/模转换器,DMA控制器,声音发生器,监视定时器,液晶显示驱动器,彩色电视机和录象机用的锁相电路等。
增强I/O口功能:为了减少外部驱动芯片,进一步增加单片机并行口的驱动能力,现在有的单片机可直接输出大电流和高电压,以便直接驱动显示器。
单片机广泛地应用于各种仪器仪表中,使仪器仪表智能化,提高测试的自动化程度和精度,简化其硬件结构,提高其性能价格比。此设计是利用8051单片机结合七段显示器设计的简易的定时闹铃,也正是利用其这一特点。也进一步说明了单片机应用的广泛。优化了单片机在定时闹铃中的应用。
2 设计思路
2.1 控制电路的设计
定时闹钟的控制电路分为以下几部分:
l 单片机8051。
l 四合一共阴极七段显示器。
l 按键控制。
l 压力喇叭。
l 继电器。
完整的控制电路如图2.1和图2.2所示,此电路已内置在IO51控制板上,我们可以直接在板上验证控制功能。也可以采用其他方法,这里就不作具体介绍了。共阴极七段显示器的亮度控制可以由提升电阻来调整,控制程序中延迟时间长短,可以得到不同的显示效果。控制继电器的闭合或断开(ON/OFF),可以直接控制家电开关。
继电器接点说明如下:
l NC:Normal Close,常闭点。以COM为共同点,NC与COM在平时是呈导通的 状态。
l COM:Common,共通点。输出控制接点的共同接点。
l NO:Normal Open,常开点。NO与COM则呈开路状态。
拿到继电器时可以三用电表量的短路断路功能测量其接点,图2.3为其控制回路图,继电器所扮演的角色是一组可以电气控制的开关,因此是串联到电器的AC 110V电源回路中,其功能可以取代电器上的开关。在使用上IO51 控制板上的继电器线圈驱动电压为直流5 V,做电器上的开关时,其流过的电流负载请勿过大,约2 A内较保险,以免烧毁继电器或是8051相关控制电路。
内部总线接点说明:
总线是用于传送信息的公共途径。总线可分为数据总线、地址总线、控制总线。单片机内的CPU、存储器、I/O接口等单元部件都是通过总线连接到一起的。采用总线结构可以减少信息传输线的根数,提高系统可靠性,增强系统灵活性。
中断控制系统是指CPU暂停正在执行的原程序转而为中断服务(执行中断服务程序),在执行完中断服务程序后再回到原程序继续执行。中断系统是指能够处理上述中断过程的部分电路。MCS—51单片机设有5个中断源(外中断2个,定时/记数中断2个,串行中断2个),二级优先级,可实现两极中断嵌套。
图2.1 控制电路
图2.2 控制电路
图2.3 继电器控制回路图
输入/输出借口电路(I/O)接口:
接口电路CPU和外部设备之间不可缺少的连接纽带。人们要控制单片机的运行,可通过键盘送入指令,也可用开关送入信号,键盘和开关都是输入设备。单片机要运行的结果输出,可通过显示器、打印机告诉人们,也可通过接口电路输出信号,操作各种电器设备进行动作,显示器、打印机和电器设备都是输出设备。而本设计中应用到的主要是显示器,通过显示器我们就可以看到此设计的显示效果和计时时间。
因为外部设备与CPU之间的逻辑电平、速度、时序、驱动能力的有很大的差别,所以必须通过I/O接口电路解决它们之间的匹配问题。
定时器/计数器的说明:
8051内部有2个16位可编程定时器/计数器。简称为定时器0(T0)和定时器1(T1),T0和T1分别由两个8位寄存器构成,其中T0由TH0(高8位)和TL0(低8位)构成T1由TH1(高8位)TL1(低8位)构成。TH0、TH1、TL1都是SFR中的特殊功能寄存器。
2.2 8051单片机的结构组成与设计应用
MCS—51系列单片机在结构上基本相同,只是在个别模块和功能上有些区别。图2.4是8051单片机的内部结构框图。它包含了作为微型计算机所必需的基本功能部件,各功能部件通过片内机单一总线连成一个整体,集成在一块芯片上。MCS—51单片机是在一块芯片中集成了CPU、存储器(包括RAM和ROM)、定时器/计数器和多种功能的I/O线等一台计算机所需要的基本功能部件。主要包括1个8位CPU、1个片内振荡器及时钟电路、128 RAM、4KB ROM、2个16位定时器/计数器、32条可编程的I/O线和一个可编程的全双工串行口、5个中断源、2个中断优先级嵌套中断结构。
图2.4 8051单片机内部 结构框图
1. 中央处理器(CPU) CPU 是单片机内部的核心部件,是一个8位二进制数的中央处理器单元, 主要由运算器、控制器和寄存器阵列构成。
(1)运算器:运算器用来完成算术运算、逻辑运算、位变量处理和数据传送等功能,它是8051内部处理各种信息的主要部件。运算器主要由算术逻辑单元(ALU)、累加器(ACC)、暂存寄存器(TMP1、TMP2)、寄存器B和程序状态字寄存器(PSW)组成。
a:算术逻辑单元(ALU):8051中ALU由加法器和一个布尔处理器组成。主要是实现8位数据的加、减、乘、除算术运算和与、或、异或、循环、求反等逻辑运算;布尔处理器主要用来处理位操作。它是以进位标志位C 为累加器的,可执行置位、复位、取反、等于1转移、等于0转移、等于1转移且清0以进位标志位与其他位寻址的位之间进行数据转送等位操作。也能使进位标志位与其他可位寻址的位之间进行逻辑与、或操作。
b:累加器(ACC):用来存放参与算术运算的一个操作数或运算的结果。在运算时将操作熟经暂存器送至ALU。与另一个来自暂存器的操作数在ALU中进行运算,运算后的结果又送回累加器A。8051单片机在结构上是以累加器A为中心,大部分指令的执行都有通过累加器A进行。
c:暂存寄存器(TMP1、TMP2):用来存放参与算术运算的和逻辑运算的另一个操作数,它对用户不开放。
d:寄存器B:在乘,除运算时用来存放一个操作数,也用来存放运算后的一部分结果,不进行乘,除运算时,可以作为通用的寄存器使用。
e:程序状态字寄存器(PSW):PSW是一个8位标志寄存器,用来存放ALU操作季节感特征和处理器状态,这些特征和状态可以作为控制程序转移的条件,供程序校验和查询。
(2)控制器:控制器是单片机内部各部件按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器PC、指令寄存器IR、指令译码器ID、振荡和定时控制逻辑电路等构成。
(3)寄存器阵列:寄存器阵列是单片机内部的临时存储单元或固定用途单元,包括通用寄存器组和专用寄存器组。
2.存储器 8051单片机内部有128B的RAM数据存储器和4KB的掩膜式ROM,当不够使用时,可分别扩展为64KB外部RAM存储器和64KB外部程序存储器。它们的逻辑空间是分开的,并有各自的寻址方式和寻址机构。
2.3 8051单片机引脚的选择
8051单片机内部总线是单总线结构,即数据总线和地址总线是公用的。8051有40条引脚,与其他51系列单片机引脚是兼容的。这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。8051单片机为双列直插式封装结构,如图2.5所示。
1.电源线 8051单片机的电源线有以下两种:
(1)Vcc:+5V电源线。
(2)Vss:接地线。
2.外接晶体引脚 8051单片机的外接晶体引脚有以下两种:
图2.5封装和引脚分配图
(1)XTAL1:片内振荡反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。
(2)XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。
3.控制线 8051单片机的控制线有以下几种:
(1)RST:复位输入端,高电平有效。
(2)ALE/PROG:地址锁存允许/编程线。
(3)PSEN:外部程序存储器的读选通线。
(4)EA/Vpp:片外ROM允许访问端/编程电源端。
4.I/O接口组成 (32根I/O接口线)及功能:
I/O接口8051单片机对外部电路进行控制或交换信息都是通过I/O接口进行的。单片机的I/O接口分为并行I/O接口和串行I/O接口,它们的结构和作用并不相同。
(1)并行I/O接口:8051有4个8位并行双向I/O接口(P0接口、P1接口、P2接口、P3接口),每一条I/O接口都能独立的用作输入或输出.接口为准双向接口(在用作输入线时,接口锁存器7必须先写入“1”,故称为准双向接口),负载能力为4个LSTTL电路。
(2)串行I/O接口:8051有一个全双工的可编程串行I/O接口,实现单片机与其他数据设备之间的串行数据传递。该串行接口的功能较强,即可作为全双工异步通讯收发器使用,也可作为同步移位器使用。
a:P0接口:P0接口有8条接口线(P0.0—0.7),其中P0.0为低位,P0.7为高位。它由一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成。P0接口是一个三态双向I/O接口,它有两种不同的功能,用于不同的工作环境。
b:P1接口:P1接口有8条接口线(P1.0—1.7)。P1接口是一个准双相接口,只作普通的I/O接口使用,其功能与P0接口的第一功能相同。做输出口使用时,由于其内部有上拉电阻,所以不需外接上拉电阻;作输入口使用时,必须先向锁存器写入“1”,使场效应管T截止,然后才能读取数据。
c:P2接口:P2接口有8条接口线(P2.0—2.7).P2接口也是一个准双向接口,它有两种使用功能,一种是系统不扩展外部存储器时,作为普通I/O接口使用,其功能和原理与P0接口 的第一功能相同,只是作为输出口时不需外接上拉电阻;另一种是当系统外扩存储器时,P2接口作为系统扩展的地址总线接口使用,输出高8位的地址A8—15,与P0接口第二功能上岁数出的底8位地址相配合,共同访问外部程序或数据存储器(64KB),但它只确定地址并不能像P0接口那样还可以传送存储器的读写数据。
d:P3接口:P3接口有8条接口线,命名为P1.0—3.7 。P3接口是一个多用途的准双向接口。第一功能是作为普通I/O接口使用,其功能和原理与P1接口相同。第二功能是作为控制和特殊功能接口使用,这时8条接口线所定义的功能各不相同。
(3)I/O接口的读写:P0—3接口都可作为普通I/O接口来使用。当作为输入口使用时,必须先向该接口的锁存器中写入“1”,然后再从读引脚缓冲器中读入引脚状态,这样的读入结果才正确。
2.4 LED的选择与设计
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图1.6(a)是共阴和共阳极数码管的内部电路图,它们的发光原理是一样的,只是它们的电源极性不同而已。
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它数字的显示原理与此类同。
LED的7段数码管利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。在这次的设计中采用的均是共阴极的LED显示,当I/O口输出为高电平的时候,对应段就被点亮。LED数码管的结构图如图2.6(b)所示。
(a)
(b) 图2.6 LED分类结构图和结构图
这次设计的显示部分采用AT89C51单片机动态扫描完成, 在多数的应用场合中,我们并不希望使用多I/O端口的单片机,原则上是使用尽量少引脚的器件。在没有富余端口的情况下,应通过优化设计程序和扩展电路达到预期的目的。动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。
LED显示电路:
(1) 静态显示电路
LDE显示器工作在静态显示时,其公共阳极(或阴极) 接VCC(或GND) ,一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。
(2) 动态显示电路
将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位的分时选通,即同一时刻只有被选通位是能显示相应的字符,而其他所有位都是熄灭的。由于人眼有视觉暂留现象,只要每位显示间隔足够短,则会造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,CPU需要不断地进行显示刷新,动态显示电路参见图2.7,图2.7中是扩展了五位的LED数码管显示,用一个74LS154作为五个LED的段选输入,采用动态显示的方式连接。类似地,16位的LED数码管显示也可以用这种方法来实现。
图2.7 五位LED数码管的动态显示
3. 系统硬件设计与系统软件设计
3.1 系统硬件设计
(1)时钟芯片选择 选用89C51时钟芯片。
(2)单片机的选择 选用8051单片机,并配备11.0592MHz晶振,复位电路采用上电复位。
(3)显示电路选择 采用软件译码动态显示,P3.0-P3.3作数码管的位选口。P1.0-P1.6作数码管的段选口。考虑直接用单片机I/O口作位选时驱动功率不够,因此采用UNL2003作驱动,共阴极数码管显示。
(4)电 源 选 择 采用直流5V电源供电。
3.2 系统软件设计
程序框图如图3.1。
图3.1
单片机在定时闹铃中的应用,打破了人们的传统设计思想,原来单片机的应用很多都是用模拟电路、脉冲数字电路、逻辑部件来实现的功能,现在无需增加硬件设备,可通过软件来完成。正由于这样,单片机已成为科技领域有力工具,人类生活的得力助手。
单片机在工作前,首先必须在程序存储器内装入程序。单片机开始工作后,即按地址先从存储器中取出指令,然后把指令译码,以确定该指令执行的是什么操作和操作数的存放地址,再根据这3个地址取操作数,接着CPU对操作数进行操作,操作结果送入存储器或经接口电路送入显示器,再经过下面的具体调试,我们就可以得到我们设计的结果了。
4 调试过程
4.1 硬件调试
硬件的调试比较困难。因为是调试所以不能对元件进行焊接,只能把各个元件用导线连接起来。调试的整体过程是:各个系统逐个调试,各部分调试成功后再进行组装后的整体调试。
调试过程包括:
1. 显示部分的调试
问题:数码管的显示不稳定,不停的闪烁。
分析:没有考虑到干扰及环境的制约。于是我们把在面包板上连好的电路焊接在印刷板上,并采用电容滤波尽可能去除纹波和干扰。
2. 控制部分的调试
问题:按下按键后数据有时正常有时又不正常,数据的加减不稳定。
分析:根据分析有两个问题可以导致此种现象,一是按键接触不良可能有短路,二是程序部分有问题。用万用表测量后发现按键按下后不稳定,更换质量更好的按键后故障即排除。
4.2 软件调试
程序的调试分几个步骤,首先要在WAVE6000软件中编译通过,然后通过Keil软件把程序下载到单片机中最终调试出满意的效果才算成功。
1.WAVE6000调试
首先,启动WAVE6000新建一个项目,输入一个名字保存,然后打开“真器设置”,在“语言”选项下选择“伟福汇编器”,“缺省显示格式”选择“混合十、十六进制”。“仿真器”选项下选择“使用伟福软件模拟器”。“通信设置”选项下选择“使用伟福软件模拟器”。
打开已经写好的程序,选择“项目”菜单下的“编译”命令,根据Message窗口的编译信息修改程序中的错误地方。直到Message窗口中不再出现错误符号,全部显示正确符号为止。
虽然程序在WAVE6000中编译通过了,但并不代表程序就没有错误,只有最终出现效果才说明没问题。
4.3 KeiL调试
在WAVE6000软件中调试过的程序在KEIL中还有可能有毛病,只有通过KEIL的编译才能下载到试验箱上。
启动Keil软件,选择“Project”菜单下的“New Project”命令,输入项目的文件名,选择存储路径,点击“保存”按钮。
在“Select Device”窗口中选择“Atmel”下的“89C51” 芯片,单击“确定”按钮。展开“Project Workspace”窗口中的“Target 1”, 右击 “Target 1”,选择“Options for Target ’Target 1’”,选择“Target”选项在Keil (MHZ)右边输入“11.0592”。选择“Debug”选项,选择“Use Keil Monitor-51 Driver”。单击“Settings”按钮,串口选择“COM1”,波特率选择“38400”,单击“OK”按钮。
右击“Source Group 1”,选择“Add files to Group ‘Source Group 1’,在文件类型中选择“Asm Source file”,找到将要编译的程序,单击 “ADD”按钮,然后再单击“CLOSE”按钮。单击“Rebuild all target files”,在“Build”窗口中观察编译结果,根据提示修改程序,直到没有错误出现。
4.4试验箱调试
根据程序的设计在试验箱上分别连接好各个端口的连接线,用串口线把计算机和试验箱的仿真头连接好,打开试验箱。
单击Keil软件上的“Start/Stop Debug Session”按钮,再单击“RUN”按钮,运行程序。观察试验箱上出现的效果,分析程序的对错,直到调试出正确的结果。
致 谢
经过两个月的忙碌和工作,本次的毕业设计已经接近尾声,作为一个专科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。
从论文选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感.这篇毕业论文就是我的舞台,以下的言语便是有点成就感后在舞台上发表的发自肺腑的诚挚谢意与感想:
我要感谢,非常感谢我的导师苑成友老师。他为人随和热情,治学严谨细心。在闲聊中他总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面他也总会以“专业标准”严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,苑老师始终认真负责地给予我深刻而细致地指导,帮助我开拓论文思路,精心点拨、热忱鼓励。正是苑老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢苑老师。
我要感谢,非常感谢自己。在论文的写作过程中,自己总是积极主动的,主动与老师同学们沟通,不耻下问。通过写作论文,我更加深刻理解了“态度决定一切”这句话。
其次还要感谢我的一个同学,他在本次设计中勤奋工作,克服了许多困难来完成此次毕业设计,并承担了大部分的工作量。如果没有他的努力工作,此次设计的完成将变得非常困难。还有那些在这期间曾给予我帮助的同学们.
最后,我要感谢,非常感谢两年多的大学生活,感谢我的家人和那些永远也不能忘记的朋友,他们的支持与情感,是我永远的财富。
谢谢!
参考文献
[1] 汪吉鹏.微机原理应用.北京.高等教育出版社,2001
[2] 李 华.MCS-51系列单片机实用接口技术.北京.北京航空航天出版社,1993
[3] 陈立国,陈宇等.单片机原理及应用.北京.机械工业出版社,2001
[4] 耿长青等.单片机应用技术.北京.化工工业出版社,2004
[5] 胡汉才.单片机原理及其接口技术.北京.清华大学出版社,1995
[6] 王幸之,钟爱琴.AT89系列单片机原理与接口技术.北京.北京航空航天大学出版社,2004
[7] 杨文龙.单片机原理及应用.陕西. 西安电子科技大学出版社,1999
附录A:ORG 00H
JMP BEGIN
ORG 0BH
JMP T0-INT
BEGIN:
CLR P3.5 ;继电器1
CLR P3.6 ;继电器2
CLR P20H ;清除闹铃标志
MOV 39H,#1H ;内定的闹铃时间为1点
MOV 3AH,#1H ; 内定的闹铃时间
展开阅读全文