问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用单片机来控制LCD显示

发布网友 发布时间:2022-04-19 19:36

我来回答

2个回答

热心网友 时间:2023-07-08 17:15

你不会说的是电脑用的彩色液晶显示器吧...:)
我这儿有个,320*240的lcd单片机控制程序....

热心网友 时间:2023-07-08 17:16

;………………………………………………
;16*16显示一个汉字,向左移动
;只能显示8个汉字,受8位控制
;………………………………………………
;资源分析
;………………………………………………
;R0指向数据缓存地址,R1显示地址指针,R2数据增加指向指针,R3显示扫描次数
;R4、R5延时程序,R6扫描延时,50H作片选字,51H右片选字
;52H、53H、54H、55H、56H屏幕流动积存器,57H第二个字首地址
;30H~4FH显示缓存
;………………………………………………
;引脚定义
;………………………………………………
CLK BIT P2.0 ;74HC164清零,低电平清零
RCK BIT P2.1 ;74HC595移出脉冲,上升沿有效
SRCLR BIT P2.2 ;74HC595清零,低电平清零
G BIT P2.3 ;74HC595使能输出,低电平输出
;………………………………………………
;定义变量
;………………………………………………
D_LIST EQU (8) ;单个数据显示时间延时,即向右流动速度
;………………………………………………
;显存初始化
;………………………………………………
CHULI: MOV R6,#D_LIST ;单个数据显示时间延时
MOV R2,#0 ;定义编码数据指针,从0开始
MOV R0,#30H ;首显存地址送R0,定义显存地址指针
LOOP3: MOV A,R2 ;编码数据指针送A
MOV DPTR,#TAB ;表首地址送DPTR
MOVC A,@A+DPTR ;查表取显示编码
MOV @R0,A ;显示编码送现显存
INC R2 ;编码数据指针+1
INC R0 ;指向下一地址
CJNE R2,#32,LOOP3 ;判断是否完成一次数据刷新
LOOP6: ACALL START ;调用显示程序作延时
DJNZ R6,LOOP6 ;判断是否完成延时
MOV R6,#D_LIST ;恢复延时时间
;………………………………………………
;显示流动
;………………………………………………
MOV 57H,#32 ;第二个字的编码首地址
LOOP1: MOV R2,#15 ;定义数据移动指针
MOV R0,#30H ;显存首地址送R0
LOOP5: MOV 52H,R0 ;地址指针缓存
INC R0 ;地址指针加1,指向下一地址
MOV 53H,R0 ;地址指针缓存
INC R0 ;指向下一地址
MOV 55H,R0 ;地址指针缓存
MOV 54H,@R0 ;取指针地址里的数据存54H
MOV R0,52H ;取回地址指针
MOV @R0,54H ;刷新地址指针指向地址的数据
MOV R0,55H ;取回地址指针
INC R0 ;地址指针+1,指向下一地址
MOV 56H,@R0 ;取指针地址里的数据存56H
MOV R0,53H ;取回地址指针
MOV @R0,56H ;刷新地址指针指向地址的数据
MOV R0,55H ;地址指针缓存
DJNZ R2,LOOP5 ;完成15次刷新地址
MOV DPTR,#TAB ;表首地址送DPTR
MOV A,57H ;取回地址指针给A
MOVC A,@A+DPTR ;查表取数
MOV R0,#4EH ;送最后一列上地址指针
MOV @R0,A ;A送给最后一列上地址
INC 57H ;编码数据地址加1
MOV A,57H ;取回地址指针给A
MOVC A,@A+DPTR ;查表取数
MOV R0,#4FH ;送最后一列下地址指针
MOV @R0,A ;A送给最后一列下地址
INC 57H ;指向下一地址
LOOP4: ACALL START ;调用显示程序作延时
DJNZ R6,LOOP4 ;判断是否完成延时
MOV R6,#D_LIST ;恢复延时时间
SJMP LOOP1 ;返回LOP1,继续刷新地址里的数据,使显示右移
;………………………………………………
;显示子程序
;………………………………………………
START: CLR CLK ;74HC164清零
SETB CLK
CLR SRCLR ;74HC595清零
SETB SRCLR
LOOP2: MOV R3,#16 ;扫描次数送R3
MOV R1,#30H ;显存首地址送R1
CLR C ;C置1
MOV 50H,#0FFH ;左片选字
MOV 51H,#0FFH ;右片选字
;………………………………………………
LOOP: CLR RCK ;74HC595移出脉冲准备
SETB G ;置高74HC595使能端,使输出呈高阻

MOV A,@R1 ;取显存首地址里的是数
MOV SCON,#00H ;选串口以方式0工作
MOV SBUF,A ;把A从串口发送
JNB TI,$ ;等待发送完一帧
CLR TI ;清标志位
INC R1 ;地址指针加1

MOV A,@R1 ;取显存R0所指向地址里的是数
; MOV SCON,#00H ;选串口以方式0工作
MOV SBUF,A ;把A从串口发送
JNB TI,$ ;等待发送完一帧
CLR TI ;清标志位
INC R1 ;地址指针加1

