基于单片机的数据显示及串口通信系统 - 图文

更新时间:2023-09-24 08:41:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

序号(学号):

0121309340710

学生实习报告书

实习类别 实习地址 学 院 专 业 班 级 姓 名 指导教师

单片机应用实习 武汉理工大学信息工程学院

信息工程学院 通信工程 通信1303班 蒋立豪 方艺霖

2016 年 1 月 1 日

实 习 执 行 大 纲

一、 实习目的

1、巩固《单片机原理与应用》理论课的理论知识; 2、熟悉单片机应用系统的硬件设计及软件设计的基本方法;

3、将《单片机原理与应用》理论课的理论知识应用于实际的应用系统中; 4、训练单片机应用技术,锻炼实际动手能力。

二、实习纪律与要求

1、实习纪律

1)参加实习的学生必须按照实习大纲的要求,在指导教师的指导下,全面

完成实习任务;

2)听从指导教师安排,严格遵守实习纪律;

3)因故在实习期间缺勤累计超过规定时间的三分之一,不得参加本次实习

考核,但可在补足所缺天数后再给予考核并评定实习成绩。

2、基本要求

1)利用PROTEL等软件进行硬件设计; 2)利用Keil uV2软件完成应用系统软件设计; 3)利用PROTEUS软件进行仿真设计;

4)完成单片机最小系统和应用系统电路板的焊接; 5)对电路进行调试;

6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试; 7)题目由指导教师提供;)

8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务; 9)写出实习报告,实习报告主要包括以下内容:目录、摘要、关键词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实

物运行结果照片、结论、参考文献等;

10)实习完成后通过答辩;

11)答辩时交实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。

三、实习地点

武汉理工大学信息工程学院通信实验室(鉴主15楼)。

2016年1月1日---2016年1月15日

四、实习时间

实习单位: 武汉理工大学信息工程学院

参观考察单位: (1)

武汉理工大学信息工程学院国创课题小组

(2) 武汉理工大学信息工程学院开放实验室 (3) 武汉理工大学电工电子实习中心 (4) (5) (6)

实习开始时间:20 16 年 1 月 1 日,实习时间共 14 天。

完成实习报告时间:20 16 年 1 月 15 日。

武汉理工大学单片机应用实习

实 习 报 告 摘 要

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理

能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 Keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。

本文先介绍了STC89S52单片机最小系统包括复位和时钟电路及供电系统、4×4矩阵键盘、显示电路以及MAX232和RS-232标准串口构成的串口通信电路,然后利用Proteus软件仿真,Keil软件编程最终实现了单片机的数据显示、功能选择、数据输入、数据通信这些功能。

关键字:单片机 仿真 最小系统 编程 Keil

I

武汉理工大学单片机应用实习

Abstract

SCM is an integrated circuit chip, is the use of VLSI technology to the CPU has a data

processing capability, random access memory RAM, read only memory ROM, a variety of I / O ports and interrupt system, timers / counters, etc. functionality into a small but perfect piece of silicon micro-computer system constituted, in a wide range of industrial control applications. Ever since the SCM Proteus will have to develop systems, with the development of microcontroller development system is constantly evolving. Keil is an advanced single-chip integrated development system. It represents the assembly language of the latest developments in microcontroller development system, pioneered a number of convenient technology, all procedural programming / emulation / debug / write / encryption will develop one go, in the middle do not need any compiler or assembler.

This article first introduces the STC89S52 smallest single-chip system includes a reset and

clock circuitry and power supply system, 4 × 4 matrix keyboard, display circuit and serial communication circuit MAX232 and RS-232 standard serial port configuration, and then use Proteus software simulation, Keil software programming and ultimately SCM data display, function selection, data entry, data communication between these functions.

Keywords: SCM simulation Keil Minimum System Programming

II

武汉理工大学单片机应用实习

目录

