基于STC12系列单片机的开发板设计

基于STC12系列单片机的开发板设计
基于STC12系列单片机的开发板设计

摘要

单片机自从70年代出现以后迅速发展起来,目前功能更加完善,广泛用于各种控制系统中。开发板以某一单片机为控制核心,集成一些基本硬件模块,可以作为主控模块在各种设备中实现控制功能,也可以用作实验板供初学者练习实践,使用方便,能加快产品开发速度。对自动化专业的学生来说,拥有一块单片机开发板,不管是用来开发产品或学习单片机都非常必要。所以,我设计了一个基于STC12C5410AD单片机的开发板。

本文以STC12C5410AD单片机为控制芯片,设计了一个开发板最小系统,主要包括电源模块、DS1302时钟模块、矩阵键盘和独立键盘模块、LCD1206和12864液晶显示模块、数码管显示模块、步进电机模块、RS232串行通信模块、DS18B20温度检测模块及存储器扩展模块,同时编写了相应的软件程序。

关键词:单片机,开发板,STC12C5410AD

Design of Development Board Based on

STC12 Series MCU

ABSRACT

Single chip microcomputer has been developed rapidly since the 1970s, at present, its function is more perfect, and it is widely used in various control systems. Development board use a single chip processor as the core, integrate some basic hardware modules, can be used as a main control module to control functions in a variety of devices, can also be used as the experimental plate for beginners to practice exercises, easy to use, can accelerate product development.For automation professional students, having a microcontroller development board, whether to develop products or learn microcontroller, is very necessary. So, I designed a development board based on STC12C5410AD MCU.

This paper designed a development board minimum system based on STC12C5410AD microcontroller, mainly including power supply module , DS1302 clock module, matrix keyboard and independent keyboard module, LCD1206 and 12864 liquid crystal display module, digital tube display module, stepper motor module, RS232 serial communication module, DS18B20 temperature detection module and memory expansion module, also write the corresponding software program.

KEY WORDS:S ingle Chip Microcomputer, Development Board, STC12C5410AD

目录

前言 (1)

第1章系统方案 (2)

1.1总体设计方案 (2)

1.2设计原则 (2)

第2章硬件电路设计 (4)

2.1硬件整体结构框图 (4)

2.2硬件电路设计 (4)

2.2.1 STC12C5410AD单片机主控制模块 (5)

2.2.2 键盘电路设计 (7)

2.2.3 DS1302时钟模块 (9)

2.2.4 测温模块 (10)

2.2.5 RS232串行通信模块 (11)

2.2.6 显示模块 (12)

2.2.7 步进电机模块 (17)

2.2.8 存储器扩展模块 (17)

第3章软件设计 (19)

3.1 整体程序设计 (19)

3.2 各模块程序设计 (19)

3.2.1 键盘模块程序设计 (19)

3.2.2 DS1302时钟模块程序设计 (20)

3.2.3 测温模块程序设计 (23)

3.2.4 RS232串行通信模块程序设计 (26)

3.2.5 显示模块程序设计 (27)

3.2.6 步进电机模块程序设计 (33)

第4章开发板PCB设计 (35)

4.1 开发板PCB设计 (35)

4.2 开发板功能说明 (35)

结论 (37)

谢辞 (38)

参考文献 (39)

附录 (40)

外文资料翻译 (49)

前言

单片机诞生于1971年,经历了SCM、MCU、SOC三大阶段,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点,表现出较微处理器更具个性的发展趋势。小到遥控电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生单片机开发板也称单片机学习板、单片机实验板。根据单片机使用的型号又有51单片机开发板、STC单片机开发板、AVR单片机开发板。常见配套有硬件、实验程序源码、电路原理图、电路PCB图等学习资料。

STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强。本文的主要内容是掌握STC12系列单片机的结构、接口、片上外设的特点,并用STC12C5410AD单片机的片上资源设计出适当的最小系统。包括整体方案设计、单片机及外设的选型、硬件电路设计及PCB图的绘制、软件程序编写。

第1章系统方案

1.1总体设计方案

