77范文网 - 专业文章范例文档资料分享平台

基于单片机的点阵led毕业毕设 - 图文(6)

来源:网络收集 时间:2019-04-13 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

哈尔滨理工大学学士学位论文

3.8 本章小结 本章详细介绍了通讯部分、主控单片机部分、驱动部分和显示部分的工作原理和详细的电路连接,及总体的原理图和PCB图。

- 22 -

哈尔滨理工大学学士学位论文

第4章 软件设计

4.1 软件设计思路

本设计采用keil软件编程,系统程序采用进行子程序模块化设计,将显示汉字的点阵码从只读存储器读入到单片机内部的显示缓存区中,再将缓存区的点阵码依时间片从串口送到显示驱动。每行显示时间为1.2ms,每秒扫描50次。用不同的子程序改变显示缓冲存储器中点阵码的排列方式,即可得到不同的显示方式。读入不同地址的汉字显示码,即可改变显示内容。

4.2 Keil软件的开发环境

Keil公司开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的Keil C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目。

4.3 基于单片机的点阵LED的软件设计

4.3.1 字模软件的应用

每一个字由16行16列的点阵组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在256象素范围内的任何图形。我们以“哈”字为例,显示效果如图

- 23 -

哈尔滨理工大学学士学位论文

图2 汉字显示原理

为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。首先将16行分成8位的上、下两部分,把发光的象素位编为0不发光的象素位为1的十六进制代码。这样就把要显示的“ 哈”字编为如下代码:

DB 0FFH,80H,0BAH,82H,0BEH,82H,0BAH,80H ;四

由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚汉字点阵代码的获取过程,但是依靠人工方法获取汉字代码是一件非常繁琐的事情。对于16X16十六进制数据的汉字代码,我们经常采用字库软件查找字符代码,软件打开后输入汉字,点“检取”,十六进制数据的汉字代码即可自动生成,把我们所需要的竖排数据复制到程序中即可,如图4所示。可见,汉字点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1 024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8—128 Hz,周期小于7.8 ms即可,但是一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。

- 24 -

哈尔滨理工大学学士学位论文

图3 显示结果

4.3.2 程序流程图

软件程序主要由开始、初始化、主程序、字库组成。其中主程序的流程图如图所示。下面的程序能够用来实现显示“哈理工大学” 。

汉字的显示。程序清单如下

- 25 -

哈尔滨理工大学学士学位论文

4.3.3 程序的管脚定义

sbit DATAIN = P1^0; sbit CLK = P1^2; sbit OUT = P1^3;

4.3.4 程序的调用数组

table[6]={0xff,0xc3,0x5d,0x7e,0xee,0x4f}, table1[6]={0xff,0xdd,0x43,0x7e,0xed,0x97}, table2[6]={0xff,0xc3,0x57,0x7e,0xe3,0x45}, table3[6]={0xff,0xdf,0x06,0x00,0x87,0x80}, table4[6]={0xff,0x21,0x52,0x7e,0xe3,0xc7}, table5[6]={0xff,0xe5,0x00,0x7e,0xed,0x97}, table6[6]={0xff,0xc1,0x56,0x7e,0xee,0x4f}, table7[6]={0xff,0xdf,0x07,0x7e,0xee,0xdf};

4.3.5 延时子函数

void Delay_time(void) {

unsigned int i = 0, j = 0; for (i = 0; i < 1; i++) { for (j = 0; j <1; j++); } }

4.3.6 数据写入子函数

void write_data(unsigned int dat) {

unsigned char i; for (i = 0; i < 8; i++) { CLK = 0; DATAIN = dat & 0x80; dat = dat << 1; Delay_time(); CLK = 1; Delay_time(); } }

- 26 -

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的点阵led毕业毕设 - 图文(6)在线全文阅读。

基于单片机的点阵led毕业毕设 - 图文(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/585591.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: