TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx

上传人:b****6 文档编号:20081257 上传时间:2023-01-16 格式:DOCX 页数:23 大小:21.44KB
下载 相关 举报
TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx_第1页
第1页 / 共23页
TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx_第2页
第2页 / 共23页
TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx_第3页
第3页 / 共23页
TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx_第4页
第4页 / 共23页
TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx

《TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx》由会员分享,可在线阅读,更多相关《TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx(23页珍藏版)》请在冰豆网上搜索。

TMS320LF2407与图形液晶显示模块接口及应用Word格式.docx

CALLLCDINIT

LARAR1,#SHIJIAN;

送显示时间

MAR*,AR1

LACL#01H

SACL*+

LACL#1115H

LACL#22H

LACL#4155H

SACL*

CALLLCDP0;

显示一屏信息

WAIT:

NOP

NOP

BWAIT

系统初始化程序

SYSINIT:

SETCINTM

CLRCSXM

CLRCOVM

CLRCCNF;

B0被配置为数据存储空间

LDP#0E0H

SPLK#81FEH,SCSR1;

CLKIN=6M,CLKOUT=24M

SPLK#0E8H,WDCR;

DisableWDT

LDP#0

SPLK#0000H,IMR;

不使能中断

SPLK#0FFFFH,IFR;

清全部中断标志

RET

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LCD初始化及底层程序

描述:

LCD初始化程序

被修改的寄存器:

ACC,LCDCMD

调用到的子程序:

COMWE,CLEAR

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LCDINIT:

LDP#DP_PF2;

DP → 7080h~70FFh

LACLMCRA

AND#000FH;

配置IOPA[4~7],IOPB[0~7]为一般I/O口功能

SACLMCRA

LACLPADATDIR

OR#0F000H;

IOPA4~IOPA7为输出方式

AND#0FF0FH;

IOPA[4~7]=0

SACLPADATDIR

LDP#DP_USER

SPLK#0AEH,LCDCMD;

关显示10101110B

CALLCOMWE

SPLK#00E2H,LCDCMD;

复位11100010B

SPLK#0A4H,LCDCMD;

正常显示驱动10100101B

SPLK#0A9H,LCDCMD;

占空比为1/32,10101001B

SPLK#0A0H,LCDCMD;

ADC选择,正常输出10100000B

SPLK#0C0H,LCDCMD;

显示起始行

CALLCLEAR;

清屏

SPLK#0AFH,LCDCMD;

开显示10101111B

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

对E1和E2写控制命令子程序,此程序只用在LCD初始化程序中

ACC,LCD_FLAG

CWE

COMWE:

LACLLCD_FLAG

AND#0FFFEH;

LCD_FLAG.0=0选中E1

SACLLCD_FLAG

CALLCWE

LACLLCD_FLAG

OR#0001H;

LCD_FLAG.0=1选中E2

LDP#DP_USER

写控制命令子程序,向LCD写一个控制字

人口:

LCD_FLAG,LCDCMD

ACC

CWE:

LDP#DP_USER

BITLCD_FLAG,15;

判是E1还是E2?

LCD_FLAG.0=0,则选中E1

BCNDCWE1,TC;

TC=1则选中E2

LDP#DP_PF2

LACLPADATDIR

AND#E2_L;

AND#RW_L;

R/W=0

OR#E1_H;

E1=1

BCWE2

CWE1:

LDP#DP_PF2;

LCD_FLAG=01,则选中E2

AND#E1_L;

AND#RW_L;

OR#E2_H;

E2=1

CWE2:

LACLPADATDIR

AND#A0_L;

A0=0

LACLPBDATDIR

OR#0FF00H;

IOPB[0~7]设置为输出

AND#0FF00H;

IOPB[0~7]=0

ORLCDCMD;

IOPB[0~7]=LCDCMD

SACLPBDATDIR;

送列地址

LDP#DP_USER

写数据子程序,向LCD写一个数据

LCD_FLAG,LCDCMD,LCDDATA

ACC,AR7

DWE:

LDP#DP_USER

SARAR7,LCDCMD;

AR7存放列地址

BITLCD_FLAG,15;

判是E1或E2模块?

LDP#DP_PF2

BCNDDWE1,TC;

LCD_FLAG=0001h,则为E2模块

ANDE2_L;

BDWE2

DWE1:

LACLPADATDIR

DWE2:

OR#A0_H;

A0=1

IOPB[0~7]=0

ORLCDDATA;

IOPB[0~7]=LCDDATA

LDP#DP_PF2

送显示的数据

MAR*,AR7

ADRK#1;

向列地址增1,以便向下一列写数

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

清屏子程序,LCD清屏

ACC,AR0,AR6,AR7,LCD_FLAG,LCDCMD,LCDDATA

CWE,DWE

CLEAR:

LARAR6,#0B8H;

设置页地址代码指令10111000B

;

AR6存放的是页地址

SPLK#00H,LCDDATA;

将00写入

CLR1:

SARAR6,LCDCMD

AND#0FFFEH;

LCD_FLAG.0=0

CALLCWE;

设置页号

LACLLCD_FLAG

OR#0001H;

LCD_FLAG.0=1

LARAR7,#00H;

从00列开始清0,AR7存放的是列地址

LARAR0,#80;

比较值(可以61列)

CLR2:

AND#0FFEH;

SACLLCD_FLAG

CALLDWE;

向E1写入00

