⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.htm

📁 单片机系统中的汉字显示    摘要: 需要显示的汉字较多时
💻 HTM
📖 第 1 页 / 共 3 页
字号:
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/PIC.htm">PIC单片机系列</A> 
                  </SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/AVR.htm">AVR单片机系列</A></SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/keil.htm">Keil 
                  uVision2教程与典型应用设计</A> </SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/gongchengyy.htm">单片机在工程中的应用</A></SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11></SPAN> <SPAN class=style1><A 
                  href="http://www.tengdamc.com/download/other.htm">其它全部</A></SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1><IMG height=11 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/arrow2.gif" 
                  width=20>分类文章</SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/lunwen.htm">单片机毕业设计论文</A></SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/chuankou.htm">串行通讯</A></SPAN></TD></TR>
              <TR>
                <TD height=20><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/shiyanjc.htm">单片机实验及实践教程</A></SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/jishuwz.htm">单片机学习及经验技巧文章</A></SPAN></TD></TR>
              <TR>
                <TD><SPAN class=style1> <IMG height=10 
                  src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/button.gif" 
                  width=11> <A 
                  href="http://www.tengdamc.com/download/danpianjikf.htm">单片机开发应用文章</A></SPAN></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD vAlign=top borderColor=#f7f3f7 bgColor=#f7f3f7 height=22><IMG 
            height=40 
            src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/chanpin.gif" 
            width=176></TD></TR>
        <TR>
          <TD vAlign=top borderColor=#f7f3f7 bgColor=#f3f3f3 height=44><SPAN 
            class=style1>· <A 
            href="http://www.tengdamc.com/chanpinxx/TMC101/tmc101.htm" 
            target=_blank>TMC101单片机编程器采用ISP下载模式,USB供电,支持ATMEL公司AT89S系列51单片机 
            <BR></A><BR><A 
            href="http://www.tengdamc.com/chanpinxx/TMC401/TMC401.htm" 
            target=_blank><BR></A>· <A 
            href="http://www.tengdamc.com/chanpinxx/TMC801/TMC801.htm" 
            target=_blank>TMC801芯片开发板集成下载和实板功能,支持ATTICE公司SPLSI1000系列CPLD芯片</A></SPAN></TD></TR></TBODY></TABLE></TD>
    <TD vAlign=top align=middle width=567>
      <DIV align=center><IMG height=65 
      src="E:\danpianji\中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files\download(1).gif" 
      width=551></DIV></TD></TR>
  <TR>
    <TD vAlign=top align=middle><SPAN 
      class=style23>部分内容收集于网络,如有侵犯您的权益请来信告知,我们会第一时间进行处理,谢谢! </SPAN></TD></TR>
  <TR>
    <TD vAlign=top><SPAN class=style1></SPAN><!-- InstanceBeginEditable name="2" -->
      <TABLE borderColor=#ffffff cellSpacing=0 width="90%" align=center 