摘 要 ................................................................................. I ABSTRACT ............................................................................. II 1 基本原理 ............................................................................ 1 1.1 STC89C52单片机介绍 .............................................................. 1 1.2 单片机最小系统 .................................................................. 5 1.3 MAX232电平转换芯片和RS232接口介绍 .............................................. 7 1.4 键盘检测原理 .................................................................... 8 1.5 数码管显示 ...................................................................... 9 1.6 串口通信 ....................................................................... 10 2 系统单元设计 ....................................................................... 11 3 方案论证 ........................................................................... 12 3.1 单片机最小系统 ................................................................. 12 3.2 数据输入模块 ................................................................... 12 3.3 数据显示模块 ................................................................... 13 3.4串口通信模块 .................................................................... 13 4 硬件电路设计 ....................................................................... 14 4.1单片机控制模块设计 .............................................................. 14 4.1.1 时钟电路 ................................................................... 14 4.1.2 复位电路 ................................................................... 15 4.2 矩阵键盘调整模块设计 ........................................................... 17 4.3 数据管显示模块设计 ............................................................. 17 4.4 串口通信模块设计 ............................................................... 18 4.5 硬件系统整体设计电路图 ......................................................... 19 5 软件程序设计 ....................................................................... 20 5.1系统主程序模块 .................................................................. 20 5.2 功能选择模块 ................................................................... 21 5.3 数据输入模块 ................................................................... 22 5.4 数据显示模块 ................................................................... 22 5.5按键扫描模块 .................................................................... 23 5.6 数据通信模块 ................................................................... 24

武汉理工大学单片机应用实习

5.7 数据显示模块 ................................................................... 25 6 仿真测试 ........................................................................... 25 6.1 数据输入功能调试 ............................................................... 25 6.2 数据输出功能调试 ............................................................... 26 6.3 串口通信功能调试 ............................................................... 27 7 实物制作与调试 ..................................................................... 29 7.1 数据输入功能调试 ............................................................... 29 7.2 数据输出功能调试 ............................................................... 29 7.3 串口通信功能调试 ............................................................... 30 7.4 焊接图 ......................................................................... 32 7.5 调试界面及工具 ................................................................. 33 8 小结与体会 ......................................................................... 34 9 致谢 ............................................................................... 35 参考文献 ............................................................................. 36 附录一:源代码 ....................................................................... 37 附录二:元件清单 ..................................................................... 44

武汉理工大学单片机应用实习

基于单片机的数据显示及串口通信系统

1 基本原理

1.1 STC89C52单片机介绍

STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令

代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。

主要特性如下:

1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指

令代码完全兼容传统8051.

2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)

3. 工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达

48MHz

4. 用户应用程序空间为8K字节 5. 片上集成512字节RAM

6. 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是

漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。

7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真

器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片

8. 具有EEPROM功能 9. 具有看门狗功能

10. 共3个16位定时器/计数器。即定时器T0、T1、T2

11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中

断低电平触发中断方式唤醒

12. 通用异步串行口(UART),还可用定时器软件实现多个UART 13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 14. PDIP封装

1

武汉理工大学单片机应用实习

STC89C52RC单片机的工作模式

? 掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序 ? 空闲模式:典型功耗2mA

? 正常工作模式:典型功耗4Ma~7mA

? 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备

图1-1 STC89C52RC引脚图

STC89C52RC引脚功能说明

2

武汉理工大学单片机应用实习

VCC(40引脚):电源电压 VSS(20引脚):接地

P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。

P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。

此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:

在对Flash ROM编程和程序校验时,P1接收低8位地址。

表1-1 P1.0和P1.1引脚复用功能表

引脚号 P1.0 P1.1 功能特性 T2(定时器/计数器2外部计数输入),时钟输出 T2EX(定时器/计数器2捕获/重装触发和方向控制) P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX @DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX @R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。

在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。 P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内

3

武汉理工大学单片机应用实习

部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。

