LED灯循环显示速度的电位器控制设计说明.docx
- 文档编号:9596042
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:65
- 大小:1.41MB
LED灯循环显示速度的电位器控制设计说明.docx
《LED灯循环显示速度的电位器控制设计说明.docx》由会员分享,可在线阅读,更多相关《LED灯循环显示速度的电位器控制设计说明.docx(65页珍藏版)》请在冰豆网上搜索。
LED灯循环显示速度的电位器控制设计说明
学号
天津城建大学
单片机原理及接口技术课程设计
设计说明书
LED灯循环显示速度的电位器控制设计
起止日期:
2014年12月22日至2014年12月31日
学生姓名
班级
12电信二班
成绩
指导教师(签字)
计算机与信息工程学院
2014年12月31日
第一章设计任务及要求
1.1设计目的
1.进一步熟悉和掌握单片机系统设计和编程原理。
2.掌握单片机的接口技术及相关外围芯片的外特性、控制方法。
3.通过设计,掌握以单片机核心的电路设计的基本方法和技术。
4.通过实际程序设计和调试,掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统的全过程,为今后从事相应开发打下基础。
1.2设计基本要求
1.认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。
2.提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。
3.提高独立分析、解决问题的能力,逐步增强实际应用训练。
4.设计的说明书要求简洁、通顺,电路图内容完整、清楚、规范。
1.3设计任务
a)设计实现功能
STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用LCD1602显示时间、温度和电位器输出电压,并使发光二级管循环点亮。
一是扩展DS12C887外围电路,实现时间信息显示;二是DS18B20温度信息显示的设计;三是利用单片机A/D转换器测量电位器输出电压大小,控制发光二级管循环点亮的速度与A/D转换结果成正比。
b)原理图设计
1.原理图设计要符合项目的工作原理,连线要正确。
2.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。
3.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全。
c)程序调计
1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。
2.根据总体要求及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。
d)程序调试
1.编写相关程序,并进行仿真。
2.将程序下载到单片机,进行运行调试。
e)设计说明书
1.原理图设计说明
简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。
2.程序设计说明
对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。
3.画出工作原理图,程序流程图并给出相应的程序清单。
第二章设计原理
2.1STC12C5A60S2以及最小系统介绍
STC12C5A60S2是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图2.1STC12C5A60S2引脚图及晶振复位电路
引脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表2.2所示:
表2.2P3口第二功能表
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.2DS12C887时钟芯片
2.2.1DS12C887概述
DS12C887实时时钟芯片功能丰富,可以用来直接代替IBMPC上的时钟日历芯片DS12887,同时,它的管脚也和MC146818B、DS12887相兼容。
由于DS12C887能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部又增加了世纪寄存器,从而利用硬件电路解决子“千年”问题;DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久;对于一天内的时间记录,有12小时制和24小时制两种模式。
在12小时制模式中,用AM和PM区分上午和下午;时间的表示方法也有两种,一种用二进制数表示,一种是用BCD码表示;DS12C887中带有128字节RAM,其中有11字节RAM用来存储时间信息,4字节RAM用来存储DS12C887的控制信息,称为控制寄存器,113字节通用RAM使用户使用;此外用户还可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。
2.2.2DS12C887引脚介绍
图2.2.2DS12887引脚图
引脚说明:
GND、VCC:
直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时,DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作。
(1)MOT:
模式选择脚,DS12C887有两种工作模式,即Motorola模式和Intel模式,当MOT接VCC时,选用的工作模式是Motorola模式,当MOT接GND时,选用的是Intel模式。
本文主要讨论Intel模式。
(23)SQW:
方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出,此时用户可以通过对控制寄存器编程来得到13种方波信号的输出。
AD0~AD7:
复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0~AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0~AD7上的数据信息。
(14)AS:
地址选通输入脚,在进行读写操作时,AS的上升沿将AD0~AD7上出现的地址信息锁存到DS12C887上,而下一个下降沿清除AD0~AD7上的地址信息,不论是否有效,DS12C887都将执行该操作。
(17)DS/RD:
数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平,被称为数据选通。
在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0~AD7上,以供外部读取。
在写操作中,DS的下降沿将使总线AD0~AD7上的数据锁存在DS12C887中;当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚,即ReadEnable。
(15)R/W:
读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式。
此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W为高电平时为读操作,R/W为低电平时为写操作;当MOT接GND时,该脚工作在Intel模式,此时该作为写允许输入,即WriteEnable。
(13)——C——S:
片选输入,低电平有效。
(19)——I——R——Q:
中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影响。
2.2.3DS12C887内部地址空间
2.3LCD1602液晶以显示模块
2.3.11602液晶概述
工业字符型液晶,1602是指显示的内容为16*2,即能够同时显示两行,每行16个字符。
常见的1602字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。
本课题所用1602液晶模块,显示屏是蓝色背光白色字体。
2.3.21602引脚介绍
图2.3.21602引脚图
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
2
VDD
电源正极
3
VEE
液晶显示对比度调节端
4
RS
数据/命令选择端
5
R/W
读写选择
6
E
使能信号
7
D0
数据口
8
D1
数据口
9
D2
数据口
10
D3
数据口
11
D4
数据口
12
D5
数据口
13
D6
数据口
14
D7
数据口
各个引脚具体功能说明:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用一个1K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
DB0~DB7为8位双向数据线。
2.3.31602字符液晶的读写
(1)基本操作时序
操作
输入
输出
读状态
RS=L,RW=H,E=H
D0~D7=状态字
写指令
RS=L,RW=L,D0~D7=指令码,E=高脉冲
无
读数据
RS=H,RW=H,E=H
D0~D7=数据
写数据
RS=H,RW=L,D0~D7=数据,E=高脉冲
无
(2)RAM
1602液晶控制器芯片内部带有80个8位的RAM缓冲区,其地址和屏幕的对应关系如图2.3.3示
图2.3.3
(3)1602字符液晶字库
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
2.4DS18B20温度传感器与A/D转换
2.4.1DS18B20概述
DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:
(1)采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
(2)测量温度范围宽,测量精度高DS18B20的测量范围为-55℃~+125℃;在-10~+85°C范围内,精度为±0.5°C。
(3)在使用中不需要任何外围元件。
(4)持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多点测温。
(5)供电方式灵活DS18B20可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
(6)测量参数可配置DS18B20的测量分辨率可通过程序设定9~12位。
(7)负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(8)掉电保护功能DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
2.4.2DS18B20引脚介绍
图2.4.2DS18B20引脚图
引脚说明:
1.GND为电源地;
2.DQ为数字信号输入/输出端;
3.VDD为外接供电电源输入端(在寄生电源接线方式时接地)
2.4.3DS18B20功能使用
一、DS18B20内部构成
图2.4.3DS18B20内部结构图
高速暂存存储器由9个字节组成,如图2.4.4所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
图2.4.4
DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中S为符号位。
例如:
+125℃的数字输出07D0H
(正温度直接把16进制数转成10进制即得到温度值)
-55℃的数字输出为FC90H。
(负温度把得到的16进制数取反后加1再转成10进制数)
二、读操作和写操作
写操作
写周期最少为60微秒,最长不超过120微秒。
写周期一开始做为主机先把总线拉低1微秒表示写周期开始。
随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。
若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。
而做为从机的DS18B20则在检测到总线被拉底后等待15微秒然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。
读操作
对于读数据操作时序也分为读0时序和读1时序两个过程。
读时隙是从主机把单总线拉低之后,在1微秒之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。
DS18B20在检测到总线被拉低1微秒后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束。
若要送出1则释放总线为高电平。
主机在一开始拉低总线1微秒后释放总线,然后在包括前面的拉低总线电平1微秒在内的15微秒时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0。
采样期内总线为高电平则确认为1。
完成一个读时序过程,至少需要60us才能完成。
2.4.4A/D转换器的结构
STC12C5A60S2系列单片机ADC由多路选择开关、比较器、逐次比较寄存器、10位DAC、
转换结果寄存器(ADC_RES和ADC_RESL)以及ADC_CONTR构成。
STC12C5A60S2系列单片机的ADC是逐次比较型ADC。
逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从最高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应次。
逐次比较型A/D转换器具有速度高,功耗低等优点。
STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口((P1.7-P1.0),有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。
8路电压输入型A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。
上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。
STC12C5A60S2系列单片机ADC(A/D转换器)的结构如下图2.5.2所示。
图2.5.2STC12C5A60S2A/D转换器结构
2.4.5与A/D转换相关的寄存器
与STC12C5A60S2系列单片机A/D转换相关的寄存器列于下图2.5.3所示。
图2.5.3A/D转换相关寄存器
第三章硬件设计
3.1系统硬件概述
STC12C5A60S2作为主控芯片,时钟电路由高精度低功耗的DS12C887提供,本设计硬件构造主要由四部分构成:
复位电路、时钟获取电路、温度获取、键盘扫描和LCD显示电路。
图3.1.1硬件构造流程图
3.2硬件复位电路
Vcc的+5V电平就会直接加到REST端,单片机复位。
晶振为单片机提供稳定的振荡频率。
图3.2单片机复位电路图
3.3时间获取电路
单片机通过P0口与DS12C887时钟芯片的AD[0..7]管脚相连接,用来获取时间信息。
DS12C887芯片的MOT端接地,使其为Intel模式。
图3.3DS12887时间电路
3.4DS18B20测温及LED电路
DS18B20的第二个引脚接单片机的P17,用来读取DS18B20温度转换的数据。
8个LED显示由74HC573扩展的输出口控制,硬件电路由单片机、8个发光二级管、限流电阻、TTL输出口扩展电路等组成。
3.5LCD液晶显示电路
图3.41602显示电路
3.6AD转换电路及按键扫描电路
利用电位器VR4的分压作为单片机A/D转换的输入信号,由LCD1602显示A/D转换结果。
排针P7的第一个脚接VCC,第三个脚接GND,第二个脚接单片机的AD转换模拟通道P1.3脚,用来测量电位器的电压。
4*4矩阵键盘行输入接单片机P1.0-P1.3,列输入接单片机P1.4-P1.7,通过扫描方式检测是否有键按下,并确定键值。
设置跳线,连接P1与P2,(P1口连接键盘行列)
第四章软件设计
4.1程序流程框图
软件设计主要分为DS12887时间获取、温度获取及LCD液晶显示。
N
Y
N
N
YY
图4.1.1时间温度显示流程图图4.1.2中断服务程序流程图
4.2程序设计
主程序:
voidmain()
{
TMOD=0x01;
TH0=(65536-k)/256;
TL0=(65536-k)%256;
EA=1;
ET0=1;
TR0=0;
t=0xfe;
t1=0x7f;
SP=0x60;
lcd_init();
DS_init();
InitADC();
AUXR1&=~ADRJ1;
//write_time();//DS12C887时间设置
DS18B20_Init();
while
(1)
{
num=keyscan(0x7f,4);
key=num;
GetADCResult(3);
crt_U();//ADresultdisplay
Delay2
(1);
TR0=0;
crt_wendu(2,10);
TR0=1;
if((DS_C&0x10)!
=0)//显示时间
{
crt_time
(1);//TR0=0;
}
Delay2
(1);
}
}
4.2.1DS18B20读取温度程序
1./*DS18B20初始化*/
voidDS18B20_Init()
{
DS1820_Reset();
DS1820_WriteData(0xCC);//跳过ROM
DS1820_WriteData(0x4E);//写暂存器
DS1820_WriteData(0x20);//往暂存器的第三字节中写上限值
DS1820_WriteData(0x00);//往暂存器的第四字节中写下限值
DS1820_WriteData(0x7F);//将配置寄存器配置为12位精度
DS1820_Reset();
}
2./*DS1820复位及存在检测*/
bitDS1820_Reset()
{
bitflag;
DS1820_DQ=0;//拉低总线
DelayXus(480);//延时480微秒,产生复位脉冲
DS1820_DQ=1;//释放总线
DelayXus(80);//延时80微秒对总线采样
flag=DS1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LED 循环 显示 速度 电位器 控制 设计 说明