PIC单片机实验系统的研制

2014-04-26 08:36王粉花张万书
电气电子教学学报 2014年2期
关键词:数码管电平按键

王粉花,李 擎,张万书

(北京科技大学自动化学院,北京 100083)

“单片机原理”是信息和控制类学科一门专业必修课,国内高校在课程教学中普遍采用MCS-51系列MCU。然而,MCS-51系列的应用领域已逐渐被其他单片机所取代。Microchip公司推出的外围接口控制器PIC(Peripheral Interface Controller)系列单片机,由于采用哈佛总线结构,精简指令集和流水线取指方式,I/O端口驱动能力强,稳定性好,性价比高,受到用户的普遍欢迎[1]。

传统的单片机实验系统透明度不高,实验板上的芯片和接口都是固定连接的。如果能做到硬件只需很少的连接或不需连接,就可以直接进行程序设计,那么单片机以硬件设计为主,软硬结合的训练就会变相转化成了纯软件编程的学习[2]。

本文基于模块独立、便于扩展和注重硬件设计的思想,设计了一套PIC Study V1.0单片机实验系统,改变传统的固定线路和固定接口的模式,对实验板上的硬件资源采用了模块化的结构,同时还提供比较丰富的接口,以及构成单片机系统最常使用的外围功能电路。板上的单片机引脚全部开放,同时将单片机系统中最常使用的显示、按键和键盘等都作为独立的开放单元模块,用户只需稍加扩展即可构建自己的应用系统[3]。

1 系统硬件设计

PIC Study V1.0实验系统选用PIC16F877A单片机,这是PIC系列单片机的中级产品。它是一种高速、低功耗和高性能的8位CMOS器件,采用14位的RISC指令系统。由于其具有强大的在线调试和编程功能,以及廉价的配套开发工具,非常适合于学习。实验系统的硬件核心是实验板。

实验板由PIC16F877A最小系统、液晶模块、八段数码管、LED模块、按键、温度传感器模块、ADC模块、E2PROM模块、蜂鸣器模块和串口通信模块等10个模块组成。系统硬件结构框图如图1所示,其特点是各模块之间独立设计,部分外围接口模块与单片机I/O口接线不固定,用户可以根据需要自行设计,下面介绍几个主要模块。

1)PIC16F877A单片机最小系统

该实验系统是实验板的核心部分,主要包括电源、PIC16F877A单片机芯片、复位电路、外部晶振及ICSP下载接口。该系统设计了两种下载接口,分别采用排针式和星头式接口,便于灵活下载。最小系统电路原理如图2所示。

图2 PIC16F877A最小系统电路原理图

单片机PIC16F877A的I/O引脚有33条,分别是RA5~RA0、RB7~RB0、RC7~RC0、RD7~RD0及RE2~RE0,全部为复用引脚。每个I/O引脚输入电流最大值可达到25mA,而输出电流最大值可达到20mA,能够直接驱动发光二极管、数码管、光电耦合器及小型扬声器等。实验板上的单片机引脚全部开放,用户可以自行设计接口电路。

2)液晶模块

LCD1602是一种专门用来显示字母、数字和符号等的点阵型液晶模块,显示的内容为16×2。LCD12864主要用于显示汉字,每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵ASCII码字符,每屏最多可显示32个中文字符或64个ASCII码字符。

该模块设计了标准的16 2字符的LCD1602液晶显示器接口和12864液晶显示器接口。各管脚分配均已设计好,两者通过RA口分时选通,使用时只需断电插拔相应的液晶模块即可。

3)八段数码管

选用LG3641AH八段共阴型数码管模块,高电平点亮某段,低电平选通某位。为了节约单片机管脚、降低功耗,采用软件译码方式动态扫描点亮数码管。实验板上已设计好数码管的位选和段选排针,用于连接单片机的I/O引脚。

4)LED发光二极管

8个LED发光二极管,采用共阴极接法,即高电平点亮,用于输出显示。其中8只470Ω电阻是用于保护LED的限流电阻,使用时只需从LED排针处用杜邦线引出即可[4]。

5)按键模块

按键模块用于按键输入、外部中断输入等。按键采用外部上拉电阻,通过P5排针接线,在按键未按下时,P5排针输出高电平,当按键按下时,输出低电平,需自行设计接口电路。

6)DS18B20温度传感器

数字温度传感器DS18B20,具有3引脚TO-92小体积封装形式;温度测量范围为 -55℃ ~+125℃,可编程为9位~12位的A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生;CPU只需一条引脚就能与DS18B20通信,占用微处理器的端口较少,可节省大量的引脚和逻辑电路。通过P8跳线可接通单片机的RE1引脚,使用DS1802温度传感器可做单总线实验。

7)ADC模块

ADC模块是由精密电位器与电源组成的0~5V的可调直流电压源,可提供0~5V可调直流电压信号。用于实现A/D转换、直流电压表和模拟温度计等实验[5]。

8)E2PROM模块

E2PROM模块采用AT24C02芯片,采用I2C总线通信,内含256×8位存储空间,工作电压范围为2.5V~5.5V。擦写次数大于10000次,写入速度小于10ms。E2PROM 模块通过 P6 的1、2、3、4 引脚用跳线连接单片机的RC3和RC4引脚,使用该模块可学习I2C总线通信技术。

9)蜂鸣器模块

该模块由单片机的某一引脚输出一定频率的方波,就可以发出声响,可以作为一个简单的外设。蜂鸣器采用9014三极管驱动,可通过跳线J7连接到单片机的RC2引脚。

