STC89C52 单片机来设计的数字钟 单片机课程设计Word文档格式.docx
- 文档编号:18809888
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:35
- 大小:496.24KB
STC89C52 单片机来设计的数字钟 单片机课程设计Word文档格式.docx
《STC89C52 单片机来设计的数字钟 单片机课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《STC89C52 单片机来设计的数字钟 单片机课程设计Word文档格式.docx(35页珍藏版)》请在冰豆网上搜索。
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。
其发展趋势不外乎以下几个方面:
1)多功能
单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。
比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。
有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。
例如,有的芯片以51内核为核心,集成了USB控制器、SMARTCARD接口、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输入。
在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。
在访问8位地址的外部数据存储器(如执行MOVX@RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
P3口:
P3口是一个带有内部上拉电阻的8位双向I/O端口。
P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
内部单元:
1、算术/逻辑部件ALU:
用以完成+、-、*、/的算术运算及布尔代数的逻辑运算,并通过运算结果影响程序状态寄存器PSW的某些位,从而为判断、转移、十进制修正和出错等提供依据。
2、累加器A:
在算术/逻辑运算中存放一个操作数或结果,在与外部存储器和I/O接口打交道时,进行数据传送都要经过A来完成。
3、寄存器B:
在*、/运算中要使用寄存器B。
乘法时,B用来存放乘数以及积的高字节;
除法时,B用来存放除数及余数。
不作乘除时,B可作通用寄存器使用。
4、程序状态标志寄存器PSW:
用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。
Cy:
进位标志。
有进位或借位,则Cy=1,否则Cy=0;
在布尔运算时,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个数码管静态显示则需要5×
8=40根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。
故实际应用时必须增加*驱动器进行驱动,增加了硬体电路的复杂性。
B、动态显示驱动:
数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。
3)本次课程设计用的是LED数码管的动态显示。
c)74HC573简介
引脚图:
功能:
74HC573是8数据锁存器。
主要用于数码管、按键等等的控制
1.真值表
DnLEOEOn
HHLH
LHLL
XL LQo
XXHZ
这个就是真值表,表示这个芯片在输入和其它的情况下的输出情况。
2.高阻态
就是输出既不是高电平,也不是低电平,而是高阻抗的状态;
在这种状态下,可以多个芯片并联输出;
但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁;
高阻态的概念在RS232和RS422通讯中还可以用到。
3.数据锁存
当输入的数据消失时,在芯片的输出端,数据仍然保持;
4.数据缓冲
加强驱动能力
d)LED数码管显示原理
本次课程设计中,LED动态显示模块,使用两片74HC573锁存器,其中一片用来进行片选,决定哪一个数码管显示,另外一片用来决定显示什么,而这两片锁存器,又共用P1口,用不同的片选信号来决定哪一片有用,减少了端口的使用。
5.串口通信
a)电路图
b)MAX232简介
1)引脚图:
引脚介绍
第一部分是电荷泵电路。
由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)。
2)主要特点:
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置1,触发串口中断,这时候可以将SBUF中的数据取出,同时将RI清0。
上位机发送数据,每次发送三个八位的数据,分别为时、分、秒,下位机循环接受三个数据,依次写入到时、分、秒。
6.整点报时
a)电路图:
b)ISD1420简介
ISD1420为美国ISD公司出品的优质单片语音录放电路,由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。
一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。
录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利--直接模拟存储技术(DASTTM)实现的。
利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器.直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现.仅语音质量优胜,而且断电语音保护.
1)引脚图
各管脚功能如下:
名称
管脚
功能
A0~A5
1~6
地址
AnaOut
21
模拟输出
A6、A7
9、10
地址(MSB)
AnaIn
20
模拟输入
VCCD
28
数字电路电源
AGC
19
自动增益控制
VCCA
16
模拟电路电源
Mic
17
麦克风输入
VSSD
12
数字地
MicRef
18
麦克风参考输入
VSSA
13
模拟地
PLAYE
24
放音,边沿触发
SP+、-
14、15
喇叭输出+、-
REC
27
录音
XCLK
26
外接定时器(可选)
RECLED
25
发光二极管接口
NC
11
空脚
PLAYL
23
放音,电平触发
2)使用方法:
ISD1420地址输入端具有双重功能,根据地址中的A6、A7的电平状态决定A0~A7的功能。
如果A6、A7有一个低电平,A0~A7输入全解释为地址位,作为起始地址用,此时地址线仅作为输入端,在操作过程中不能输出内部地址信息。
根据PLAYE、PLAYL或REC的下降沿信号,地址输入被锁定。
如果A6、A7同为高电平时,它们即为模式位。
地址输入端A0~A7有效值范围为00000000~10011111,这表明最多可被划分为160个存贮单元,可录放多达160段语音信息。
由A0~A7决定每段语音的起始地址,而起始地址又直接反映了录放的起始时间。
其关系见公式:
TQ=0.125s×
(128A7+64A6+32A5+16A4+8A3+4A2+2A1+0)
3)语音报时原理:
先将0、1、2、3、4、5、6、7、8、9、10、20、点、现在是、录入不同的地址,当整点的时候,在将时分解成两位,分别对应地址,然后读出来。
B.硬件整体电路图
3.软件设计
A.主程序
实现初始化、LED显示与整点报时,程序流程图如图3.1所示。
图3.1
B.定时器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,2
C.串口修改模块
由上位机发送要设置的时间(时、分、秒),下位机接受三次,然后分别赋给H、M、S,从而实现了时间的设置。
程序流程图如图3.3所示。
图3.3
D.整点报时模块
该模块就是将输进来的数读出来
程序流程图如图3.4所示
图3.4
E.显示模块
是用数码管的动态扫描方式将时的个位十位,分的个位十位,秒的位十位非别显示在数码管上。
程序流程图如图3.5所示
图3.5
F.上位机模块
1)java界面
2)程序流程图如图3,6所示
图3,6
3)程序源码
Little.java
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
importm.CommPortIdentifier;
importm.NoSuchPortException;
importm.PortInUseException;
importm.SerialPort;
importm.UnsupportedCommOperationException;
importjavax.swing.JOptionPane;
publicclassLittleextendsThread{
CommPortIdentifierserialPortId;
SerialPortport;
OutputStreamout;
InputStreamin;
bytedatas[]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STC89C52 单片机来设计的数字钟 单片机课程设计 单片机 设计 数字 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)