MAR*,AR7;

AR7兼作循环计数器

CMPR01;

(AR7<

AR0)?

BCNDCLR2,TC

从00列开始清0

CLR3:

OR#0001H;

CALLDWE;

向E2写入00

MAR*,AR7

CMPR01

BCNDCLR3,TC

LARAR0,#0BCH;

比较值(10111100B)

MAR*,AR6

ADRK#1;

将页号增1,以便向下一页写数

CMPR01;

(AR6)<

(AR0)?

BCNDCLR1,TC

描述:

汉字显示子程序,LCD显示汉字程序

人口:

LCD_FLAG,AR6--页号,AR7--列地址

LCD_FLAG的高8位--字号,LCD_FLAG的低8位为标志位

LCD_FLAG.0=0选中E1,LCD_FLAG.0=1选中E2

ACC,AR0,AR5,AR6,AR7,LCD_FLAG,LCDCMD,LCDDATA,LCDZKTAB

调用到的子程序:

LCDHZ:

LACLLCD_FLAG

LARAR0,#59

CMPR2;

(AR7)>

60?

BCNDHZ0,TC

AND#0FFFEH;

在E1块显示

BHZ00

HZ0:

OR#0001H;

在E2块显示

SBRK#59;

(AR7)—60

HZ00:

SACLLCD_FLAG;

根据AR7的值设置LCD_FLAG.0

AND0FF00H

RPT#7

SFR

SUB#1

SACLLCDZKTAB;

得字号

LTLCDZKTAB

MPY#10H

SPM#0H;

P寄存器无输出移位

PAC;

ACC=PREG

ADD#LCDHZK

SACLLCDZKTAB

LARAR0,#0H

MAR*,AR6

CMPR#2H;

AR6>

AR0则显示在B8位置

BCNDHZPSET0,TC

LARAR6,#0BAH

BHZPSET1

HZPSET0:

LARAR6,#0B8H

HZPSET1:

SARAR6,LCDCMD;

MAR*,AR6

ADRK#1;

页号加1,以准备显示汉字的下半部分

LARAR0,#9

LARAR5,#1;

计数器

HZ1:

LACCLCDZKTAB

TBLRLCDDATA;

表读

LACC#00FFH

ANDLCDDATA

SACLLCDDATA

CALLDWE

TBLRLCDDATA

ADD#1

SACLLCDZKTAB

LACC#0FF00H

RPT#7

MAR*,AR5

计数器加1

CMPR01;

比较,是否该汉字在本页显示完成

BCNDHZ1,TC

SARAR6,LCDCMD

设置汉字下半部分显示的页

SBRK#16

LARAR0,#17;

新比较值

CMPR01;

比较,是否该汉字显示完成

MAR*,AR7;

准备下一个汉字显示

BITLCD_FLAG,15

BCNDHZ2,NTC

ADRK#59;

E2块(AR7)+60

HZ2:

ADRK#16

LARAR0,#0BBH

CMPR00

BCNDHZ3,NTC

LARAR6,#0

BHZRET

HZ3:

LARAR6,#1

HZRET:

SPLK#00,LCD_FLAG

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

数字、字母显示子程序,LCD显示数字或字母程序

LCD_FLAG,AR6——页号,AR7——列地址

LCD_FLAG的高8位——字号,LCD_FLAG的低8位为标志位

LCDSZ:

LDP#DP_USER

AND#0FFFEH;

E1块

BCNDSZ0,TC

BSZ00

SZ0:

OR#0001H;

E2块

SZ00:

SACLLCD_FLAG;

AND#0FF00H

MPY#08H

SPM#0H

PAC

ADD#LCDSZK

LARAR0,#0

CMPR#2H

BCNDSZPSET0,TC

BSZPSET1

SZPSET0:

SZPSET1:

页号加1,以准备显示字符的下半部分

LARAR0,#5

SZ1:

比较,是否该数字在本页显示完成

BCNDSZ1,TC

SARAR6,LCDCMD

CALLCWE

MAR*,AR7

SBRK#8

LARAR0,#9;

比较,是否该数字显示完成

BCNDSZ1,TC

MAR*,AR7;

准备下一个字符显示

BCNDSZ2,NTC

ADRK#59;

SZ2:

ADRK#0AH

LARAR0,#0BBH

MAR*,AR6

CMPR00

BCNDSZ3,NTC

LARAR6,#0

BSZRET

SZ3:

LARAR6,#1

SZRET:

显示主屏程序

液晶显示液晶主屏程序,显示日期XX年XX月XX日,显示时间XX:

XX:

XX

为要显示内容寄存器

ACC,AR1,AR6,AR7,LCD_FLAG

CLEAR,LCDSZ,LCDHZ

LCDP0:

CALLCLEAR

LARAR6,#0;

页地址为00BAh

LARAR7,#2H;

列地址为0002h

(年,月日,时,分秒)

LACL*

AND#0F0H;

取“年”的十位数字

RPT#3

SFL;

左移4位得到字号

ORLCD_FLAG

SACLLCD_FLAG

CALLLCDSZ;

显示“年”的十位数字

LARAR7,#0CH

LACL*+

AND#0FH;

取“年”的个位数字

左移8位得到字号

显示“年”的个位数字

LARAR7,#18H

SPLK#01FFH,LCD_FLAG;

显示“年”这个字

CALLLCDHZ

LARAR7,#2AH

AND#

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1