在对Flash ROM编程或程序校验时,P3还接收一些控制信号。 P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:

表1-2 P3口引脚功能

引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 复用功能 RXD(串行输入口) TXD(串行输出口) (外部中断0) (外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) 外部数据存储器写选通 外部数据存储器读选通 RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN(29引脚):是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。

EA/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行

4

武汉理工大学单片机应用实习

内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。

XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):振荡器反相放大器的输入端。 特殊功能寄存器

在STC89C52RC片内存储器中,80H~FFH共128个单元位特殊功能寄存器(SFR) 单片机可实现“看门狗”功能。所谓“看门狗”是指在单片机构成的系统中,由于单片机的工作可能受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,这样会使整个系统处于停滞状态,发生不可预料的后果,所以处于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”。STC系列单片机内部自带了看门狗,通过对相应的特殊功能寄存器的设置就可实现看门狗的应用。其相应的功能及原理介绍见下表:

表1-3 看门狗定时器寄存器的功能表

符号 EN_WDT CLR_WDT 功能 看门狗允许位,当设置为“1”,看门狗启动 看门狗清“0”位,当设为“1”时,看门狗将重新计数。硬件将自动清“0” 此位 IDLE_WDT 看门狗“IDLE”模式位,当设置为“1”时,看门狗定时器在“空闲模式”计数;当清“0”该位时,看门狗在“空闲模式”时不计数 PS2,PS1,PS0 看门狗定时器预分频值 1.2 单片机最小系统

51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。

51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。

51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好

5

武汉理工大学单片机应用实习

P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。[5]

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。

设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。

图1-2 单片机最小系统图

6

武汉理工大学单片机应用实习

1.3 MAX232电平转换芯片和RS232接口介绍

MAX232是电平转换芯片。1970年美国电气学会规定“RS232”串口通信协议。规定逻辑“1”-5— -15V逻辑“0”5— 15V 。噪声容限为2V。要实现利用串口与单片机进行通信就要进行电平转换把标准转化成单片机可以识别的。MAX220–MAX249都是电平转换芯片在单片机最小系统中使用MAX232。[4]

图1-3 MAX232电平转换芯片引脚图

RS232接口连接器一般使用型号为DB-9的9芯插头座,只需3条接口线,即\发送数据\、\接收数据\和\信号地\即可传输数据,在此用于串口通信接口,其引脚图如下所示。

图1-4 RS232接口引脚图

RS232的规范中,电压值在+3V~+15V(一般使用+6V)称为\或\。电压在-3V~-15V(一般使用-6V)称为\或\;RS232为全双工工作模式,其信号的电压是参考地线而得到的,可以同时进行数据的传送和接收。

引脚功能介绍和引脚图:1 数据载波检测 DCD 2 接收数据 RXD 3 发送数据 TXD 4数据终端准备 DTR 5信号地 GND 6 数据设备准备好 DSR 7请求发送 RTS 8 清除发送 CTS 9振铃指示 DELL

7

武汉理工大学单片机应用实习

1.4 键盘检测原理

键盘是计算机系统中不可缺少的输入设备,当键盘较少时可接成线性键盘。当按键较多时接成矩阵的形式,可以节省口线。键盘是一组按键的组合。键通常是一种常开型按钮开关,常态下键的两个触点处于断开状态,按下键时它们才闭合(短路)。通常,键盘有编码和非编码两种。矩阵键盘每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵键盘的行线和列线分别通过两并行口中,一个输出扫描码,使按键动态接地(称行扫描码),另一个并行口输入按键状态(称回馈信号)。通过编码识别不同的按键,再通过软件查表,查出该键的功能,转向不同的处理程序。因此键盘处理程序的任务是:确定有无键按下;判断哪一个键按下;形成键编码;根据键的功能,转相应的处理程序。[3]

图1-5 矩阵键盘

