




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I. 摘要单片机在日常生活中得到了广泛的应用,作为一个微控制器,它具有体积小,功能强,处理速度快,与C语言很好的结合,方便开发的诸多优点,C51单片机已经成为了一个经典。数码管显示在日常生活中也尤为重要,特别是它的显示效果,在某些场合下,其它显示器件是无法胜任的,而且他价格低廉。串口通信,在计算机通信中有着很重要的地位,使用它,上位机与下位机的通信非常方便,ISD1420芯片,作为一个经典的语音芯片,它的使用非常方便,控制简单,一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。JAVA语言是比较流行的编程语言,其简单,高效使之得到了广大编程人员的认可。数字钟在日常的生活中尤为重要,作为时间的估量,他必须精确。本次课程设计就以,STC89C52单片机,6个八段数码管,ISD1420语音芯片,喇叭,串口通信,JAVA语言实现一个带有上位机调时,数码管显示,整点报时的数字钟系统。关键字:整点报时、串口通信、数码管显示、数字钟。II. AbstractMicrocomputer in the daily life a wide range of applications, as a micro controller, it has small, the function is strong,fast processing speed, and C language is very good union, for development of many other advantages, C51 has become a classic. Digital pipe display in daily life is also very important, especially its display effect, in some cases, other display device is not competent for, and he at low prices. Serial communication, in computer communication has a very important position, use it, PC and a machine under the communication is very convenient, and ISD1420 chips, as a classic voice chip, it is very easy to use, simple control one of the least of system like the only by a microphone, a horn, two button, a power supply, a few resistance of capacitance. JAVA language is more popular programming language, its simple, efficient to get the general programming staff recognition. A digital clock in daily life is especially important, as a measure of time, he must be precise. This course is designed to, STC89C52 microcontroller, six for the digital tube, ISD1420 voice chip, horn, serial communication, JAVA language implementation with a PC tone, digital pipe display shows the time on the hour, a digital clock system.Key word: on the hour time, the serial communication, digital pipe display, digital clock.目录I.摘要1II.Abstract11.设计要求及方案确定3A.设计要求3B.方案确定32.硬件电路设计及描述3A.器件的型号和参数31.单片机的选择32.STC89C52的详细资料33.时钟的实现34.LED数码管显示模块35.串口通信36.整点报时3B.硬件整体电路图33.软件设计3A.主程序3B.定时器T0中断服务程序3C.串口修改模块3D.整点报时模块3E.显示模块3F.上位机模块3G.单片机程序源码34.小结35.参考文献31. 设计要求及方案确定A. 设计要求利用单片机设计制作具有下列功能的数字钟: 自动计时,由6位LED显示器显示时、分和秒 具备调整功能,可以直接由PC机通过串口调整数字钟的时间; 具备整点报时功能,报出当前的时间。B. 方案确定数字钟电路由单片机、串口通信、时钟显示模块及语音报时模块组成。单片机选用STC89C52即可;串口通信使用MAX232芯片,以及一个串行口,接通单片机的串行输入输出口;时钟显示模块,由6个LED数码管,两个74HC573芯片组成,分时复用单片机的P1口;语音报时模块,使用ISD1420语音芯片,喇叭,以及单片机的P0口作为地址,P2口的部分引脚作为控制位;内部定时器T0作为数字钟的信号产生源。2. 硬件电路设计及描述A. 器件的型号和参数1. 单片机的选择单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面:1) 多功能 单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器-看家狗)、高速I/O口及计数器的捕获/比较逻辑等。有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMART CARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。2) 高效率和高性能 为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。3) 低电压和低功耗单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。4) 低价格单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。下面大致介绍一下单片机的主要应用领域和特点:1) 家用电器领域用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。2) 办公自动化领域单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、打印机、复印机、电话机和传真机等。3) 商业应用领域商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。4) 工业自动化在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。5) 智能仪表与集成智能传感器目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机和传感器相结合,可以构成新一代的智能传感器。它将传感器变换后的物理量作进一步的变化和处理,使其成为数字信号,可以远距离传输并与计算机接口。6) 现代交通与航空航天领域通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。 目前,我国生产很多型号的单片机,在此,我们采用型号为STC89C52的单片机STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本 2. STC89C52的详细资料STC89C52引脚图:STC89C52单片机的P口特点:P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行 MOVX DPTR)时,P2口送出高8位地址。在访问8位地址的外部数据存储器(如执行 MOVX RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。 P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 内部单元: 1、算术逻辑部件ALU:用以完成+、-、*、/ 的算术运算及布尔代数的逻辑运算,并通过运算结果影响程序状态寄存器PSW的某些位,从而为判断、转移、十进制修正和出错等提供依据。2、累加器A:在算术逻辑运算中存放一个操作数或结果,在与外部存储器和I/O接口打交道时,进行数据传送都要经过A来完成。3、寄存器B:在 *、/ 运算中要使用寄存器B 。乘法时,B用来存放乘数以及积的高字节;除法时,B用来存放除数及余数。不作乘除时,B可作通用寄存器使用。 4、程序状态标志寄存器PSW:用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。Cy:进位标志。有进位或借位,则Cy1,否则Cy0 ;在布尔运算时,Cy(简称C)作为布尔处理器。AC:辅助进位标志位。F0:用户标志位:用户可用软件对F0置位“1”或清“0”,以决定程序的流向。OV:溢出标志位:当运算结果溢出时,OV为“1”,否则为“0”。D.1:未定义。P: 奇偶校验位:当累加器A中的“1”的个数为奇数时,P置“1”,否则P置“0”。RS1、RS0:工作寄存区选择位:指令的执行提供依据。STC89C52 一共有5个中断优先级,分别是外部中断0、定时器0、外部中断1、定时器1、串口中断。3. 时钟的实现1) 由于本系统要使用到串口通信,故定时器1不能被其他功能占用;2) 时钟使用定时器0来时实现,定时器0最大只能定时65ms;3) 所以我们使定时器0工作在方式1,每隔50ms产生一个中断,每20次采样一次,始终就实现了。4. LED数码管显示模块a) LED数码管显示电路图:b) LED数码管简介1) 数码管简介:LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a、b、c、d、e、f、g、dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的 字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。2)数码管工作原理:LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 A、静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位*器*进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要58=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。 B、动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。3)本次课程设计用的是数码管的动态显示。c) 简介引脚图:功能:74HC573是8数据锁存器。主要用于数码管、按键等等的控制 1. 真值表Dn LE OE OnH H L HL H L LX L L QoX X H Z这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。2. 高阻态 就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁; 高阻态的概念在RS232和RS422通讯中还可以用到。 3. 数据锁存 当输入的数据消失时,在芯片的输出端,数据仍然保持; 4. 数据缓冲 加强驱动能力d) 数码管显示原理本次课程设计中,动态显示模块,使用两片锁存器,其中一片用来进行片选,决定哪一个数码管显示,另外一片用来决定显示什么,而这两片锁存器,又共用口,用不同的片选信号来决定哪一片有用,减少了端口的使用。5. 串口通信a) 电路图b) 简介) 引脚图:引脚介绍第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。) 主要特点:1、符合所有的RS-232C技术标准 2、只需要单一 +5V电源供电 3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- 4、功耗低,典型供电电流5mA 5、内部集成2个RS-232C驱动器 6、内部集成两个RS-232C接收器 7、高集成度,片外最低只需4个电容即可工作。c) 串口通信的原理STC89C52中当接收区SBUF满的时候,RI置,触发串口中断,这时候可以将SBUF中的数据取出,同时将RI清0。上位机发送数据,每次发送三个八位的数据,分别为时、分、秒,下位机循环接受三个数据,依次写入到时、分、秒。6. 整点报时a) 电路图:b) ISD1420简介ISD1420为美国ISD公司出品的优质单片语音录放电路,由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利-直接模拟存储技术(DAST TM)实现的。利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器.直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现.仅语音质量优胜,而且断电语音保护.) 引脚图各管脚功能如下: 名 称管 脚功 能名 称管 脚功 能A0A516地址Ana Out21模拟输出A6、A79、10地址(MSB)Ana In20模拟输入VCCD28数字电路电源AGC19自动增益控制VCCA16模拟电路电源Mic17麦克风输入VSSD12数字地Mic Ref18麦克风参考输入VSSA13模拟地PLAYE24放音,边沿触发SP+、14、15喇叭输出+、REC27录音XCLK26外接定时器(可选)RECLED25发光二极管接口NC11空脚PLAYL23放音,电平触发) 使用方法:ISD1420地址输入端具有双重功能,根据地址中的A6、A7的电平状态决定A0A7 的功能。如果A6、A7 有一个低电平,A0A7 输入全解释为地址位,作为起始地址用,此时地址线仅作为输入端,在操作过程中不能输出内部地址信息。根据PLAYE、PLAYL 或REC 的下降沿信号,地址输入被锁定。如果A6、A7 同为高电平时,它们即为模式位。地址输入端A0A7有效值范围为0000000010011111,这表明最多可被划分为160个存贮单元,可录放多达160段语音信息。由A0A7决定每段语音的起始地址,而起始地址又直接反映了录放的起始时间。其关系见公式:TQ=0.125s(128A7+64A6+32A5+16A4+8A3+4A2+2A1+0) 语音报时原理:先将0、1、2、3、4、5、6、7、8、9、10、20、点、现在是、录入不同的地址,当整点的时候,在将时分解成两位,分别对应地址 ,然后读出来。B. 硬件整体电路图3. 软件设计A. 主程序实现初始化、LED显示与整点报时,程序流程图如图3.1所示。图3.1B. 定时器T0中断服务程序时钟电路的设计功能是利用单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。利用定时器T0中断服务程序实现计时功能,同时刷新计时缓冲区。定时器T0每隔500ms益处中断一次(设系统使11.0592MHZ晶振,定时T0工作方式1)的定时器处值TL0=19456%256;TH0=19456/256,每循环中断20次则延时时间为1s,重复60次为1min,分计时60次为1小时,小时计时24次则时间重新回到00:00:00。程序流程图如图3.2所示图3,2C. 串口修改模块由上位机发送要设置的时间(时、分、秒),下位机接受三次,然后分别赋给H、M、S,从而实现了时间的设置。程序流程图如图3.3所示。图3.3D. 整点报时模块该模块就是将输进来的数读出来程序流程图如图3.4所示图3.4E. 显示模块 是用数码管的动态扫描方式将时的个位十位,分的个位十位,秒的位十位非别显示在数码管上。程序流程图如图3.5所示图3.5F. 上位机模块) java界面) 程序流程图 如图3,6所示图3,6) 程序源码Little.javaimport java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import m.CommPortIdentifier;import m.NoSuchPortException;import m.PortInUseException;import m.SerialPort;import m.UnsupportedCommOperationException;import javax.swing.JOptionPane;public class Little extends ThreadCommPortIdentifier serialPortId;SerialPort port;OutputStream out;InputStream in;byte datas = 50,59,13;/秒、分、时byte datar = new byte3;Overridepublic void run()try serialPortId =CommPortIdentifier.getPortIdentifier(COM3); catch (NoSuchPortException e) try port = (SerialPort) serialPortId.open(ReadComm, 30); catch (PortInUseException e) /打开COM3串口,其中30是打开串口的超时时间 try port.setSerialPortParams(4800, 8, 1, 0); catch (UnsupportedCommOperationException e) /设置COM3的波特率,数据位,停止位,校验方式 /从串口中得到输入输出流了 try out = port.getOutputStream(); catch (IOException e) e.printStackTrace(); try /写入秒out .write(datas, 0, 1);out .flush(); /写入分out .write(datas, 1, 1); out .flush(); /写入时out .write(datas, 2, 1); out .flush(); catch (IOException e) e.printStackTrace(); try out.close();port.close(); catch (IOException e) e.printStackTrace();public boolean setH(Integer h)if(Value()23|Value()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江省汽车租赁合同
- 高端装备产业园项目建设工程方案
- 招生老师合同5篇
- 金属综合回收利用项目经济效益和社会效益分析报告
- 大学英语教学数字化转型的核心趋势与发展方向
- 生活污水处理厂建设项目建筑工程方案
- 城区供水设施改造工程风险评估报告
- 血液检测基础试题及答案
- 煤炭清洁高效利用项目投资计划书
- 高效设施农业园项目招商引资报告
- 医院“十五五”发展规划(2026-2030)
- Unit1AnimalFriendsSectionA1a-1d课件-人教版英语七年级下册
- 2025铁路局劳动合同示范文本
- 教育信息化中的数字孪生技术应用案例分析
- T/CSPSTC 15-2018新型智慧楼宇评价指标体系
- T/CCPITCSC 096-2022名表真假鉴定规范
- 美的分权规范手册
- 质量策划培训
- 能源托管协议书范本
- 儿童编发课件
- 膀胱镜检查术后护理常规
评论
0/150
提交评论