目前市场上单片机的品牌繁多,功能丰富,结合自身需要,以及综合功能设计要求,目前市场比较流行的STC单片机是个不错的选择。STC12系列单片机是一款性价比非常高的单片机,它完全兼容MSC-51 系列单片机,除此之外它自身还有很多特点,如:无法解密,低功耗,高速,高可靠,强抗静电,强抗干扰等。STC12C5410AD系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍,内部集成MAX810专用复位电路,4路PWM,8路高速10位A/D转换,从而使得最小系统的硬件设计大为简单。

本文设计一个STC12系列单片机开发板,主要内容有:

(1) 总体方案设计,单片机及外设等的选型。

(2) 设计硬件电路,完成开发板PCB设计。

(3) 软件设计,完成各功能模块软件例程设计。

(4) 对设计的开发板进行分析,找出系统的不足并提出改进的方法。

1.2设计原则

开发板系统的扩展和配置应遵循以下设计原则[1]:

(1) 尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础;

(2) 系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发;

(3) 硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间;

(4) 系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品;

(5) 可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等;

(6) 单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载;

(7) 尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。

第2章 硬件电路设计

2.1硬件整体结构框图

硬件电路主要包括:STC12C5410AD 单片机主控制器模块、电源模块、DS1302时钟模块、矩阵键盘和独立键盘模块、数码管显示模块、步进电机模块、DS18B20温度检测模块、RS232串口模块、LCD1602模块、LCD12864模块及存储器扩展模块。其中以STC12C5410AD 单片机作为核心控制器,键盘模块用来向单片机输入特定编码的信,DS1302时钟模块用来实现实时时钟,测温模块用来测量环境温度,RS232模块通过电平转换实现通信,数码管模块用来显示简单的数字、字母;LCD1602模块用来显示字母、数字、符号,LCD12864模块用来显示图像、符号、汉字[2]。

硬件结构框图如图2-1所示。

STC12C

5410AD 单片机

LCD1602显示LCD12864显示电源模块步进电机

MAX232模块

数码管显示

按键模块

温度检测

时钟模块

存储器扩展

图2-1 总体硬件结构框图

2.2硬件电路设计

2.2.1 STC12C5410AD单片机主控制模块

STC12C5410AD单片机最小系统包括:MCU、复位电路、晶振电路。原理图如图2-2所示[11]:

图2-2 STC12C系列单片机主控制模块原理图

STC12C5410AD系列单片机特点:

(1)增强型8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051

(2)工作电压:

STC12C5410AD 系列工作电压: 5.5V - 3.5V(5V单片机)

STC12LE5410AD 系列工作电压: 3.6V - 2.2V(3V单片机)

(3)工作频率范围:0~35MHz,相当于普通8051的0~420MHz

(4)用户应用程序空间12K /10K / 8K / 6K / 4K / 2K / 1K 字节......

(5)片上集成512字节RAM

(6) 通用I/O口(27/23/15个),复位后为:准双向口/弱上拉(普通8051传统I/O口),可设置成四种模式:每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA

(7) ISP(在系统可编程)/ IAP(在应用可编程),可通过串口(P3.0/P3.1)直接下载用户程序

(8)有EEPROM功能

(9)看门狗

(10) 内部集成MAX810专用复位电路(外部晶体12M以下时,可省外部复位电路)

(11)时钟源:外部高精度晶体/时钟,内部R/C振荡器,用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/ 时钟。常温下内部R/C振荡器频率为:5.2MHz ~ 6.8MHz

(12)共6个16位定时器

两个与传统8051兼容的定时器/计数器,16位定时器T0 和T1,没有定时器2,PCA模块可再实现4个16位定时器

(13)2个时钟输出口,可由T0的溢出在P1.0输出时钟,可由T1的溢出在P1.1输出时钟

(14)外部中断9路,下降沿中断或低电平触发中断,PCA模式可分别或同时支持上升沿中断/下降沿中断,Power Down模式可由外部中断唤醒

(15) PWM(4路)/PCA(可编程计数器阵列4路)

-- 也可用来当4路D/A使用

-- 也可用来再实现4个定时器

