基于点阵显示屏的单片机原理综合实验*
2021-01-22王虹庞姣梁晓琳
王虹 庞姣 梁晓琳
(河北大学电子信息工程学院,河北保定 071002)
0 引言
单片机技术在工业控制、仪器仪表、嵌入式系统等领域应用广泛,各高校都将单片机教学纳入到教学计划中,设置了多门相关课程[1]。《单片机原理》课程实践性强,需要通过实验课上的实践环节才能加深学生对课程内容的理解和掌握[2]。为了让学生掌握文献检索、硬件电路设计、程序设计、焊接和系统调试的单片机系统设计流程与方法,以及Proteus、Keil uVision、Altium Designer等软件的使用,设计了基于“点阵显示屏”的单片机综合型实验,该实验项目包括点阵显示屏的Proteus仿真设计和实物设计两部分。
1 实验教学设计
本实验要求设计基于51系列单片机和8×8 LED点阵的模块化显示电路,各模块之间可级联,可显示汉字、字符和数字等常规信息。学生首先根据题目要求设计实验方案。在考虑实验室条件和成本的前提下完成芯片选型。确定总体方案后在Proteus软件中设计仿真电路,在Keil uVision软件中完成基于C51语言的程序编写和调试。参考仿真电路完成实际电路的设计和制作,将程序下载到实物中调试功能。在实现预定功能的基础上进行总结,撰写设计报告。下面以单片机控制4级级联的16×16LED点阵屏为例介绍具体的实验过程。
2 点阵显示屏Proteus仿真实验
2.1 显示模块驱动电路设计
Proteus软件是Lab Center Electronics公司推出的一款实用单片机仿真设计电子设计自动化(Electronic Design Automation,EDA)工具软件,可以在该软件中绘制原理图,进行仿真实验[3]。为了达到较好的汉字显示效果,将4块共阴极8×8LED点阵拼接成1块16×16的LED点阵模块,针对16×16的LED点阵模块设计相应的行列驱动电路和单片机控制电路。
采用STC89C52单片机作为核心器件设计点阵显示模块的控制电路,用来发送指令、控制显示内容,单片机最小系统由单片机、时钟电路、复位电路以及电源电路构成[4]。
74HC154型4/16译码器是一款高速CMOS器件,可以接收4位高电平有效的二进制地址输入,并提供16个互斥的低电平有效输出[5]。选用74HC154作为LED显示模块的行驱动芯片,其16位译码输出用来选通LED显示模块的16个行。
74HC595是8位串行输入、并行输出的移位缓存器[6]。选用2片74HC595级联作为点阵显示模块的列驱动芯片。在SHCP引脚的上升沿,串行数据由DS输入到内部移位缓存器,同时缓存器最高位的数据由引脚输出。74HC595的并行输出控制点阵的8个列,作为级联引脚。
2.2 程序设计
显示驱动程序主要包括74HC595写函数、中断服务函数和主程序。将要显示的字符输入取模软件得到相应的16进制编码,保存在数组中。主程序首先进行初始化,然后进入while循环等待中断。在中断服务函数中调用595写函数写入一行数据。为了保证动态扫描显示时可以看到稳定的图像,设置每2ms发生一次中断。中断使用定时/计数器T0,工作方式1(16位计数器)。单片机外部晶振为12MHz,定时2ms需要向TH0送入0xF8,向TL0送入0x30。74HC595写函数中,单片机通过for循环将要写入的8位数据按位输出到74HC595的DS端,并在其SHCP(第11引脚)引脚上产生符合时序要求的移位时钟信号,驱动74HC595将数据读入缓存。74HC595写函数参考代码如下:
在Keil uVision平台下编写C51程序生成.HEX目标文件,双击Proteus电路图中的单片机,将该可执行文件加载到编程文件属性,程序运行后可以看到显示结果[4]。4级16×16LED级联的显示屏仿真电路和显示“河北大学”四个汉字的仿真结果如图1所示。
3 点阵显示屏实物设计与实现
图2为16×16点阵显示模块电路原理图,模块间通过74HC595的Q7"和DS引脚级联。单片机控制电路设计可根据学时灵活掌握,学时不足时可以直接使用单片机开发板。单片机控制电路设计应注意:(1)设计5V电源供电电路。(2)设计串口通信电路或引出串口使用USB-TTL程序下载器写入程序。(3)单片机P0口作为通用I/O口(漏极开路)需外接上拉电阻;P1、P2和P3口为内部弱上拉(内部约30kΩ的上拉电阻),可根据实际驱动电流大小判断是否外接上拉电阻[4]。(4)用单排针引出单片机I/O,便于后期功能扩展。
图1 仿真电路及显示结果
图2 点阵显示模块原理图
图3 点阵显示屏实物
用杜邦线连接4级16×16LED点阵显示屏及单片机控制板,搭建硬件电路。使用ISP软件将程序下载到单片机,调试程序。图3所示为实际电路显示“河北大学”四个汉字时的实验结果。学生在实现基本功能的基础上可以完成扩展项目。如增加屏幕滚动显示功能;增加时钟芯片设计电子时钟;增加传感器实现参数测量与显示等。
4 结语
该实验项目综合性强,实验内容可灵活扩展。实验中使用了Proteus软件的仿真设计和调试功能,减少了反复制作和修改硬件电路的时间,降低成本,提高效率。在仿真实验的基础上,要求学生进一步完成实际“点阵显示屏”的设计与制作,可以让学生体会到仿真与实际间的差距,增加实践经验。在完成该实验项目的过程中,学生对专业知识的掌握程度和具备的专业素质可以得到更全面的检查和锻炼。该实验以项目开发为驱动力,有利于激发学生的学习兴趣,培养学生的探究思维和创新意识,教学效果良好。