键扫描就是要判断有无键按下,当扫描到有键按下时再进行下一步处理,否则退出键盘处理程序。独立式键盘扫描只需读取IO口状态,而矩阵式键盘描通常有两种实现方法:逐行扫描法和线反转法。 (1) 逐行扫描法。

依次从第一至最末行线上发出低电平信号, 如果该行线所连接的键没有按下的话, 则

列线所接的端口得到的是全“1”信号, 如果有键按下的话, 则得到非全“1”信号。 (2)线反转法。

线反转法也是识别闭合键的一种常用方法, 该法比行扫描速度快, 但在硬件上要求行

线与列线外接上拉电阻。

8

武汉理工大学单片机应用实习

先将行线作为输出线, 列线作为输入线, 行线输出全“0”信号, 读入列线的值, 那么在闭合键所在的列线上的值必为0;然后从列线输出全“0”信号,再读取行线的输入值,闭合键所在的行线值必为 0。这样,当一个键被按下时, 必定可读到一对唯一的行列值。再由这一对行列值可以求出闭合键所在的位置。

本次设计采用简单的逐行扫描的方式。

1.5 数码管显示

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。下图四为数码管的内部原理图:[1]

图1-6 数码管内部原理图

9

武汉理工大学单片机应用实习

1.6 串口通信

串行接口Serial Interface是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

51单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤。串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来指定采用哪一种方式进行通信,而在通信的过程中,我们还要设定通信的波特率,不然的话,单片机是没办法进行采样的,这样也不会得到正确的结果了。

51单片机串口波特率由内部定时器1产生,一般要让定时器1工作在自动装载的8位模式,即工作方式2。串口工作在方式3,即SM0=1,SM1=1,每一帧9位,无奇偶校验。波特率由定时器1确定,本设计设定为9600bps。

图1-7 串口通信帧的结构

10

武汉理工大学单片机应用实习

2 系统单元设计

采用单片机控制。利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的功能选择、数据输入、数据输出、串口通信等不同功能。

采用单片机控制。利用单片机丰富的I/O端口,及其控制的灵活性,有较大的活动空间,便于修改。不但能实现基本的显示功能,而且能在很大的程度上扩展功能,还可以方便的对系统进行升级。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求。单片机控制实现方案框图,如下图所示。

图2-1 单片机控制实现方案框图

单片机最小系统,是指用最小的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路、按键输入、显示输出等。单片机接口电路主要用来连接计算机和其他外部设备。

11

武汉理工大学单片机应用实习

3 方案论证

经过仔细地分析与论证,我认为此次的基于单片机数据显示及串口通信系统可分为单片机STC89C52最小系统、数据输入、数据显示和串口通信模块四部分组成。

3.1 单片机最小系统

方案一: STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。

方案二:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。

经比较,考虑到在课程学习的进度和深度方面,方案二STC89C52的使用可以巩固课内知识的同时也提高可课外动手实践能力,可以在基本不增加硬件复杂性的情况下,大大降低了软件的复杂性,且硬件调节较软件调节具有更高的可操作性,故选择方案二。

3.2 数据输入模块

方案一:独立键盘。独立键盘为一端接地,另一端接I/O口,并且要接上拉电阻。这

种键盘的硬件都很容易实现,但每一个按键就要用一个I/O口,非常的浪费单片机的I/O口资源,不适合本次设计。

方案二:自制编码键盘。这种键盘有编程简单,占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想。

方案三:4*4矩阵式键盘。这种键盘的硬件简单,使用的I/O口也不多,而且这种键盘的编程方法已很成熟。s

由于本次实验需要15个键,综合复杂性和单片机有限的IO口,最后选择4*4矩阵式键盘作为数据输入模块。

12

武汉理工大学单片机应用实习

3.3 数据显示模块

方案一:采用共阴极数码管,共阴极数码管就是二极管的负极并在一起为公共端,正极分别代表A-H;正常工作时,负极要接低电平,A-H接高电平,使二极管导通,就可点亮A-H。