-- 也可用来再实现4个外部中断(上升沿中断/下降沿中断均可分别或同时支持)

(16) A/D转换,10位精度ADC,共8路

(17)通用全双工异步串行口(UART),由于STC12系列是高速的8051可再用定时器软件实现多串口

(18) SPI同步通信口,主模式/从模式

(19)工作温度范围:-40 ~ +85℃(工业级) / 0 ~ 75℃(商业级)

(20)封装:LQFP-32,,SOP-32/28/20,SKDIP-28,PDIP-20,TSSOP-20 (超小封装6.4mm×6.4mm),LQFP32/SOP32有27个I/O口,SOP28/SKDIP28有23个I/O口,SOP20/TSSOP20/PDIP20有15个I/O口,I/O口不够时,可用2到3根普通I/O口线外接74HC595/164/165(均可级联)来扩展I/O 口还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了

串口。

图2-3 STC12C5410AD内部结构图

2.2.2 键盘电路设计

键盘分为编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘。而靠软件编程来识别的键盘称为非编码键盘,在单片机组成的各种系统中,用的较多的是非编码键盘。非编码键盘又分为独立键盘和行列式键盘(常说的矩阵键盘)[5]。

本设计键盘模块包括独立键盘和矩阵键盘,当所需按键数量很少的时候选择独立按键,独立按键原理图如图2-4所示:

图2-4 独立按键电路原理图

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图2-5所示:

图2-5 矩阵键盘电路原理图

矩阵键盘通过JPZ1和PJZ用排插和单片机P2口连接,在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P2口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键),在需要的按键数较多时,采用矩阵法来做键盘是合理的[6]。

2.2.3 DS1302时钟模块

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM 的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。采用三线接口与MCU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。主要性能指标有:31字节带后备电池的RAM用于数据存储;串行I/O口,管脚数量少;宽范围工作电压:2.0~5.5V;工作电压2.0V时,电流小于300nA;读/写时钟或RAM数据时有两种传送方式—单字节传送和突发模式传送;

8 脚DIP封装或其他可选封装方式;简单的3线接口;与TTL 兼容(Vcc = 5V);可选工业级温度范围:- 40℃~+ 85℃;与DS1202 兼容[4]。

DS1302 的引脚如图2-6所示:

图2-6 DS1302引脚图

Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2高于Vcc1时,Vcc2给DS1302供电。当Vcc2低于Vcc1时,DS1302由Vcc1 供电。X1、X2为振荡源,外接32.768MHz晶振。I/O为串行数据输入/输出端(双向),SCL K为时钟输入端。RST是复位片选线,通过把RST 输入驱动置为高电平来启动所有的数据传送。RST输入有两种功能:RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许DS1302进行操作。如果在传送过程中置RST为低电平,则会终止此次数据传送,并且I/ O引脚变为高阻态。上电运行时,在Vcc高于2. 5V之前,RST必须保持低电平。只有在SCL K为低电平时,才能将RST

置为高电平。

DS1302时钟模块的原理图如图2-7所示:

图2-7 DS1302时钟原理图

单片机与DS1302通过P3.5、P3.6、P3.7相连,分别为时钟信号线、输入输出线、复位信号线。DS1302的晶振引脚连接32.768MHZ的晶振。

2.2.4 测温模块

DS18B20 是DALLAS 半导体公司生产的,是一种单总线温度传感器,属于新一代适配微处理器的智能温度传感器,有两种封装形式分别为3脚PR-35封装和16脚SSOP封装[3]。本文采用的是3脚PR-35封装,其具有以下特点:采用了单总线技术,传感器直接以二进制输出被测温度,可通过串行口线,也可与单机通过I/O 口连接;测量温度范围为:- 55℃~+125℃,测量精度高达+0.5℃;内含寄生电源,在两线方式下可通过数据线提供寄生电源,而不需要再单独供电;转换时间在分辨率为12位(即0.0625℃)时最大为750ms;用户可分别对每个器件设定温度上下限;DS18B20 在使用时不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;电源极性接反时,芯片不会因发热而烧毁,但不能正常工作;每个DSl8B20 器件对应一个唯一的64 位长的序号,该序号值存放ROM中,可通过序号匹配实现多点测温。

