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

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

📁 单片机系统中的汉字显示    摘要: 需要显示的汉字较多时
💻 HTM
📖 第 1 页 / 共 3 页
字号:
            <P class=style1>MOV A,#7FH ;是否为ASCII码? </P>
            <P class=style1>CLR C </P>
            <P class=style1>SUBB A,@R0 </P>
            <P class=style1>JC DPHZ1 </P>
            <P class=style1>MOV 26H,@R0 </P>
            <P class=style1>INC R0 </P>
            <P class=style1>MOV 24H,R6 ;ASCII码显示 </P>
            <P class=style1>MOV 25H,R5 </P>
            <P class=style1>LCALL PRASCII </P>
            <P class=style1>SJMP PRHZ4 </P>
            <P class=style1>DPHZ1:MOV 24H,@R0 ;是汉字则将机内码送24H25H </P>
            <P class=style1>INC R0 </P>
            <P class=style1>MOV 25H,@R0 </P>
            <P class=style1>INC R0 </P>
            <P class=style1>MOV A,25H </P>
            <P class=style1>CLR C </P>
            <P class=style1>SUBB A,#0A1H ;机内码转换为二进制的区码和位码 </P>
            <P class=style1>MOV 25H,A </P>
            <P class=style1>MOV A,24H </P>
            <P class=style1>CLR C </P>
            <P class=style1>SUBB A,#0A1H </P>
            <P class=style1>LCALLDPONHZ ;显示1个汉字 </P>
            <P class=style1>DEC 1DH </P>
            <P class=style1>INC R5 </P>
            <P class=style1>PRHZ4:INC R5 </P>
            <P class=style1>DJNZ 1DH,PRHZ5 </P>
            <P class=style1>POP DPL </P>
            <P class=style1>POP DPH </P>
            <P class=style1>RET </P>
            <P class=style1>PR0:MOV DPTR,#LCDCOM ;读状态 </P>
            <P class=style1>MOVX A,@DPTR </P>
            <P class=style1>RET </P>
            <P class=style1>PR01:LCALLPR0 ;读、写一数据前 </P>
            <P class=style1>JNB ACC.0,PR01 </P>
            <P class=style1>JNB ACC.1,PR01 </P>
            <P class=style1>RET </P>
            <P class=style1>PR02:LCALL PR0 ;连续读前 </P>
            <P class=style1>JNB ACC.2,PR02 </P>
            <P class=style1>RET </P>
            <P class=style1>PR03:LCALL PR0 ;连续写前 </P>
            <P class=style1>JNB ACC.3,PR02 </P>
            <P class=style1>RET </P>
            <P class=style1>PR1:LCALL PR01 ;双字节参数R2,R3 </P>
            <P class=style1>MOV A,R2 </P>
            <P class=style1>LCALL PR14 </P>
            <P class=style1>PR11:LCALL PR01 ;单字节参数R3 </P>
            <P class=style1>MOV A,R3 </P>
            <P class=style1>LCALL PR14 </P>
            <P class=style1>PR12:LCALL PR01 ;无参数指令R4 </P>
            <P class=style1>MOV A,R4 </P>
            <P class=style1>SJMP PR15 </P>
            <P class=style1>PR14:MOV DPTR,#LCDDAT </P>
            <P class=style1>PR15:MOVX @DPTR,A </P>
            <P class=style1>RET </P>
            <P class=style1>RL245:MOV R7,#5 ;24H25H左移5 </P>
            <P class=style1>RLL1:CLR C </P>
            <P class=style1>MOV A,25H </P>
            <P class=style1>RLC A </P>
            <P class=style1>MOV 25H,A </P>
            <P class=style1>MOV A,24H </P>
            <P class=style1>RLC A </P>
            <P class=style1>MOV 24H,A </P>
            <P class=style1>DJNZ R7,RLL1 </P>
            <P class=style1>RET </P>
            <P class=style1>;行位置R6(0~7),列位置R5(0~29),汉字区别24H,位码25H </P>
            <P class=style1>DPONHZ:MOV A,24H ;显示1个汉字 </P>
            <P class=style1>MOV B,#94 ;每区94个汉字 </P>
            <P class=style1>MUL AB </P>
            <P class=style1>ADD A,25H </P>
            <P class=style1>MOV 25H,A </P>
            <P class=style1>CLR A </P>
            <P class=style1>ADDC A,B </P>
            <P class=style1>MOV 24H,A </P>
            <P class=style1>RR A ;获得32KB为1页的页号 </P>
            <P class=style1>RR A </P>
            <P class=style1>ORL A,#0F0H </P>
            <P class=style1>MOV P1,A ;页号送P1口 </P>
            <P class=style1>LCALL RL245 ;汉字序号乘以32 </P>
            <P class=style1>SETB 24H,7 ;因为存储器位于单片机系统的7FFFH~0FFFFH </P>
            <P class=style1>MOV DPH,24H </P>
            <P class=style1>MOV DPL,25H </P>
            <P class=style1>MOV R2,#32 ;在该位置连续取出32个字节 </P>
            <P class=style1>MOV R1,#0C0H </P>
            <P class=style1>DPHZ2:MOVX A,@DPTR </P>
            <P class=style1>INC DPTR </P>
            <P class=style1>MOV @R1,A </P>
            <P class=style1>INC R1 </P>
            <P class=style1>DJNZ R2,DPHZ2 </P>
            <P class=style1>MOV R1,#0C0H </P>
            <P class=style1>MOV A,R6 ;根据行列位置计算LCD指针 </P>
            <P class=style1>MOV B,#16 </P>
            <P class=style1>MUL AB </P>
            <P class=style1>MUL B,#30 </P>
            <P class=style1>MUL AB </P>
            <P class=style1>ADD A,R5 </P>
            <P class=style1>MOV 25H,A </P>
            <P class=style1>MOV R2,A </P>
            <P class=style1>CLR A </P>
            <P class=style1>ADDC A,B </P>
            <P class=style1>MOV 24H,A </P>
            <P class=style1>MOV R3,A </P>
            <P class=style1>MOV 26H,#16 ;将取出的点阵送LCD显示 </P>
            <P class=style1>PRHZ6:MOV R4,#24H </P>
            <P class=style1>LCALL PR1 ;双字节参数R2,R3 </P>
            <P class=style1>MOV A,@R1 </P>
            <P class=style1>MOV R3,A </P>
            <P class=style1>INC R1 </P>
            <P class=style1>MOV R4,#0C0H </P>
            <P class=style1>LCALL PR11 ;单字节参数R3 </P>
            <P class=style1>MOV A,@R1 </P>
            <P class=style1>MOV R3,A </P>
            <P class=style1>INC R1 </P>
            <P class=style1>MOV R4,#0C0H </P>
            <P class=style1>LCALL PR11 </P>
            <P class=style1>MOV A,#30 </P>
            <P class=style1>ADD A,25H </P>
            <P class=style1>MOV R2,A </P>
            <P class=style1>CLR A </P>
            <P class=style1>ADDC A,24H </P>
            <P class=style1>MOV R3,A </P>
            <P class=style1>MOV 24H,A </P>
            <P class=style1>DJNZ 26H,PRHZ6 </P>
            <P class=style1>RET </P>
            <P class=style1>  注:由于以上程序直接引自下面的应用实例,调用以上程序时请让寄存器组位于第2区,即R0对应10H。 
            </P>
            <P class=style1><STRONG>三、应用实例 </STRONG></P>
            <P 
            class=style1>  我们应用本文介绍的方法成功地进行了某医疗仪器的设计。该设计要求具有完整的中、英文字符提示和汉字处方显示,并尽可能地为今后的功能扩展和处方修改留有余地。目前仪器中用到的汉字约1200个,语句行为1300行左右,而且用户认为利用工控PC机设计成本过高,要求尽可能地降低成本。显然,对于该系统利用传统的汉字处理方式进行设计虽然能节省一定的存储空间,但庞大的汉字和语句重新编码工作却让人望而生畏,而且当处方修改须要用到新的汉字时相当麻烦。我们利用8031单片机系统和本文介绍的方法进行设计,整个硬件电路和底层程序设计只用了1周的时间,大大地缩短了开周期。而且由于本系统可调用所有的ASCII码和全部汉字库,所以对于功能的扩展和处方的修改十分方便。 
            </P>
            <P class=style1> </P></TD></TR></TBODY></TABLE><!-- InstanceEndEditable --></TD></TR>
  <TR>
    <TD colSpan=2>
      <TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
        <TBODY>
        <TR>
          <TD width=219 
          background=中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/donw_bg01.jpg>&nbsp;</TD>
          <TD width=7><IMG height=24 
            src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/down_bitl.jpg" 
            width=7></TD>
          <TD width=292 
          background=中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/down_bg02.jpg>
            <DIV class="style1 style2" align=center>设为首页 | 加入收藏 | <A 
            href="http://www.tengdamc.com/wangzhantj/wangzhantj.htm" 
            target=_blank>推荐网站</A> | <A 
            href="http://www.tengdamc.com/map/map.htm" 
            target=_blank>网站地图</A></DIV></TD>
          <TD width=7><IMG height=24 
            src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/down_bitr.jpg" 
            width=7></TD>
          <TD width=214 
          background=中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/donw_bg01.jpg>&nbsp;</TD></TR>
        <TR bgColor=#e7e3e7>
          <TD colSpan=5>
            <DIV align=center><SPAN class=style14><SPAN 
            class=style1>中国腾达测控科技有限公司<BR>地址:南京市建邺区南湖小区15号<BR>电话:025-51745585 
            企业邮箱:</SPAN><SPAN class=style23> <A 
            href="mailto:tengdamc@163.com">tengdamc@163.com</A>
            <SCRIPT 
            src="中国腾达测控科技有限公司-学习下载-单片机开发应用文章-单片机系统中的汉字显示.files/mystat.htm"></SCRIPT>
             </SPAN></SPAN></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- InstanceEnd --></BODY></HTML>

⌨️ 快捷键说明

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