方案二:采用共阳极数码管。共阳极数码管就是二极管的正极并在一起为公共端,负极分别代表A-H。正常工作时,正极要接高电平,A-H接低电平电平,使二极管导通,就可点亮A-H。[2]

图3-1共阴极数码管和共阳极数码管

方案一需要外加74HC573锁存器驱动,从尽量减少元件数目角度上来讲,方案二好一

些,但实际上去店里共阳的数码管无货了,故选择了方案一,采用74HC573锁存器驱动的共阴极数码管。

3.4串口通信模块

方案一:近距离串口通信。对于近距离的单片机与单片机之间的通信,可以使用如图所示方法。由于距离近,不需要使用RS-232电平,仅使用TTL电平即可,所以直接将两个单片机串行线RxD和TxD相连接、GND线连接即可。

方案二:使用232电平进行通信。RS-232直接连接的最大物理距离为15m。最大传输距离说明:RS-232标准规定,若不使用Modem,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m。如果距离在15m左右,一般使用RS-232电平进行通信。

比较上述两种方案可以发现,单片机间的通信可以借助RS-232也可以直接连接,区别在于通信的距离。在此次课设中,我们只需要满足两个单片机间的通信就可以了,并没有要求距离。所以方案一即可实现,并且简单方便

13

武汉理工大学单片机应用实习

4 硬件电路设计

4.1单片机控制模块设计

本设计中,采取单片机最小系统作为系统中的控制模块。单片机最小系统,是指能维持单片机运行的最简单配置的系统。这种系统成本低廉、结构简单,常用来构成简单的控制系统。

图4-1 单片机控制模块电路图

4.1.1 时钟电路

STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或8051单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。本设计主要是用内部振荡方式完成的[9]。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振频率,以19.2K波特率为例,19.2K波特

14

武汉理工大学单片机应用实习

率的晶振为

19200×(256-0FDH)×384×2 =11.0592 (SMOD=1)

选用11.0592MHz只是为了得到精确的通信波特率,串口通信的可靠性高。外接石英晶体及电容C2、C3接在放大器的反馈回路中构成并联谐振电路,起稳定振荡频率、快速起振的作用。对外接电容C2、C3虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度的稳定性,一般在20~60pF之间选择,本次采用22pF。时钟电路设计图,如图4-2所示。

图4-2 时钟电路设计图

4.1.2 复位电路

单片机有一个复位引脚RST,它是施密特触发输入,当振荡器起振后,该引脚上出现2个机器周期以上的高电平,使器件复位,只要RST保持高电平,单片机保持复位状态[11]。此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。RST变为低电平后,退出复位,单片机从初始状态开始工作。

对于复位电路,本设计采用上电复位电路,由于89C51是高电平复位,因此通过在RESET端接一个电阻到地,并接一个电容到电源的方式完成上电复位,上电时电源给电容充电,电容导通,因此RESET脚就相当于连接到+5V电源,开始复位,当电容充电完成后,电容断开,RESET脚被下拉电阻钳位在低电平,则退出复位状态。复位电路设计图,如图2-4所示。

复位电路连接图如下

15

武汉理工大学单片机应用实习

图4-3 复位电路设计图

单片机在启动运行时都需要进行复位操作,以便使CPU和系统中的其它部件都处于某一确定的初始状态,并从这个状态开始工作。AT89C51单片机有一个引脚RST,它是施密特触发器的输入端,其输出端接复位电路的输入。

复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,若使用频率为6MHz的晶振,则复位信号持续时间应超过4μs才能完成复位操作。复位之后,使ALE、PSEN、P0、P1、P2口的输出均为高电平(即为输入状态),复位后,内部寄存器的状态如表3、1所示。RST变为低电平后,便又退出复位状态。CPU从初始化工作,由状态表可知,复位后:程序寄存器为0000H开始执行程序,内部RAM不受复位影响。