border=1>
        <TBODY>
        <TR>
          <TD>
            <DIV align=center>
            <P class=style24>单片机系统中的汉字显示 <BR><BR></P></DIV></TD></TR>
        <TR>
          <TD>
            <P class=style1 align=center>  </P>
            <P class=style1><STRONG>摘要: 
            </STRONG>需要显示的汉字较多时,单片机系统中的汉字编码非常繁琐。本文介绍一种直接利用PC机的汉字内码作为单片机系统的汉字编码,以简化系统的设计。 
            </P>
            <P class=style1><STRONG>关键词: </STRONG>单片机 液晶显示器 29F040 汉字显示 </P>
            <P class=style1><STRONG>引言 </STRONG></P>
            <P 
            class=style1>  在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。通常的汉字显示方式是先根据所需要的汉字提取汉字点阵(如16×16点阵),将点阵文件存入ROM,形成新的汉字编码;而在使用时刚需要先根据新的汉字编码组成语句,再由MCU根据新编码提取相应的点阵进行汉字显示。在这种显示方式中,如果使用的流字数量较大或语句较多时,利用汉字的新编码组成语句将是一件十分繁琐而枯燥的工作。针对这种情况,本文提出了一种十分简单的方式——直接利用PC机的汉字内码作为单片机系统的编码。下面以8031单片机系统为例阐述如下: 
            </P>
            <P class=style1><STRONG>一、硬件组成 </STRONG></P>
            <P 
            class=style1>  本系统中采用香港精电公司的内置T6963控制器[1]的240128T点阵图形液晶显示器。该显示器1行为240点,能容纳16×16点阵的汉字15个,总列数为128点,能显示8行汉字。为了使用MCU操作可使用1片512KB的存储器(如本系统中的29F040)用来存储全部的国标16×16点阵汉辽、8×16的ASCII码点阵数据以及汉字语句编码数据。为了降低成本和减小体积,对于速度要求不是很高的场合也可采用大容量的串行数据存储器,如AT45DB041B。具体的硬件控制电路如图1所示(与汉字显示无关的电路略)。 
            </P>
            <P 
            class=style1>  由于29F040的容量为512KB,而5031微控制器只能管理64KB的数据间,所以可将29F040分成16页,每页32KB,占单片机系统数据空间的8000H~0FFFFH(剩余32KB为单片机系统的其他存储器和外设)。页码由单片机的P1.0~P1.3选择。液晶显示器的地址为7FF8H~7FF9H。</P>
            <P class=style1 align=center><STRONG><BR><IMG height=339 
            src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/hanzi01.gif" 
            width=549></STRONG></P>
            <P class=style1><STRONG>二、汉字显示原理及软件设计 </STRONG></P>
            <P 
            class=style1>  UCDOS软件中的文件HZK16和文件ASC16分别为16×16的国标汉字点阵文件和8×16的ASCII码点阵文件,以二进制格式存储。在文件HZK16中,按汉字区位码从小到大依次存有国标区位码表中的所有汉字,每个汉字占用32个字节,每个区为94个汉字。在文件ASC16中按ASCII码从小到大依次存有8×16的ASCII码点阵,每个ASCII码占用16个字节。 
            </P>
            <P 
            class=style1>  在PC机的文本文件中,汉字是以机内码的形式存储的,每个汉字占用两个字节:第一个字节为区码,为了与ASCII码区别,范围从十六进制的0A1H开始(小于80H的为ASCII码字符),对应区位码中区码的第一区;第二个字节为位码,范围也是从0A1H开始,对应某区中的第一个位码。这样,将汉字机内码减去0A0AH就得该汉字的区位码。 
            </P>
            <P 
            class=style1>  例如汉字“房”的机内码为十六进制的“B7BF”,其中“B7”表示区码,“BF”表示位码。所以“房”的区位码为0B7BFH-0A0A0H=171FH。将区码和位码分别转换为十进制得汉字“房”的区位码为“2331”,即“房”的点阵位于第23区的第31个字的位置,相当于在文件HZK16中的位置为第32×[(23-1) 
            ×94+(31-1)]=67136B以后的32个字节为“房”的显示点阵。 </P>
            <P 
            class=style1>  在本单片机系统中,起始地址的高4位为页号,送P1口,低15位为数据区地址,送指针DPTR。利用“MOVX”指令连续取32个字节送LCD的相应位置,就能实现正确的汉字显示。 
            </P>
            <P 
            class=style1>  ASCII码的显示与汉字的显示基本原理相同。在文件ASC16中不存在机内码的问题,其显示点阵直接按ASCII码从小到大依次排列,只是每个ASCII码在文本文件中只占1个字节且小于80H,而且ASCII码为8×16点阵,所以在ASCII16文件中,每个ASCII码的点阵也只占16个字节。 
            </P>
            <P 
            class=style1>  首先提取16×16的国标汉字点阵和8×16的ASCII码点阵(如UCDOS软件中的HZK16和ASC16)并将其直接写入29F040。其中HZK16(共256KB)点0~7页。为了便于编程,ASC16虽然只有4KB,也单独占用第8页。其余剩下的空间用来存储汉字语句的编码。 
            </P>
            <P 
            class=style1>  由于240×128点阵的LED显示器每个只能显示15个汉字(16×16点阵汉字),即30个字节。所以可将需要显示的语句按30个字节为1行进行编写,不足30个字符的则补空格。在PC机上进行录入时,每行30个字符再加上回车键和换行符,实占32个字符。所录入的语句以纯文本形式存盘,再将该文本文件以二进制的形式写入29F040的第9页。那么,以后根据需要显示的语句行号便可以进行正确的显示。此,作者推出荐使用DOS版本的WPS软件的“编辑非文收文件”功能,它能清楚地显示每行是否有30个字符。 
            </P>
            <P class=style1>  根据以上原则,显示1行汉字的具体程序框图如图2所示。 </P>
            <P class=style1 align=center><IMG height=484 
            src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/hanzi02.gif" 
            width=550></P>
            <P 
            class=style1>  为方便读者,将已经在实际应用中中通过的汇编子程序列出如下(关于LCD控制器T6963的用户法请见参考文献1)。 
            </P>
            <P class=style1>LCDCOM EQU 7FF9H </P>
            <P class=style1>LCDDAT EQU 7FF8H </P>
            <P class=style1>;显示1行汉字子程序 </P>
            <P class=style1>;汉字语句位置编号DPTR;行号:R6 PRHZ:MOV 24H,DPH </P>
            <P class=style1>MOV 25H,DPL </P>
            <P class=style1>PUSH DPH </P>
            <P class=style1>PUSH DPL </P>
            <P class=style1>MOV A,DPH ;计算页号 </P>
            <P class=style1>RR A </P>
            <P class=style1>RR A </P>
            <P class=style1>ADD A,#9;从第9区开始存放每行字符的机内码 </P>
            <P class=style1>ORL A,#0F0H </P>
            <P class=style1>MOV P1,A </P>
            <P class=style1>LCALL RL245 ;行号乘以32(每行32个字符) </P>
            <P class=style1>SETB 24H,7 ;数据地址位于8000H~0FFFFH </P>
            <P class=style1>MOV DPH,24H </P>
            <P class=style1>MOV DPL,25H </P>
            <P class=style1>MOV R0,#0E0H </P>
            <P class=style1>MOV R7,#30 ;连续取出30个字符至0E0H内部数据存储器 </P>
            <P class=style1>PRHZ3:MOVX A,@DPTR </P>
            <P class=style1>MOV @R0,A </P>
            <P class=style1>INC R0 </P>
            <P class=style1>INC DPTR </P>
            <P class=style1>DJNZ R7,PRHZ3 </P>
            <P class=style1>MOV 1DH,#30 ;显示0E0H后的一行字符(共30个) </P>
            <P class=style1>MOV R5,#0 ;当前列R5 </P>
            <P class=style1>MOV R0,#0E0H </P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -