实验八 单片机液晶显示实验Word格式.docx
- 文档编号:17221090
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:13
- 大小:18.91KB
实验八 单片机液晶显示实验Word格式.docx
《实验八 单片机液晶显示实验Word格式.docx》由会员分享,可在线阅读,更多相关《实验八 单片机液晶显示实验Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
写显示数进地址(E2)
CRADD2EQU08006H;
读状态字地址(E2)
DRADD2EQU08007H;
读显示数据地址(E2)
PD1EQU3DH;
122/2分成左右两半屏122x32
COLUMNEQU30H
PAGE_EQU31H;
页地址寄存器D1,DO:
页地址
CODE_EQU32H;
字符代码寄存器
COUNTEQU33H;
计数器
DIRequ34h
dtp1equ35h
dtp2equ36h
dtp3equ37h
CTEMPEQU38H
COMEQU20H;
指令寄存器
DATEQU21H;
数据寄存器
ORG0
jmpmain
movdptr,#0f002h
mova,#56h
movx@dptr,a
mova,#0
movxa,@dptr
JMPMAIN
;
---------------------------------------
初始化程序
INIT:
MOVCOM,#0E2H;
复位
LCALLPRO
LCALLPR3
MOVCOM,#0A4H;
关闭休闭状态
MOVCOM,#0A9H;
设置1/32占空比
MOVCOM,#0A0H;
正向排序设置
MOVCOM,#0C0H;
设置显示起始行为第一行
MOVCOM,#0AFH;
开显示设置
RET
------------------------------------------------
清屏
CLEAR:
MOVR4,#00H;
页面地址暂存器设置
CLEAR1:
MOVA,R4;
取页地址值
ORLA,#0B8H;
"
或"
页面地址设置代码
MOVCOM,A;
页面地址设置
MOVCOM,#00H;
列地址设置为"
0"
MOVR3,#50H;
一页清80个字节
CLEAR2:
MOVDAT,#00H;
显示数据为"
LCALLPR1
LCALLPR4
DJNZR3,CLEAR2;
页内字节清零循环
INCR4;
页地址暂存器加一
CJNER4,#04H,CLEAR1;
RAM区清零循环
-----------------------------------
1.写指令代码子程序(E1)
PRO:
PUSHDPL
PUSHDPH
MOVDPTR,#CRADD1;
设置读状态字地址
PR01:
MOVXA,@DPTR;
读状态字
JBACC.7,PR01;
判"
忙"
标志为句"
否再读
MOVDPTR,#CWADD1;
设置写指令代码地址
MOVA,COM;
取指令代码
MOVX@DPTR,A;
写指令代码
POPDPH
POPDPL
------------------------------------
2.写显示数据子程序(E1)
PR1:
PR11:
读状态宇
JBACC.7,PR11;
标志为"
MOVDPTR,#DWADD1;
设置写显示数据地址
MOVA,DAT;
取数据
写数据
-------------------------------------
3.读显示数据子程序(E1)
PR2:
PR21:
JBACC.7,PR21;
否,否再读
MOVDPTR,#DRADD1;
设置读显示数据地址
读数据
MOVDAT,A;
存数据
4.写指令代码子程序(E2)
PR3:
MOVDPTR,#CRADD2;
PR31:
JBACC.7,PR31;
陈志为"
MOVDPTR,#CWADD2;
5.写显示数据子程序(E2)
PR4:
PR41:
JBACC.7,PR41;
MOVDPTR,#DWADD2;
MOVA,DAT;
6.读显示数据子程序(E2)
PR5:
PR51:
JBACC.7,PR51;
MOVDPTR,#DRADD2;
中文显示子程序
CCW_PR:
MOVDPTR,#CCTAB;
确定字符字模块首地址
MOVA,CODE_;
取代码
MOVB,#20H;
字模块宽度为32个字节
MULAB;
代码×
32
ADDA,DPL;
字符字模块首地址
MOVDPL,A;
字模库首地址+代码×
MOVA,B
ADDCA,DPH
MOVDPH,A
PUSHCOLUMN;
列地址入栈
MOVCODE_,#00H;
代码寄存器借用为间址寄存器
CCW_1:
MOVCOUNT,#10H;
计数器设置为16
MOVA,PAGE_;
读页地址寄存器
ANLA,#03H;
取页地址有效值
ORLA,#0B8H;
页地址设置代码
设置页地址
LCALLPRo
POPCOLUMN;
取列地址值
MOVA,COLUMN;
读列地址寄存器
CLRC
SUBBA,#PD1;
列地址-模块参数
JCCCW_2;
<0为左半屏显示区域(E1)
MOVCOLUMN,A;
≥0为右半屏显示区域(E2)
MOVA,PAGE_
SETBACC.3;
设置区域标志位。
MOVPAGE_,A;
为E1,"
1"
为E2
CCW_2:
MOVCOM,COLUMN;
设置列地址值
判区域标志以确定设置哪个控制器
JNBACC.3,CCW_3
LCALLPR3;
区域E2
LJMPCCW_4
CCW_3:
LCALLPRO;
区域E1
CCW_4:
MOVA,CODE_;
取间址寄存器值
MOVCA,@A+DPTR;
取汉字字模数据
MOVDAT,A;
JNBACC.3,CCW_5
LCALLPR4;
LJMPCCW_6
CCW_5:
LCALLPR1;
CCW_6:
INCCODE_;
间址寄存器加一
INCCOLUMN;
列地址寄存器加一
判列地址是否超出区域范围、
CJNEA,#PD1,CCW_7
CCW_7:
JCCCW_8;
未超出则继续
超出则判是否在区域E2
JBACC.3,CCW_8;
在区域E2则退出
在区域E1则修改成区域E2
MOVPAGE_,A
设置区域E2列地址为"
CCW_8:
DJNZCOUNT,CCW_4;
当页循环
JBACC.7,CCW_9;
判完成标志D7位,"
则完成退出
INCA;
否则页地址加一
SETBACC.7;
置完成位为"
CLRACC.3
MOVCODE_,#10H;
间址寄存器设置为16
LJMPCCW_1;
大循环
CCW_9:
--------------------------------------
中文字符库
CCTAB:
DB0,0,31,17,145,209,191,145,145,159,145,145,145,31,0,0,“罗”
DB0,32,33,33,32,17,18,20,8,8,4,2,1,0,0,0
DB0C0H70H0FCH0FFH03H60H6CH6CH
DB0,32,170,170,255,170,170,128,170,170,255,170,170,34,0,0,“慧”
DB0,32,24,10,26,42,42,58,42,42,58,10,31,32,0,0
DB0,0,255,137,137,137,137,137,249,137,137,137,143,128,0,0,“民”
DB0,0,63,16,8,0,0,0,0,3,4,8,16,60,0,0
DB0,224,16,8,8,16,224,0,0,112,136,136,136,136,112,0,“08”
DB0,7,8,16,16,8,7,0,0,14,17,16,16,17,14,0
DB0,48,8,8,8,136,112,0,0,48,8,8,8,136,112,0,“22”
DB0,24,20,18,17,16,24,0,0,24,20,18,17,16,24,0
DB0,16,16,248,0,0,0,0,0,16,16,248,0,0,0,0,“11”
DB0,16,16,31,16,16,0,0,0,16,16,31,16,16,0,0
------------------------------------.
中文演示显示程序段
MAIN:
LCALLINIT
LCALLCLEAR
MOVCTEMP,#0
MOVDIR,#0
AAA:
MOVPAGE_,#02H
MOVCOLUMN,CTEMP
MOVCODE_,#00H
LCALLCCW_PR
MOVA,CTEMP
ADDA,#10H
MOVCOLUMN,A
MOVCODE_,#01H
ADDA,#20H
MOVCODE_,#02H
MOVPAGE_,#02H
ADDA,#30H;
顺次向后显示,30H表示显示在第四个位置
MOVCODE_,#03H;
取对应的字模03H代表中文字库表中的第四组数据在此对应"
8"
ADDA,#40H
MOVCODE_,#04H
ADDA,#50H
LJMPS_DOWN;
选用此句可实现文字循环向下滚动显示
;
LJMPS_UP;
选用此句可实现文字循环向上滚动显示
LJMPLEFT;
选用此句可实现文字循环向左滚动显示
SJMP$;
选用此句文字呈现静态显示
LCALLDELAY;
若删去上述跳转直接执行以下程序可实现文字循环向右滚动显示
LCALLDELAY
MOVA,DIR
CJNEA,#0,LEFT
INCCTEMP
CJNEA,#58,AAA
MOVDIR,#1
LJMPAAA
LEFT:
DECCTEMP
CJNEA,#0,AAA
LCALLS_LEFT
LCALLS_UP
SJMP$
示例五滚动演示程序段
定时间隔地有规律地修改显示起始行地址,将产生显示画面平滑向上或向下滚动的效
果。
示例程序如下:
S_UP:
MOVR7,#00H;
向上改动程序
S_UPI:
MOVA,#0C0H;
显示起始行设置代码
ORLA,R7
MOVCOM,A
调延时子程序
INCR7
CJNER7,#20H,S_UPI
LJMPS_UP
S_DOWN:
MOVR7,#1FH;
向下滚动程序
MOVCOM,#0C0H;
S_DOWN1:
DJNZR7,S_DOWN1
LJMPS_DOWN
----------------------------------
DELAY:
MOVR6,#060H;
延时子程序
MOVR5,#00H
DELAY1:
NOP
DJNZR5,DELAY1
DJNZR6,DELAY1
仿真结果说明:
程序执行后液晶屏幕第一行显示“罗慧民082211”字样,依照程序选择的显示方式的不同,液晶屏幕上会出现不同的效果,如上所述,若选用LJMPS_DOWN则屏幕上出现向下滚动出现的“罗慧民082211”字样,选择其他则相应出现不一样的显示效果。
本程序基本实现了思考题1和2的要求。
仅供个人用于学习、研究;
不得用于商业用途。
notforcommercialuse.
Nurfü
rdenpersö
nlichenfü
rStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'
é
tudeetlarechercheuniquementà
desfinspersonnelles;
pasà
desfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验八 单片机液晶显示实验 实验 单片机 液晶显示