MOV A,50H ;左片选字送A
RRC A ;带进位位右移,选中第一列,低电平有效
; MOV SCON,#00H ;选串口以方式0工作
MOV SBUF,A ;把A从串口发送
JNB TI,$ ;等待发送完一帧
CLR TI ;清标志位
MOV 50H,A ;左片选字送回寄存器

MOV A,51H ;右片选字送A
RRC A ;带进位位右移,选中第九列,低电平有效
; MOV SCON,#00H ;选串口以方式0工作
MOV SBUF,A ;把A从串口发送
JNB TI,$ ;等待发送完一帧
CLR TI ;清标志位
MOV 51H,A ;右片选字送回寄存器

SETB RCK ;74HC595移出脉冲呈上升沿,数据移出
CLR G ;使能输出

ACALL DELAY ;调延时子程序,是显示定格1ms
DJNZ R3,LOOP
RET
;………………………………………………
;1ms延时子程序
;………………………………………………
DELAY : MOV R4,#1 ;延时毫秒数送R4
D2: MOV R5,#250 ;1ms延时值
D1: NOP
NOP
DJNZ R5,D1 ;1ms延时循环
DJNZ R4,D2 ;毫秒数减1,不等于0则继续循环,等于结束
RET
;………………………………………………
;显示编码数据
;………………………………………………
TAB: DB 01H,00H,01H,00H,01H,00H,01H,00H,0FFH,0FFH,05H,02H,05H,84H,09H,48H;
DB 09H,20H,11H,10H,21H,08H,41H,0CH,01H,06H,01H,04H,01H,00H,00H,00H;"长",0

DB 08H,20H,08H,30H,0FFH,0E0H,08H,42H,08H,4CH,1FH,0F0H,12H,10H,12H,1AH;
DB 13H,0F2H,10H,04H,0FFH,0C8H,10H,30H,50H,0CCH,37H,02H,12H,1CH,00H,00H;"城",1

DB 00H,00H,00H,00H,1FH,0F0H,12H,20H,12H,20H,12H,20H,12H,20H,0FFH,0FCH;
DB 12H,22H,12H,22H,12H,22H,12H,22H,1FH,0F2H,00H,02H,00H,0EH,00H,00H;"电",2

DB 10H,40H,11H,80H,16H,00H,0FFH,0FFH,14H,00H,02H,04H,13H,0C8H,92H,50H;
DB 72H,60H,1FH,0FFH,32H,40H,52H,40H,92H,48H,1EH,44H,00H,78H,00H,00H;"梯",3

DB 00H,40H,20H,80H,21H,00H,22H,00H,27H,0FFH,2CH,90H,34H,90H,0E4H,90H;
DB 24H,94H,24H,92H,24H,93H,27H,0FEH,20H,00H,20H,00H,20H,00H,00H,00H;"有",4

DB 7FH,0FFH,40H,00H,4CH,40H,72H,20H,41H,0C0H,00H,00H,7FH,0FFH,52H,02H;
DB 53H,04H,52H,0C0H,52H,30H,52H,48H,7EH,84H,00H,06H,00H,04H,00H,00H;"限",5

DB 00H,00H,00H,80H,01H,04H,02H,0EH,0CH,14H,70H,24H,21H,0C4H,00H,8CH;
DB 00H,08H,70H,08H,08H,28H,06H,1EH,03H,0CH,01H,80H,01H,00H,00H,00H;"公",6

DB 00H,00H,08H,00H,49H,0F8H,49H,20H,49H,20H,49H,20H,49H,20H,49H,20H;
DB 49H,20H,49H,0F0H,48H,00H,40H,04H,40H,02H,7FH,0FCH,00H,00H,00H,00H;"司",7
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 如何用单片机控制液晶显示器呀,怎么接线…… 单片机控制LCD显示器的一个小问题 单片机用oled和lcd显示有什么区别 单片机用oled和lcd显示有什么不同 led,lcd显示原理及单片机连接设计 单片机控制LCD显示问题 单片机LCD显示问题 怎么才能把单片机里的数据在LCD上显示 单片机直接驱动LCD液晶屏 关于单片机的LCD显示问题 怎么用单片机让LCD显示呢? 单片机lcd显示原理 哪些贷款会上征信呢? 所有的贷款都上征信吗 关于征信上贷款记录需要多长时间才会被消除 征信上的哪些记录会影响贷款 征信报告里面的贷款? 小米9是留海屏还是门牙屏还是水滴屏? 我要找对手机号码的位置 全国手机号码段 关于单片机用液晶屏显示数字的问题 单片机汇编语言 LCD液晶屏显示开关状态 单片机如何驱动LCD显示字符 单片机 LCD 单片机lcd显示函数 最简单c51单片机液晶显示程序 cad连续复制怎么弄? cad中如何重复复制 在CAD中怎样连续复制 CAD怎么不可以连续复制,本来可以的 CAD文件怎么快速多次复制图形并均匀排列 如何在CAD中连续复制同一图形对象 CAD中连续复制问题 CAD文件中的图像怎么连续复制? CAD怎么进行连续复制 CAD中的多次复制快捷键是什么,co是复制但只能一次... cad连续复制多个快捷键 cad中如何连续复制并绕一点旋转一个图形 CAD中如何一次copy多次粘贴 cad天正多次复制?如何将一个圆按100间距复制10次...