10)串口通信模块

该模块采用MAX232芯片实现电平转换,以满足RS232标准电平与PC机标准串口连接。其中通过P6的5、6、7、8引脚用跳线帽连接单片机的 RC6和RC7进行异步串口通信[6]。

2 软件平台及工具

PIC Study V1.0实验系统使用的软件开发平台是MPLAB-IDE,这是Microchip公司专门为PIC系列单片机提供的一款基于Windows的集成开发环境应用软件包。利用MPLAB-IDE可以编写、汇编或者编译源代码、调试及优化源代码。MPLAB-IDE支持MPLAB-ICD2硬件在线调试器、MPLAB-ICE和PICMASTER 仿真器和PICSTART-Plus、PRO MATE II烧写器,还支持其它的Microchip和第三方开发工具。

MPLAB-ICD2是Microchip公司开发的为用于片内Flash程序存储器的PIC16F87X系列芯片所研制的一套学习和开发工具套件。它既是一个编程器,又是一个实时在线调试器。用MPLAB-ICD2可以代替常用的硬件程序烧写器和在线实时仿真器,它利用了PIC16F87X片内集成的在线调试功能和Microchip公司的在线串行编程技术。MPLAB-ICD2工作在MPLAB-IDE集成开发环境软件包之下,其仿真头直接连接到PIC Study V1.0实验板上,如同将一片PIC16F87X芯片插入到实验板内一样去运行用户编制的程序,其与PC机的通信可以用USB串行接口方式[7]。

3 开发实例

PIC Study V1.0实验系统随机提供了16个实验项目,如表1所示。其中编号1~12是基本实验,13~16是综合实验。

表1 实验项目列表

学生在完成每个实验项目时,首先都需要进行硬件电路的设计和接线,然后根据硬件电路编写相应的软件,体现了软硬件的协同设计。同时我们已出版配套的教材《嵌入式系统与单片机实践教程》,学生借助该教材和实验系统可以很容易地自行设计常用的单片机输入输出系统,比如电子密码锁。学生在本实验系统的基础上,再稍加扩展,还可设计出各种各样的单片机应用系统,比如超声波测距系统、声音定位系统等。

1)电子密码锁

电子密码锁的硬件平台由最小系统、按键、八段数码管、LED发光二极管、蜂鸣器及E2PROM等模块组成。其应用软件主要由键盘扫描程序和显示程序组成。识别键盘有无按键被按下的方法是让所有行线均输入为“1”电平,检查各列线输入电平是否为全“0”。如果全为“0”,则说明按键未被按下,反之则说明有按键被按下。识别具体按键的方法也称为行扫描法。逐行置“1”电平,检查各列线电平的状态,此时如果读得某列电平变为“1”,则可以确定此列与当前输出为“1”行的交叉点上的按键被按下。即获得了被按下键所处的行号和列号,根据行、列位置信息便可得到当前按键的位置或键号。

2)超声波测距系统

超声波测距系统硬件电路主要包括电源模块、单片机最小系统模块、超声波发射电路、超声波接收电路、测温模块、数码管显示模块及蜂鸣器模块。在本实验系统的基础上,还需要额外增加一个超声波传感器模块。

该系统软件主要包括测距程序、显示程序和报警程序。测距时先对温度传感器进行初始化,发送温度转换命令,接收温度传感器测得的温度,并将温度值显示在数码管上。利用测量的温度值计算出声速后,即可进行距离的测量。电路先发射4个周期的超声波脉冲,其频率为40kHz,然后关闭发射器,打开定时器开始计时,等待接收反射波。当接收电路接收到反射波回波信号后,依次经放大、检波及整形,接收到的信号即为单片机可识别的信号,并立即产生一个中断。进入中断后,先关闭定时器,此时定时器中的值就是超声波在这次测量中所花费的时间t,利用t就可以计算出相应的距离了。

4 结语

PIC Study V1.0单片机实验系统各组成模块可独立设计,便于接口灵活扩展,适用于PIC16F87X系列单片机课程内的实验教学、课程设计和电子竞赛培训学习等。经过多个学期的教学实践,该实验系统获得学生和同行的一致好评。学生在此基础上自主设计出多个单片机应用案例,可以提高动手设计能力。

[1]李学海著.PIC单片机实用教程--基础篇[M].北京:北京航空航天大学出版社,2007年2月

[2]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:北京航空航天大学出版社,2007年10月

[3]石爱平,杜玉杰.高校单片机实验教学系统的设计[J].南京:电气电子教学学报,2010,32(1):84-85

[4]仲玉芳,黄克强,吴明光.面向嵌入式系统的单片机集成实验平台的研制[J].北京:实验技术与管理,2008,25(9):77-81

[5]邹应全,刘建成.模块化单片机实验系统的设计与实现[J].南京:南京工程信息大学学报:自然科学版,2010,2(2):185-189

[6]孙志海,朱善安.基于Internet的51单片机实验系统[J].上海:实验室研究与探索,2006,25(2):189-191

[7]包建华,张兴奎,丁启胜.模块化单片机实验系统的研制[J].南京:电气电子教学学报,2010,32(6):98-100

猜你喜欢
数码管电平按键
基于有限状态机的按键检测程序设计
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
按键消抖在单片机和FPGA实验教学中的应用
一种多方向导光按键结构设计
三电平PWM并网变换器LCL滤波器量化设计
准PR控制的三电平逆变器及中点平衡策略
光伏并网系统二电平逆变器的故障诊断