点阵式汉字显示的制作
- 格式:doc
- 大小:186.00 KB
- 文档页数:3
目录摘要 (1)Abstract (2)1设计原理 (3)1.1 MCS-51单片机的结构及编程方法 (3)1.2 16*16点阵LED原理 (5)1.3 3-8译码器原理 (6)2.设计方案介绍 (7)2.1 设计总体思路 (7)2.2 与题目相关的具体设计 (7)2.3程序设计流程图 (8)3.源程序,原理图和仿真图 (9)3.1程序清单(见附录) (9)3.2电路图 (9)3.2.1电路原理图 (9)3.2.2电路图分析 (9)3.3仿真图 (10)4性能分析 (11)5.总结和心得 (12)6.参考文献 (13)附录:程序代码 (14)摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。
包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。
在负载范围内, 只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。
关键词:MCS-51;LED;单片机AbstractAs a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode). The LED dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. This paper introduces a kind of simple 16x16 LED display screen design process based on MCS-51 single chip minicomputer . The detail hardware scheme, software flow and assemble language programmer design and so on is followed. The display part can be cascaded to meet the need. The practice proves the design is low-cost and effective.Key words: MCS-51;LED;MCU1设计原理1.1 MCS-51单片机的结构及编程方法MCS-51单片机的组成: CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。
C语⾔是如何⽤16点阵⽅法输出汉字的C语⾔是如何⽤16点阵⽅法输出汉字的?到⽬前为⽌,我们编写的C 程序,其⽤于⼈机交互的提⽰或菜单都是英⽂的,那么如何在没有汉化的Turbo C 集成开发环境下编制显⽰汉字的程序呢?解决这⼀编程问题,我们⾸先必须了解有关汉字编码及字库的知识。
根据对汉字使⽤频率的研究,可把汉字分成⾼频字(约100 个),常⽤字(约3000 个),次常⽤字(约4000 个),罕见字(约8000 个)和死字(约45000 个),即正常使⽤的汉字达15000 个。
我国1981 年公布了《通讯⽤汉字字符集(基本集)及其交换码标准》GB2312-80 ⽅案,把⾼频字、常⽤字、和次常⽤字集合成汉字基本字符集(共6763 个),在该集中按汉字使⽤的频度,⼜将其分为⼀级汉字3755 个(按拼⾳排序)、⼆级汉字3008 个(按部⾸排序),再加上西⽂字母、数字、图形符号等700 个。
汉字编码:区位码国家标准的汉字字符集(GB2312—80)在汉字操作系统中是以汉字库的形式提供的。
汉字库结构作了统⼀规定,即将字库分成94 个区,每个区有94 个汉字(以位作区别)每⼀个汉字在汉字库中有确定的区和位编号(⽤两个字节),这就是所谓的区位码(区位码的第⼀个字节表⽰区号,第⼆个字节表⽰位号,因⽽只要知道了区位码,就可知道该汉字在字库中的地址,每个汉字在字库中是以点阵字模形式存储的,如⼀般采⽤16×16点阵形式,每个点⽤⼀个⼆进位表⽰,存1 的点,当显⽰时,可以在屏上显⽰⼀个亮点,存0 的点,则在屏上不显⽰,这样把存某字的16×16 点阵信息直接⽤来在显⽰器上按上述原则显⽰,则将出现对应的汉字。
内码汉字使⽤两字节表⽰,国家制定了统⼀标准,称为国标码。
国标码规定,每个字节使⽤后⾯7 位,第⼀位为0。
为了区别于英⽂的ASCII 码,国标码在计算机上使⽤的时候,规定汉字每个字节第⼀位设置为1,以表⽰该两字节为汉字,称为内码。
单片机原理与应用课程设计一、课程名称:16*16点阵显示实验二、学生信息:三、内容简介:利用实验系统16×16点阵实验单元,编制程序实现汉字点阵循环显示“感谢您的指导!”字样。
四、设备选取:计算机、字模取样软件、MCS-51 单片机实验系统、138译码电路、连线等。
五、实验步骤:按实验电路图连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与位于地址线A0引出孔所在位置下方的使能控制输出端G作对应连接,该端的寻址范围为FFE0~FFFFH。
⑴把点阵单元的片选信号CS插孔与译码输出插孔Y0相连;⑵用一8芯扁平电缆把点阵单元总线接口与数据总线(D0~D7)任一接口相连;⑶用一根双头实验线把点阵单元的写信号WR插孔与位于六位LED显示左下方的系统控制信号WR/IOWR相连。
⑷编译、装载、连续运行程序,点阵显示模块应循环显示“感谢您的指导!”字样。
六、实验流程图略七、实验电路图八、实验程序:;===========27个汉字移位循环显示主程序===================== ORG 0000HLJMP XB13;==========点阵扫描子程序====================X01A: CLR A ;清列值MOV 0EH, A ;指向零列X023: MOV A, 0EH ;取列值CLR CSUBB A, #10H ;减16(十进制数)JC X0D2 ;末满16列继续扫描下一列RET ;本次扫描完毕返回主程序X0D2: MOV 0F0H, #02H ;0FOH是寄存器B的地址MOV A, 0EHMUL AB ;当前列值与“2”进行十进制调正MOV 82H, A ;调正结果送数据指针DPTRMOV 83H, 0F0H ;(82H、83H分别是DPL、DPH的地址)LCALL XB1F ;取与当前列对应的扫描代码MOV 20H, A;=====================LCALL XB4E ;扫描代码送高八位锁存器;=====================MOV A, 0EH ;取列值MOV 0F0H, #02H ; 0FOH是寄存器B的地址MUL AB ;当前列值与“2”进行十进制调正ADD A, #01H ;调正结果加1送数据指针DPTRMOV R7, ACLR AADDC A, 0F0H ; 0FOH是寄存器B的地址MOV 82H, R7MOV 83H, A ;(82H、83H分别是DPL、DPH的地址)LCALL XB1F ;取与当前列对应的扫描代码;============存储列代码========PUSH DPH ;扫描代码送低八位锁存器PUSH DPLMOV DPTR,#0FFE0H ;0FFE0H是列代码2MOVX @DPTR,A;====================MOV A, #01H ;代码扫描从第一行开始MOV R6, #00HMOV R0, 0EH ;取与当前代码扫描对应的列值INC R0 ;列指针加1SJMP X083X07E: CLR C ;当前代码扫描对应行的查找RLC A ;行高八位左移一位XCH A, R6RLC A ;行低八位带进位左移一位XCH A, R6X083: DJNZ R0, X07E ;不为当前代码扫描对应行返上继续调正;====================MOV DPTR,#0FFE2H ;当前行码送高八位锁存器MOVX @DPTR,AMOV DPTR,#0FFE1H ;当前行码送低八位锁存器MOV A,R6MOVX @DPTR,AMOV R6,#80H ;当前行锁定显示250u秒DJNZ R6,$;====================CLR A ;关闭显示MOV DPTR,#0FFE1H ;0FFE1H是行扫描2MOVX @DPTR,A ;行高八位锁存器清零INC DPTR ;DPTR指向行扫描1MOVX @DPTR,A ;行低八位锁存器清零POP DPLPOP DPH;====================INC 0EH ;列指针加1AJMP X023 ;继续下1行;=========行扫描===========X097: CLR AMOV DPTR,#0FFE1HMOVX @DPTR,AINC DPTRMOVX @DPTR,A;====================X0A0: CLR A ;清扫描个数寄存器MOV R5, A ;从第一个开始扫描X0A2: MOV A, R5 ;取当前扫描个数(R5放扫描个数)CLR C;========= 确定要显示的汉字个数===========SUBB A, #09H ;共扫描9个汉字(图案)JNC X0A0 ;扫描个数满9个返回从第一个开始MOV A, R5;========= 确定显示为循环方式============MOV DPTR,#STLS ;指向汉字表首址MOV 0F0H, #20H ; 设定以完整的一个汉字为最小循环单位放入B寄存器MUL ABADD A, DPLMOV 0AH, AMOV A, DPHADDC A, 0F0HMOV 09H, ACLR AMOV R4, A ;R4放扫描次数X0BD: MOV A, R4CLR CSUBB A, #64H ;每个汉字扫描64次JNC X0CF ;当前汉字扫描次数满64次转MOV R2,09HMOV R1, 0AHACALL X01AINC R4 ;扫描次数加1SJMP X0BDX0CF: INC R5 ;扫描个数加1指向下一个汉字SJMP X0A2;============ 汉字代码表======================================STLS:;-- 笑脸:宽度x高度=16x16 --DB 00H,00H,00H,00H,00H,00H,38H,1CH,44H,22H,82H,41H,00H,00H,00H,00HDB 00H,00H,00H,00H,08H,08H,04H,10H,02H,20H,01H,0C0H,00H,00H,00H,00H;-- 文字: 感--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 00H,28H,00H,24H,3FH,0FEH,20H,20H,2FH,0A4H,20H,24H,2FH,0A8H,28H,98HDB 28H,92H,4FH,0AAH,40H,46H,80H,82H,01H,00H,48H,84H,48H,12H,87H,0F2H;-- 文字: 谢--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 01H,08H,42H,08H,27H,88H,24H,88H,07H,0BEH,04H,88H,0E7H,88H,24H,0C8H DB 24H,0A8H,2FH,0A8H,21H,88H,2AH,88H,34H,88H,28H,88H,02H,0A8H,01H,10H;-- 文字: 您--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 09H,00H,09H,00H,11H,0FCH,32H,04H,54H,48H,99H,50H,11H,48H,12H,44HDB 14H,44H,11H,40H,10H,80H,02H,00H,51H,04H,51H,12H,90H,12H,0FH,0F0H;-- 文字: 的--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 10H,40H,10H,40H,20H,40H,7EH,7CH,42H,84H,42H,84H,43H,04H,42H,44HDB 7EH,24H,42H,24H,42H,04H,42H,04H,42H,04H,7EH,04H,42H,28H,00H,10H;-- 文字: 指--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 11H,00H,11H,04H,11H,38H,11H,0C0H,0FDH,02H,11H,02H,10H,0FEH,14H,00H DB 19H,0FCH,31H,04H,0D1H,04H,11H,0FCH,11H,04H,11H,04H,51H,0FCH,21H,04H;-- 文字: 导--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 00H,00H,3FH,0F0H,20H,10H,20H,10H,3FH,0F0H,20H,04H,20H,04H,1FH,0FCH DB 00H,20H,00H,20H,0FFH,0FEH,08H,20H,04H,20H,04H,20H,00H,0A0H,00H,40H;-- 文字: !--;-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --DB 00H,00H,10H,00H,10H,00H,10H,00H,10H,00H,10H,00H,10H,00H,10H,00HDB 10H,00H,10H,00H,00H,00H,00H,00H,10H,00H,10H,00H,00H,00H,00H,00H;-- 心形:宽度x高度=16x16 --DB 00H,00H,00H,00H,3AH,2CH,41H,42H,40H,82H,40H,02H,40H,02H,20H,04HDB 10H,08H,08H,10H,04H,20H,02H,40H,01H,80H,00H,00H,00H,00H,00H,00H;========================程序初始化==========================XB13: MOV R0, #7FHCLR AXB16: MOV @R0, ADJNZ R0, XB16MOV 81H, #20HJMP X097;============查找与当前列对应的汉字代码子程序====================XB1F: MOV A, 82H ;本次扫描首址与当前列值相加ADD A, R1 ;低八位相加MOV 82H, A ;送DPLMOV A, 83H ;高八位相加ADDC A, R2 ;再加低八位进位位CYMOV 83H, A ;送DPHCLR AMOVC A, @A+DPTR ;取汉字代码RET ; 返回;=====================XB4E: MOV C, 07HMOV ACC.0, CMOV C, 06HMOV ACC.1, CMOV C, 05HMOV ACC.2, CMOV C, 04HMOV ACC.3, CMOV C, 03HMOV ACC.4, CMOV C, 02HMOV ACC.5, CMOV C, 01HMOV ACC.6, CMOV C, 00HMOV ACC.7, C;=====================PUSH DPHPUSH DPLMOV DPTR,#0FFE3H ;0FFE3列代码1MOVX @DPTR,APOP DPLPOP DPHRET;-------------------------------END九、课程总结:通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,懂得了理论联系实际只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是正确的理论,从而提高自己实际动手能力和独立思索的能力。
点阵汉字的原理及应用1. 点阵汉字的概述点阵汉字是通过一系列的点阵来表示汉字的一种方法。
每个点阵都代表了一个汉字的一个笔画或者一个组件。
通过将这些点阵组合在一起,我们可以呈现出完整的汉字。
2. 点阵汉字的原理点阵汉字的原理可以分为两个步骤:字形生成和显示。
2.1 字形生成字形生成是指根据汉字的笔画顺序和结构,在点阵上绘制出每个笔画的轮廓。
这可以通过以下步骤完成: 1. 根据汉字的笔画顺序确定每个笔画的起始点和结束点。
2. 根据笔画的形状,确定每个笔画的拐角和曲线。
3. 将每个笔画的拐角和曲线连接起来,形成字形的轮廓。
4. 将字形的轮廓转化为点阵,每个点表示一个像素。
2.2 显示显示是指将生成的点阵汉字在显示设备上呈现出来。
这可以通过以下步骤完成:1. 将点阵汉字发送给显示设备。
2. 在显示设备上按照点阵的位置和颜色信息,点亮对应的像素。
3. 重复上述步骤,直到所有点阵汉字都被显示出来。
3. 点阵汉字的应用点阵汉字广泛应用于各种显示设备和软件中,以下是几个常见的应用领域:3.1 数码产品在数码产品中,点阵汉字常用于显示屏、小型计算器、电子手表等设备的界面上。
通过点阵汉字,用户可以方便地查看和输入文字信息。
3.2 广告牌和标志在广告牌和标志中,点阵汉字可以用于显示商店名称、产品标语等信息。
通过使用点阵汉字,可以将文字信息以更加醒目和吸引人的方式展示出来。
3.3 字符识别在字符识别领域,点阵汉字可以用于机器视觉系统中的文字识别。
通过将图像中的文字转化为点阵汉字,可以方便地对文字进行处理和识别。
3.4 手写输入在智能手机和平板电脑等设备中,点阵汉字可用于手写输入法。
用户可以通过手指在设备屏幕上划出汉字的笔画,系统会自动将笔画转化为点阵汉字,从而实现输入汉字的功能。
3.5 打印和排版在打印和排版领域,点阵汉字可用于生成高质量的印刷品。
通过将文字转化为点阵汉字,可以保证文字在不同尺寸和分辨率的输出设备上都能显示清晰和精确。
点阵式汉字LED显示屏电路原理与制作汉字显示屏广泛应用与汽车报站器,广告屏等。
本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。
同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。
1汉字显示的原理:我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国标汉字库中的每一个字均由256点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。
一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。
在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00---p07口。
方向为p 00到p07 ,显示汉字“大”时,p05点亮,由上往下排列,为p0.0 灭,p0.1 灭, p0.2 灭p0.3 灭, p0.4 灭, p0.5 亮,p0.6 灭,p0.7 灭。
即二进制00000100,转换为16进制为 04h.。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。
然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h.这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”的扫描代码为:04H,00H,04H,02H,04H,02H,04H,04H04H,08H,04H,30H,05H,0C0H,0FEH,00H05H,80H,04H,60H,04H,10H,04H,08H04H,04H,0CH,06H,04H,04H,00H,00H由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。
• 134•针对LED 点阵显示汉字需要占用单片机多个并行口的问题,提出了基于89S51单片机的16×16点阵汉字显示设计,利用74HC138和74HC595对单片机并行口进行扩展,从硬件设计、软件设计方案等关键环节,分别进行了详细讨论。
随着单片机技术的发展,LED 点阵屏作为文字和图形显示的新型媒体,由于亮度高、耗能低、色彩鲜艳、寿命长等特点,迅速出现在学校、医院、车站等场所。
但LED 点阵显示需要占用单片机多个并行口,而通用移位寄存器74HC595T 和译码器74HC138,可以实现对单片机IO 的扩展,从而节约了大量的并口资源。
本设计详细介绍了74HC138和74HC595芯片在1616×16点阵LED 显示屏的应用。
1 电路总体设计16×16点阵汉字显示电路如图1所示,它由一片16×16点阵LED 显示屏、两片74HC138构成的行控制单元、两片74HC595构成的列控制单元及AT89S51单片机构成。
列控制单元用于输入数据,而行控制单元用于逐行扫描。
图1 系统总体结构1.1 16×16点阵工作原理本设计采用的是共阴16×16点阵显示模块。
它由256只发光二极管按一定规律安装成方阵,从内部结构如图2所示,可以看出,总共有16行和16列,每行的发光二极管阴极相连,每列的发光二极管阳极相连。
在行和列的交叉处有一个发光二极管,要使其中任一个二极管发光,则其对应行为低电位,而对应的列为高电位即可。
1.2 行控制单元行控制单元的控制原理是:先使第一行Y 0为低电平,其余行为高电平,显示第一行数据;然后第二行Y 1为低电平,其余行电平,显示第二行数据。
按照这个规律每行以较快的速度不断进行刷新,由于发光二极管的余辉效应和人的视觉暂留现象两个因素,给人的印象就是一组静态的数据,不会产生闪烁感。
动态显示能够节省I/O 端口,且功耗低。
本设计采用74HC138三位译码器。
点阵汉字显示下面以HZK16文件为例,分析取得汉字字模的方法。
HZK16文件是按照GB 2312-80标准,也就是通常所说的国标码或区位码的标准排列的。
国标码分为94 个区(Section),每个区94 个位(Position),所以也称为区位码。
其中01~09 区为符号、数字区,16~87 区为汉字区。
而10~15 区、88~94 区是空白区域。
如何取得汉字的区位码呢?在计算机处理汉字和ASCII字符时,使每个ASCII字符占用1个字节,而一个汉字占用两个字节,其值称为汉字的内码。
其中第一个字节的值为区号加上32(20H),第二个字节的值为位号加上32(20H)。
为了与ASCII字符区别开,表示汉字的两个字节的最高位都是1,也就是两个字节的值都又加上了128(80H)。
这样,通过汉字的内码,就可以计算出汉字的区位码。
具体算式如下:qh=c1-32-128=c1-160 wh=c2-32-128=c2-160或qh=c1-0xa0 wh=c2-0xa0qh,wh为汉字的区号和位号,c1,c2为汉字的第一字节和第二字节。
根据区号和位号可以得到汉字字模在文件中的位置:location=(94*(qh-1)+(wh-1))*一个点阵字模的字节数。
那么一个点阵字模究竟占用多少字节数呢?我们来分析一下汉字字模的具体排列方式。
例如下图中显示的“汉”字,使用16×16点阵。
字模中每一点使用一个二进制位(Bit)表示,如果是1,则说明此处有点,若是0,则说明没有。
这样,一个16×16点阵的汉字总共需要16*16/8=32个字节表示。
字模的表示顺序为:先从左到右,再从上到下,也就是先画左上方的8个点,再是右上方的8个点,然后是第二行左边8个点,右边8个点,依此类推,画满16×16个点。
对于其它点阵字库文件,则也是使用类似的方法进行显示。
例如HZK12,但是HZK12文件的格式有些特别,如果你将它的字模当作12*12位计算的话,根本无法正常显示汉字。
单片机课程设计题目:8*8点阵汉字显示器专业班级:******姓名:******学号:*********一.摘要:用TOP-23088DH-U 8*8点阵块设计制作一个8*16点阵汉字显示器。
通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供行数据,C口提供扫描列信息,通过74LS154译码后进行扫描,当点阵的行接高电平,列为低电平时,同时选通,则在该点的LED点亮。
由于实验箱上所提供的驱动电流太低,不足以点亮二极管,所以在电路中增加一个74LS254芯片,以提供点亮LED 所需的驱动电流。
同时在P1.0-P1.2口接3个开关,形成按键控制功能选择。
点阵模块图如下:如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。
当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。
点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。
二.设计任务和要求:(1)基本要求:1.能显示8*8的汉字,用两个8*8点阵,显示“大连”。
2.通过键盘控制可以改变显示的汉字与图形。
3.通过键盘控制,可以实现彩灯控制功能,发光管从内向外周期显示和相反显示。
(2)发挥要求:1.增加驱动电路,提高显示亮度。
三.方案选择和论证:3.1:方案论证:控制模块由8051、74LS154,8255组成,其中,采用51单片机制做一个最小系统,包含有时钟信号电路、复位电路等,154是4线转16线译码器,4线端接8255的PC.0-PC.3口,16线端低电平有效,控制点阵的16列,245是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。
显示模块由2块8×8点阵组成,通过相互并联转换成16×8点阵。
3.2:方案选择:(1).实验仪器(2).流程图:YNNYNYN(3).硬件连接开始不显示 K1是否按下?K2是否按下?K3是否按下?静态显示“大连”动态显示“大连”(由内向外再相反显示)静态显示“爱心”(图形)四.实际操作与调试:(1)实际制作使用keil 先对软件程序进行编译测试并进行proteus 仿真,调试成功后开始硬件部分。
点阵式汉字显示的制作
作者:何奕飞
来源:《职业·中旬》2009年第11期
单片机是一门技术性和实践性很强的专业课程,必须通过一系列软硬件实验理论联系实际才能学懂学好。
它对学生的应用能力和自学能力有着较高的要求。
现在职业学校的教学中主要以“51系列”8位单片机为基础展开教学。
单片机应用及技术开发阶段,教师给出设计要求,由学生自行设计、安装电路,并编写程序。
主要是针对学生技师阶段的学习,在有些职业学校还未开展。
下面笔者以《点阵式汉字显示的制作》这一课题为例,讲述一下学生在技师阶段单片机学习中所应具备的知识和能力。
一、课题内容
设计一汉字显示器,要求能在16*16点阵LED显示块上显示一汉字(且有四种显示方式),显示块用4个8*8LED数码显示器显示。
二、课题分析
1.本课题所选用的CPU为AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。
2.本课题选用的LED点阵为共阳极TBA22088H,采用动态扫描方式显示
基本连接方式如下:
16*16点阵显示器显示1个汉字,一行有16列,共有16行,需要用8*8的点阵显示器4块
74LS373驱动器2块,单片机用P1口,P3.0~P3.3口,P2.4~P2.7口控制行驱动,每根线控制一行,故每次传送一行(2个数据)。
LED显示器的汉字显示器是由单片机从存储器中预先存储的“字形库”中取出相应的数据来显示汉字,每次选取一行,用P1口,P3.0~P3.3口,P2.4~P2.7口控制三极管9012的饱和与截止来控制显示器,提供行驱动电源,当输出高电压时就点亮了矩阵显示上的一行。
当选通某一行时,并对这一行中需要发光的二极管进行激励,然后对下一行继续进行上述步骤,当按一定的次序对所有行都进行扫描以后,可显示出一幅图画,只要图画刷新的周期小于人眼视觉残留时间,则就能形成一幅稳定不闪烁的图画。
3.本课题电源的控制如图1方式连接
4.本课题采用上电自动复位方式,用12MHZ的晶振
如图2。
5.本课题采用定时0工作方式1
工作方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成,工作方式的特点是计数溢出后,计数器全为0,故循环定时或计数时就存在反复设置计数初置问题。
而本课题无需要循环,故选择工作方式1。
工作方式1定时时间为:(216-计数初值)*晶振周期*12,本课题定时2ms, (一行显示时间),则计数初值为:(216-X)*1ms=2ms X=63536DX=F920H
6.本课题采用四种显示方式控制
整个字往下移式、整个字一行一行从下往上移式、整个字一行一行从上往下移式、整体展开式。
三、流程图设计
课题设计采用4种显示方式依次轮流显示。
显示以子程序方式编写,通过主程序调用实现。
点阵式汉字显示的制作涉及了单片机的逻辑结构、内部存储器、时钟电路、复位电路、定时/计数器、中断系统、LED显示器接口技术等相关知识。
以学生为主自行设计、编程制作,教师指导,可以使学生单片机学习有一个质的提高。
(作者单位:江苏省常州技师学院)。