高分求教,汇编熟悉的请进

dbjtmax 2003-12-02 09:51:01
****哪位兄弟能模仿以下程序写一段?或者是给点指点啊****

点阵式 LCD的汉字显示程序如下 :
main call lcdopen ;调用打开LCD子程序
call lcdclear ;调用清屏子程序
bsf rc,1 ;选择右半边屏
movlw obah
movwf page_origin ;将起始页面送入子程序入口page_origin
movlw 6ch
movwf y_ origin ;将显示起始列送入子程序入口y_origin
movlw 13h ;将需要显示的汉字代码送入入口W
call tolcdword ;调用显示子程序
bcf rc,1 ;取消选择右半屏

tolcdword ;显示汉字子程序
call getwordtable ;调用取汉字点阵的起始地址,净起始地址取出后放入
;调用汉字点阵数据的子程序getworddata入口
movfw y_ oring
movwf addr ;取显示起始列,送入lcdcomm子程序入口
call lcdcomm ;调用向LCD发送指令数据子程序
movfw page origin
movwf addr ;取起始页面,送入LCDCOMM子程序入口
call lcdcomm ;调用向LCD发送指令数据子程序
movlw ofh
movwf lcdword_ count;显示汉字的宽度为16
tolcdword_ 01 call getwordata ;获取液晶显示屏显示数据
call lcddata ;调用向LCD发送数据子程序
decfsz lcdword_ count ;显示完上半个汉字否,是则跳出
goto tolcdword_ 01
incf page_ origin,0
movwf addr
call lcdcomm ;页面加1,送入LCD中
movfw y_ origin
movwf addr
call lcdcom ;重新送入显示起始行
movlw ofh
movwf lcdword_ count ;显示汉字的宽度为16
tolcdword_ 02 call getworddata ;以下为显示下半个汉字,与显示上半个汉字方法相同
call lcddata
decfxz lcdwrod_ count
goto tolcdword_ 02
retlw 0
getwordtable 子程序(略)
getwordata 子程序(略)1
lcdloaddata 子程序(略) 读LCD状态或DRAM中的数据
lcdcomm 子程序(略)
lcddata 子程序(略)
lcdopen 子程序(略)
lcdclear 子程序(略)

在上面的程序中 ,GETWORDTABLE子程序用来完成汉字的代码向汉字点阵的地址转化 ,由于在程序中通常不会只显示一或两个汉字 ,所以为了编程方便 ,给汉字设定一定的代码 ,再由代码找点阵位置会大大减小程序量和增强程序的可读性。该段子程序由具体的应用所决定 ,故本文略去此段程序。
LCDLOADDATA、LCDCOMM、LCDDATA、LCDOPEN为 LCD与 PIC16C65之间的通讯 ,一般 LCD的用户手册上都有用 MCS-51汇编语言写的例程序 [5] ,将其译成 PIC的程序即可。 LCDCLEAR为清屏程序 ,即将 DRAM全部写 0。 GETWORDDATA子程序为从程序存储器中取出点阵数据 ,其实就是一段查表程序 ,选用一些成熟例程序 ,注意一下页面调用问题即可[6] 。
汉字点阵的获取可通过 UCDOS的点阵字库来获取 ,但需要由一定的工具来进行 ,而这样的工具通常没有现成的 ,有些文献上介绍了使用 C语言程序来完成此功能 ,比较麻烦。如果只需少量汉字点阵字库的情况下 ,则可利用 WINDOWS自身所带的画笔软件来实现。在画笔中可以输入汉字 ,而屏幕上显示出的汉字实际上是由点阵组成 ,输入汉字时选定字符大小为宋体 14,显示出的汉字即为 16* 16的点阵 ,此时只需将该汉字的点阵从显示屏上读出即可。当然直接读屏并不方便 ,为此可用放大功能将屏幕放大至 8倍 ,再将画笔的显示网格功能打开 (功能键为 CTRL+G),这样读点阵数据就很方便了。使用此方法 ,做获取少量汉字点阵字库工作时就能大大降低工作量了 ,并且还可获得自己所需特殊效果的汉字点阵。
本文作为点阵式 LCD的应用实例 ,介绍了显示汉字的设计思想 ,并给出了 PIC16C65单片机程序 ,此方法用在我们设计的通讯测量仪器选频表—— TX-11中。实践证明 :该方法使用方便 ,有效地节约了程序量和运行时间 ,并且其原理和思路完全可用于其他型号的点阵式 LCD的场合。
...全文
186 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbjtmax 2003-12-17
  • 打赏
  • 举报
回复
整个程序啊
fancy0001 2003-12-04
  • 打赏
  • 举报
回复
是哪个子函数还是整个程序??

100分……………………

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