DS18B20温度传感器模块的原理图如图2-8所示:

图2-8 DS18b20温度传感器模块原理图

(1) VDD接电源引脚,电源供电3.0~5V

(2) DQ为数据的输入和输出引脚

(3) GND接地

DS18B20通过插针与单片机的P3.7相连,作为数据/控制信号线。在两线方式下可通过数据线提供寄生电源,而不需要再单独供电,本设计中采用三线方式,由电源直接供电。

2.2.5 RS232串行通信模块

RS232是由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。

RS232与TTL电路之间需要进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。MAX232芯片可完成TTL ←→RS232双向电平转换。

MAX232芯片是RS232标准接口芯片,使用+5v单电源供电。是PC 机与单片机串口进行通讯的电平转换芯片。内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS232串口电平的需要。

第二部分是数据转换通道。由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输入转

换成RS232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

第三部分是供电。15脚DNG、16脚VCC(+5V)。

MAX232模块的原理图如图2-9所示:

图2-9 MAX232模块的原理图

单片机与MAX232通过P3.0、P3.1相连,分别为发送线、接收线,另外单片机要与MAX232共地。

2.2.6 显示模块

1. 数码管模块

(1) 数码管静态显示原理

当多位数码管应用于某一系统时,它们的“位选”是可独立控制的,而“段选”是连接在一起的,我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那么它们显示的数字必定一样,数码管的这种显示方法叫做静态显示。

(2) 动态扫描显示原理

动态扫描显示中,八个数码管依次被点亮并不断循环,如果速度足够快,那么将看到连续的数字显示,轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余

辉效应,尽管实际上各位显示器并非同时点亮,每个时刻只有一个数码管被点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

(3) 硬件实现

数码管模块的原理图如图2-10所示:

图2-10 数码管模块原理图

如图2-10所示,单片机通过一片74HC573锁存器控制数码管的段选,通过一片74LS138译码器控制数码管的位选[7],74HC573的使能直接接单片机的P2.5引脚,PSC通过8PIN排线接单片机的P1口。

2. LCD1602模块

(1) LCD1602简介

LCD1602点阵字符液晶模块是由点阵字符液晶显示器件和专用的行列驱动器,控制器及必要的连接件,结构件装配而成,可以显示数字和英文字符。

LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2-1所示:

表2-1 LCD1602引脚接口图

(2) 硬件实现

LCD1602模块的原理图如图2-11所示:

图2-11 LCD1602模块原理图

LCD1602通过插针可以与单片机P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7、P2.0、P2.1、P2.2相连,P1.0—P1.7为数据线,P2.0、P2.1、P2.2为控制线。

3. LCD12864模块

(1) LCD12864简介[8]

LCD12864汉字图形点阵液晶显示模块可以显示汉字、图形、ASCⅡ码和自定义字形,内置8192个16*16的中文汉字、128个8*16字符、以及64*256点阵显示RAM,控制器为ST7920,具有串/并接口方式,其内部含有中文字库,LCD12864显示屏为128*64点阵,可显示4行,每行8

个字,模块内含有多种软件功能:光标显示、画面移位、自定义字符、反白、清除、关闭显示和睡眠模式等,可方便地对模块进行控制。模块内置升压电路,无需负压,配置LED背光。3V低电平工作时,只需一个20K 的电阻与Vo的地相接。适用于3.3V~5V宽范围工作电压的系统。

RS,R/W的配合决定的4种模式见表2-2:

表2-2 RS,R/W决定的控制模式

LCD12864的并行接口见表2-3:

表2-3 LCD12864的并行接口

*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。

*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。

*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。

(2) 硬件实现

开发板上LCD12864模块的原理图如图2-12所示:

图2-12 LCD12864模块原理图

LCD12864通过插针可以连单片机的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7、P2.0、P2.1、P2.2,P1.0--P1.7为数据线,P2.0、P2.1、P2.2为控制线。

相关文档
最新文档