资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
LED 点阵汉字显示屏 设计文档 苏州大学飞思卡尔 DSPD6(ENSCI)=1,允许 SCI。其它位为 0, STA SCC1 ;即正常码输出、8 位数据、无校验等 LDA #%00101100 ;D3(TE)=1,允许发送器;D2(RE)=1,允许接收器。 STA SCC2 ;D5(SCRIE)=1,中断方式接收数据 LDA #%00000000 STA SCC3 ;暂定为全零 LDA #%00000010 ;例如:fBUS2.4576MHz,取 PD=1(即 SCP1、SCP0=00) 、 STA SCBR ;BD=2(即 SCR2、SCR1、SCR0=010), ;则波特率=2457600 /(64*1*4) = 9600 *- - - - - - - - - - - - - - - 串行口初始化结束- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2、串口通信程序编制、串口通信程序编制 每当向 PC 机方应用程序里输入新显示内容并发送给单片机时,单片机就产生串行中断,接收待显示的点阵数据。单片机接收数据则采用)查询接收的工作方式。进入中断后,首先关闭中断,防止接收数据出错,然后将收到的显示信息数据存入变量,接收到的点阵数据在反馈给 PC 机确认后依次写入指定 FLASH空间内,同时根据标记位判断数据接收是否全部结束,最后开中断返回主程序。程序流程如图 3-8 所示。 SCTE TC SCRF IDLE OR NF FE PE - - - - - - BKF RPF 10 上电复位 I/O口定义及初始化 默认显示方式的设置 系统初始化 串口的初始化设置 擦写子程序初始化 打开中断 根据参数调用显示子程序 图3-7 主程序流程 关中断 是 接收到从PC机发来的数接收点阵数据 调用擦写FLASH的子程序 打开中断 图3-8 串行中断程序流程 中断返回 更改点阵显示起始地址 接收点阵显示类型信息 点阵数据是否接收结束 否 是 否 11 4.1.3 串行移动的子程序设计串行移动的子程序设计 这是一个通用子程序,在显示子程序中都要被调用,功能是移位寄存器 74HC595 接收单片机发出的点阵行数据, 逐位移动到对应位置后再进行锁存和输出工作, 同时对四六译码器进行开关工作,控制屏幕的显示,流程图如图 3-9 所示。 4.1.4 显示子程序设计显示子程序设计 静止显示是所有显示方式中最简单的一种。在发送点阵数据给单片机时,根据已经制作好的显示屏的结构特征,即一屏能显示 3 个汉字,将汉字每 3 个分为一组,按组发送。而单片机接收汉字时是将一组汉字按行的顺序存储后再按组依次存储下去, 其存储的结构如图3- 10 所示。显示时是将按组顺序存储的点阵数据,按行扫描依次取出,逐行点亮 LED。在一屏汉字显示完毕后,循环显示一段时间后,点阵地址偏移 96 个字节,接着显示下一屏数据,其流程图如图 3-11所示。 图 3-9 串行传送数据子程序 压栈保护 输出移位时钟 8 位发送完? 是 6 字节发完? 是 否 开四十六译码器并选中对应行 否 移一位数据输出 退栈 子程序返回 关四十六译码器 输出锁存时钟 12 图 3.11 静止显示子程序 调用串行移动数据子程序 是 点阵地址偏移 6 个字节 6 行是否全部扫完? 是 否 四六译码器选择下一行 子程序返回 选中显示屏第一行 点阵地址向后偏移 96 个字节 整屏刷新次数计数器减 1 整屏刷新次数计数器是否等于 0否 是 文字显示是否结束 否 是 第一组 3 个汉字的 第一行点阵数据 第一组 3 个汉字的 第二行点阵数据 第一组 3 个汉字的 第十六行点阵数据 第一 组十 六行 点阵 数据第二组 3 个汉字的 第一行点阵数据 第二组 3 个汉字的 第二行点阵数据 第二组 3 个汉字的 第十六行点阵数据 第二 组十 六行 点阵 数据N 组 十六 行点 阵数 据 图 3- 10 静止显示时 FLASH中 汉字字模的存储结构 13 4.2 PC 机方主控软件的设计机方主控软件的设计 主控软件主要进行两个方面的设计: 一个是对汉字字库的提取显示; 另一个是串口通过 主控计算机对显示屏的控制显示功能主要是通过计算机的串口实现 4.2.1 汉字字库的提取汉字字库的提取 1、汉字的表示及编码原理、汉字的表示及编码原理 计算机用编码的方式来处理和使用字符,英文在计算机机内是用一个 ASCII码来表示,而中文汉字则由两个 ASCII 码表示。1981 年我国正式发布国家标准信息交换用汉字编码字符集- - 基本集GB2312- 80。在这个标准中共收录简化汉字及符号、字母、日文假名等共 7445 个图形字符,其中汉字占 6763 个。另外,GB2312 规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示” ,GB2312 将汉字分为 94 个区,每个区用一个区码表示; 每个区又对应有 94 个汉字, 用位码加以表示, 因此也称为区位码。 01- 09区为符号、数字区,16- 87 区为汉字区,10- 15 区、88- 94 区是有待进一步标准化的空白区。GB2312 还将收录的汉字分成两级:第一级是常用汉字计 3755 个,置于 16- 55 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计 3008 个,置于 56- 87 区,按部首/笔画顺序排列,故而 GB2312 最多能表示 6763 个汉字。 为了解决区位码与西文字符相混淆的问题, 就规定汉字在计算机中用内码表示, 内码为两个字节,而且为了保证中西文兼容,即与 ASCII 码的使用不发生冲突,所以汉字的两个字节的最高位均为 1 。所以汉字内码与区位码之间的关系公式为:机内码高位区码A0H;机内码低位位码A0H。只要通过某个汉字的内码就可得到该汉字的区位码,也就得到了该汉字的字模。在 软件设计中选用了UCDOS 5.0汉字系统中的1616点阵字库Hzk16作为提取汉字字模的标准字库,其中每个汉字占有 32 个字节的空间,汉字在字库中位置的计算公式为:Location = (机内码高位&HA1)94 + (机内码低位&HA1)32。 2、提取汉字的软件设计及实现、提取汉字的软件设计及实现 汉字点阵的提取程序是用 VB 实现的。其中以何种方式从字库文件中读取这 32 个字节也是一个关键问题。由于二进制(Binary)方式访问文件可以直接查看文件中指定的字节,而且二进制方式也是唯一支持用户到文件的任何位置读写任意长度数据的方法, 因而以二进制方式打开汉字字库文件是最适合的。而 且程序也支持西文字符的显示,显示时 也让其占用一个汉字的空间, 不过它的点阵 16x8 的, 所以不足部分就补零数据, 流程图如图 3- 15 所示。 14 4.2.1 串口通信的简介与软件设计串口通信的简介与软件设计 1、串口通信简介、串口通信简介 串行通讯端口在系统控制范畴中一直占有极重要的地位,不仅没有因为时代的进步而淘汰,反而在规格上愈来愈向其极限挑战,而且它具有连接设备种类多、实际操作简单、 价格便宜等许多优点。现在计算机 上 的串 行 通 讯 端口(RS-232)是必要配备,通常有 COM1与 COM2 两个信道,一般的计算机将COM1 以 9Pin 的公头接出。RS-232 的讯号传输模式如图 3-16 所示。 串行通讯的方式可以分为同步式及异步式两种。同步式在通讯的两端使用同步讯号作为通讯的依据;而异步式则使用起始位(Start Bit )及停止位(Stop Bit )作为通讯的判断。而 RS-232 是美国电子工业协会正式公布的,也是在异步串行通信中应用传送端 接收端 讯号电压 接地端 接地端 图 3- 16 RS232讯号传输模式图 图 3-15 汉字点阵的提取 否 否 判定输入字符是否汉字? 是 打开 HZK16 和 ASC16 文件 转换为机内码 计算出区位码 计算出所处位置 将连续 32 个字节存入数组 判定是否全部识别结束 是 转换成对应显示类型 所需的点阵数组 转换为 ASCII 码 计算出所处位置 取出连续16个字节并补充16 个字节的零数据存入数组 15 最广的标准总线。该标准适用于 DCE 和 DTE 间的串行二进制通信,最高数据传输速率可达19.2kbps,最长传送电缆可达 15 米。无论是 9 针还是 25 针的标准,对于一般的双向通信,只需使用串行输入 RxD,串 行输出 TxD 和地线 GND。在RS-232 中任何一条信号线的电压均为负逻辑关系,即逻辑“1” ,515V;逻辑“0” ,515V。噪声容限为 2V,即要求接收器能使别低至3V 的信号作为逻辑“0” ,高到3V 的信号作为逻辑“1” ,其与 TTL 和CMOS 电平是不同的。因为在接口电路和计算机接口芯片中大都为 TTL 或 CMOS 电平,所以在通信时,必须进行电平转换,以便与 RS-232 标准的电平匹配,MAX232 芯片可以完成电平转换工作。 现在一般以异步传输较多,采用 9 针接头,定义如下: 引脚号引脚号 意义意义 1 CD 载波侦测 2 RXD 接收数据线 3 TXD 发送数据线 4 DTR 数据终端准备就绪 5 GND 地线 6 DSR 数据准备就绪 7 RTS 请求发送线 8 CTS 清除发送 9 RI 振铃指示 2、VB 下的具体实现下的具体实现 Windows 的操作系统与 DOS 是迥然不同的,Windows 采用了全新的对象化观念,把所有的程序都对象化。VB 的串行通信对象是将 RS-232 的低阶动作予以封装,使用者以高阶的Basic 语法就可与外界通讯,而并不需要了解其它有关的低阶动作,其串行组件为 MsComm。 由于 MsComm 属性众多,现对其重要属性说明如下: CommPort:设定或传回通讯连接端口的代号,程序必须指定所要使用的串行端口号,Windows 系统会使用指定的通讯端口与外接通讯,要注意的是 MsComm 控件的最大值为 16,否则会报出错信息。 Settings:设定初始化参数,以字符串形式设定或传回“波特率、奇偶校验、数据位、停止位参数”四个参数,其格式为“BBBB,P,D,S“,BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数。value 的缺省值是:“9600,N,8,1“ 16 PortOpen:设定或传回通讯连接端口的状态,在使用串行端口之前必须先打开端口,使用完毕之后也必须关掉端口。 Input:返回并删除输入缓冲区的数据,是一种 FIFO机制。 InputLen:指定串行口读入的字符串长度。 Output:将字符串写入传输缓冲区。 HandShaking:指定通讯双方采用的握手协议。 Rthreshold:设定或返回引发接收事件的字符数,默认值为 0,即无论缓冲区有多少字符均不引发接收事件。 InBufferCount:返回在接收缓冲区的字符数,可以设定为 0 用来清除接收缓冲区。 InputMode:设定或返回 Input 属性取回的数据类型 串口初始化程序如下: MSComm1.CommPort = 1 第一串行口 If MSComm1.PortOpen = True Then MSComm1.PortOpen = False MSComm1.Settings = “9600,N,8,1“ 定义传输格式 MSComm1.InputMode = comInputModeBinary
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号