复位有电复位和按键手动复位两种。按键手动复有电平方式和脉冲方式两种。本次设计中,为方便人的操作,采用按键手动复位的按键电平复位。其复位电路如下表示:

表4-1 复位电路表

PC ACC PSW SP DPTR P0-P3 IP IE

0000H 00H 00H 07H 0000H 0FFH XX000000H 0X000000H 16

TCON TL0 TH0 TL1 TH1 SCON SBUF PCON 00H 00H 00H 00H 00H 00H 00H 不定

武汉理工大学单片机应用实习

TMOD

00H 0XXX0000B 4.2 矩阵键盘调整模块设计

本设计中需要用到16个按键,矩阵键盘,由于单片机的内部上拉,按键没按下时,处于稳定的高电平,当有按键按下时,单片机可扫描检查到低电平。而不会引起按键的误操作,提高按键电路的抗干扰能力。电路原理如图所示。

图4-4 矩阵键盘调整模块

其工作原理是从0列开始顺序行扫描即该行输出为0。每扫描一行读入列线数据从0开始列检查找该行输出为0的列若无则顺序扫描下一行并检查其各列若找到某列线为0则该列与检查行交叉的按键为被按下的键。

需要注意的时,当按键按下和释放的瞬间都有抖动现象,一般来说,抖动的时间长短与键盘的机械特性有关,大约为5-10ms。所以在实际编程时一定要注意键盘的去抖动。键盘去抖动有专用的延时电路,也有专门的延时芯片,也可以用软件去抖,考虑到电路的难易程度,从简化硬件的角度,本次设计采用软件去抖动,用一个短延时程序,进行键盘去抖操作。

4.3 数据管显示模块设计

本设计中采用六位一体共阳的数码管,数码管的位选信号即每个数码管的公共端,用单片机一组I/O口作为数据口向数码管发送数据信息,而用另一组I/O口对数码管进行位

17

武汉理工大学单片机应用实习

选,从而实现动态显示。由于是共阴的数码管,因此当P2.0-P2.7输出为高电平时,数码管位选位被关闭,当P2.0-P2.7输出为低电平时,数码管位选位被打开。前四个数码管分别接P2.0、P2.1用于显示序号;后面分别接P2.2、P2.3、P2.4和P2.5,用于显示数值。数码管显示电路图,如图4-5所示。

图4-5 数据显示模块数码管部分

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果能够节省大量的I/O端口,而且功耗更低。

4.4 串口通信模块设计

本次设计中采用MAX232电平转换芯片,其构成的串口通信电路原理图如下图所示。

18

武汉理工大学单片机应用实习

图4-6 串口通信电路

本串口通信电路的第一部分是电荷泵电路。由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数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚 (R1OUT)、9引脚(R2OUT)输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。

4.5 硬件系统整体设计电路图

系统的总体电路图如图4-7

19

武汉理工大学单片机应用实习

图4-7 硬件系统整体设计电路图

5 软件程序设计

5.1系统主程序模块

在主程序模块中,需要完成对各参量和接口的初始化,通过调用键盘扫描程序,监控矩阵键盘的动作,通过调用功能选择程序,完成相应的功能。程序流程如图所示。

20

武汉理工大学单片机应用实习

图5-1系统主程序流程图

5.2 功能选择模块

通过功能选择键,使得单片机处于不同的工作状态并通过数码管显示模块显示相应的内容;可选择的功能包括:数据输入(IN)、数据显示(DIP)、串口通信(TR)。

图5-2 功能选择程序模块流程图

21

武汉理工大学单片机应用实习

5.3 数据输入模块

通过功能选择键选择“数据输入”后,可分次输入10个4位十进制数据,并将输入的数据保存在内部RAM中。数据输入过程为:

1)第一步输入序号0~9,表明输入的是第几个4位十进制数据; 2)第二步按下回车键,完成序号输入; 3)第三步输入最多4位的十进制数据; 4)第四步按下回车键,完成数据输入; 5)重复第一步,开始新数据的输入;

6)输入数据的显示格式是:最左边是序号,然后是空格,之后是从右到左的最多4位十进制数;

7)若在输入过程中(第一步或第三步)出现错误,按“清除”键,重新从第一步开始输入数据。

图5-3 数据输入程序流程图

5.4 数据显示模块

通过功能选择键选择“数据显示”后,可显示之前输入的10个4位十进制数据中的任一个,其过程为:

? 第一步输入序号0~9,表明显示的是第几个4位十进制数据;

22

武汉理工大学单片机应用实习

? 第二步显示相应的数据;

? 重复第一步、第二步,显示其他的数据;

? 数据的显示格式是:最左边是序号,然后是空格,之后是要显示的数据,从右到左最多4位十进制数。

图5-4 数据输出程序流程图

5.5按键扫描模块

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。

23

武汉理工大学单片机应用实习

图5-5 按键扫描子程序流程图

5.6 数据通信模块

将两个单片机最小系统通过串口连接起来,其中一个作为主机,另一个作为从机。当通过功能选择键选择“串行通信”后,当在主机上按下数字键后从机的数码管显示模块上按从左向右移东的方式显示按键输入的数字,同时从机的数码管显示模块上显示与主机同样的内容。

24

武汉理工大学单片机应用实习

图5-6 数据通信程序流程图

5.7 数据显示模块

显示程序利用定时器每1ms产生一次中断,相应变量置位,点亮一个数码管,显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现可实现显示。

6 仿真测试

6.1 数据输入功能调试

通过功能选择键选择“数据输入”后,输入序号0,按Enter键开始输入数据,分别

输入4个十进制数据5697,并将输入的数据保存在内部RAM中,调试输入功能正常。

25

武汉理工大学单片机应用实习

图6-1 序号为0的数据输入仿真结果

6.2 数据输出功能调试

通过功能选择键选择“数据显示”后,输入序号0再按Enter键可显示管显示序号0

和之前输人的数据5697。输入序号7再按Enter键,数码管显示序号0和默认数值0000。,说明第7位没有存数据。调试输出功能正常。

26

武汉理工大学单片机应用实习

图6-2 序号为0的数据输出仿真结果

图6-3 序号7的数据输出仿真结果

6.3 串口通信功能调试

由图6-4可以看出,当主机输入数值123456时,主机数码管模块显示数值123456,从机数码管模块也同时显示数值123456。由图6-5可以看出,主机再输入数值0时,主机

27

武汉理工大学单片机应用实习

和从机数码管显示模块同时在右一位显示数值0,调试串口通信功能正常。

图6-4 数据通信的主、从机仿真结果

图6-5 数据通信的主、从机仿真结果

28

武汉理工大学单片机应用实习

7 实物制作与调试

7.1 数据输入功能调试

通过功能选择键选择“数据输入”后,输入序号0,按Enter键开始输入数据,分别输入4个十进制数据6974,并将输入的数据保存在内部RAM中,调试输入功能正常。

图7-1 序号为0的数据输入实物调试结果

7.2 数据输出功能调试

通过功能选择键选择“数据显示”后,输入序号0再按Enter键可显示管显示序号0和之前输人的数据6974。输入序号6再按Enter键,数码管显示序号0和默认数值0000。,说明第6位没有存数据。调试输出功能正常。

29

武汉理工大学单片机应用实习

图7-2 序号为0的数据输出实物调试结果

图7-3 序号为6数据输出实物调试结果

7.3 串口通信功能调试

当主机输入数值123456时,主机数码管模块显示数值123456,从机数码管模块也同时显示数值123456,调试串口通信功能正常。

30

武汉理工大学单片机应用实习

图7-4 数据通信的主、从机实物调试结果

31

本文来源:https://www.bwwdw.com/article/yx0d.html

Top