📄 12864_paiallel.lss
字号:
* 功能描述 :
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void CheckBusy(void)
{
CLR_RS;
92a: 94 98 cbi 0x12, 4 ; 18
SET_RW;
92c: 95 9a sbi 0x12, 5 ; 18
SET_EN;
92e: 96 9a sbi 0x12, 6 ; 18
OUTDATA=0xFF;
930: 8f ef ldi r24, 0xFF ; 255
932: 88 bb out 0x18, r24 ; 24
DATA_IN;
934: 17 ba out 0x17, r1 ; 23
delay_us(1);
936: 81 e0 ldi r24, 0x01 ; 1
938: 90 e0 ldi r25, 0x00 ; 0
93a: 0e 94 80 04 call 0x900 <delay_us>
while((INDATA&0x80)==0x80);
93e: b7 99 sbic 0x16, 7 ; 22
940: fe cf rjmp .-4 ; 0x93e <CheckBusy+0x14>
DATA_OUT;
942: 8f ef ldi r24, 0xFF ; 255
944: 87 bb out 0x17, r24 ; 23
CLR_EN;
946: 96 98 cbi 0x12, 6 ; 18
948: 08 95 ret
0000094a <WriteCommand>:
}
/******************************************************************************************
* 函数名称 :WriteCommand
* 功能描述 :写命令
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void WriteCommand(unsigned char Cbyte )
{
94a: 1f 93 push r17
94c: 18 2f mov r17, r24
CheckBusy();
94e: 0e 94 95 04 call 0x92a <CheckBusy>
CLR_RS;
952: 94 98 cbi 0x12, 4 ; 18
CLR_RW;
954: 95 98 cbi 0x12, 5 ; 18
SET_EN;
956: 96 9a sbi 0x12, 6 ; 18
OUTDATA=Cbyte;
958: 18 bb out 0x18, r17 ; 24
CLR_EN;
95a: 96 98 cbi 0x12, 6 ; 18
95c: 1f 91 pop r17
95e: 08 95 ret
00000960 <WriteData>:
}
/******************************************************************************************
* 函数名称 :WriteData
* 功能描述 :
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void WriteData(unsigned char Dbyte )
{
960: 1f 93 push r17
962: 18 2f mov r17, r24
CheckBusy();
964: 0e 94 95 04 call 0x92a <CheckBusy>
SET_RS;
968: 94 9a sbi 0x12, 4 ; 18
CLR_RW;
96a: 95 98 cbi 0x12, 5 ; 18
SET_EN;
96c: 96 9a sbi 0x12, 6 ; 18
OUTDATA=Dbyte;
96e: 18 bb out 0x18, r17 ; 24
CLR_EN;
970: 96 98 cbi 0x12, 6 ; 18
972: 1f 91 pop r17
974: 08 95 ret
00000976 <LcmInit>:
}
/******************************************************************************************
* 函数名称 :LcmInit
* 功能描述 :
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void LcmInit( void )
{
DDRD |= (1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
976: 81 b3 in r24, 0x11 ; 17
978: 80 6f ori r24, 0xF0 ; 240
97a: 81 bb out 0x11, r24 ; 17
PORTD|= (1<<PD7);
97c: 97 9a sbi 0x12, 7 ; 18
WriteCommand(0x30); //8BitMCU,基本指令集合
97e: 80 e3 ldi r24, 0x30 ; 48
980: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x03); //AC归0,不改变DDRAM内容 //地址归0
984: 83 e0 ldi r24, 0x03 ; 3
986: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x0C); //显示ON,游标OFF,游标位反白OFF //整体显示开,游标显示关,反白关
98a: 8c e0 ldi r24, 0x0C ; 12
98c: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x01); //清屏,AC归0 //清除显示
990: 81 e0 ldi r24, 0x01 ; 1
992: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x06); //写入时,游标右移动 //进入设定点
996: 86 e0 ldi r24, 0x06 ; 6
998: 0e 94 a5 04 call 0x94a <WriteCommand>
99c: 08 95 ret
0000099e <LcmClearTXT>:
}
/******************************************************************************************
* 函数名称 :LcmClearTXT
* 功能描述 :文本区清RAM函数
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void LcmClearTXT( void )
{
99e: cf 93 push r28
uchar i;
WriteCommand(0x30); //8BitMCU,基本指令集合
9a0: 80 e3 ldi r24, 0x30 ; 48
9a2: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x80); //AC归起始位
9a6: 80 e8 ldi r24, 0x80 ; 128
9a8: 0e 94 a5 04 call 0x94a <WriteCommand>
9ac: cf e3 ldi r28, 0x3F ; 63
for(i=0;i<64;i++)
WriteData(0x20);
9ae: 80 e2 ldi r24, 0x20 ; 32
9b0: 0e 94 b0 04 call 0x960 <WriteData>
9b4: c1 50 subi r28, 0x01 ; 1
9b6: c7 ff sbrs r28, 7
9b8: fa cf rjmp .-12 ; 0x9ae <LcmClearTXT+0x10>
9ba: cf 91 pop r28
9bc: 08 95 ret
000009be <LcmClearBMP>:
}
/*********************
* 函数名称 :LcmClearBMP
* 功能描述 :图形区清RAM函数
* 参数 : 参数名称: 输入/输出? 类型 描述
* 图形区和文本区显示在两个不同的RAM区
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void LcmClearBMP( void )
{
9be: 1f 93 push r17
9c0: cf 93 push r28
uchar i,j;
WriteCommand(0x34); //8Bit扩充指令集,即使是36H也要写两次
9c2: 84 e3 ldi r24, 0x34 ; 52
9c4: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x36); //绘图ON,基本指令集里面36H不能开绘图
9c8: 86 e3 ldi r24, 0x36 ; 54
9ca: 0e 94 a5 04 call 0x94a <WriteCommand>
for(i=0;i<32;i++) //12864实际为256x32
9ce: 10 e0 ldi r17, 0x00 ; 0
{
WriteCommand(0x80|i); //行位置
9d0: 81 2f mov r24, r17
9d2: 80 68 ori r24, 0x80 ; 128
9d4: 0e 94 a5 04 call 0x94a <WriteCommand>
WriteCommand(0x80); //列位置
9d8: 80 e8 ldi r24, 0x80 ; 128
9da: 0e 94 a5 04 call 0x94a <WriteCommand>
9de: cf e1 ldi r28, 0x1F ; 31
for(j=0;j<32;j++) //256/8=32 byte
WriteData(0);
9e0: 80 e0 ldi r24, 0x00 ; 0
9e2: 0e 94 b0 04 call 0x960 <WriteData>
9e6: c1 50 subi r28, 0x01 ; 1
9e8: c7 ff sbrs r28, 7
9ea: fa cf rjmp .-12 ; 0x9e0 <LcmClearBMP+0x22>
9ec: 1f 5f subi r17, 0xFF ; 255
9ee: 10 32 cpi r17, 0x20 ; 32
9f0: 78 f3 brcs .-34 ; 0x9d0 <LcmClearBMP+0x12>
9f2: cf 91 pop r28
9f4: 1f 91 pop r17
9f6: 08 95 ret
000009f8 <PutStr>:
}
}
/******************************************************************************************
* 函数名称 :PutStr
* 功能描述 :PutStr(x,y,str1); //X为行0--3 Y为行起始位置0--7
* 参数 : 参数名称: 输入/输出? 类型 描述
*
* 返回值 :
* 作者 :
* 创建日期 :2006-12-19
* 全局变量 :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本 : 修改人: 修改日期:
* 修改说明 :
******************************************************************************************/
void PutStr(uchar row,uchar col,uchar *puts)
{
9f8: 0f 93 push r16
9fa: 1f 93 push r17
9fc: cf 93 push r28
9fe: df 93 push r29
a00: 18 2f mov r17, r24
a02: 06 2f mov r16, r22
a04: ea 01 movw r28, r20
WriteCommand(0x30); //8BitMCU,基本指令集合
a06: 80 e3 ldi r24, 0x30 ; 48
a08: 0e 94 a5 04 call 0x94a <WriteCommand>
switch(row)
a0c: 81 2f mov r24, r17
a0e: 99 27 eor r25, r25
a10: 81 30 cpi r24, 0x01 ; 1
a12: 91 05 cpc r25, r1
a14: 79 f0 breq .+30 ; 0xa34 <PutStr+0x3c>
a16: 82 30 cpi r24, 0x02 ; 2
a18: 91 05 cpc r25, r1
a1a: 1c f4 brge .+6 ; 0xa22 <PutStr+0x2a>
a1c: 89 2b or r24, r25
a1e: 39 f0 breq .+14 ; 0xa2e <PutStr+0x36>
a20: 13 c0 rjmp .+38 ; 0xa48 <PutStr+0x50>
a22: 82 30 cpi r24, 0x02 ; 2
a24: 91 05 cpc r25, r1
a26: 49 f0 breq .+18 ; 0xa3a <PutStr+0x42>
a28: 03 97 sbiw r24, 0x03 ; 3
a2a: 51 f0 breq .+20 ; 0xa40 <PutStr+0x48>
a2c: 0d c0 rjmp .+26 ; 0xa48 <PutStr+0x50>
{
case 0:
WriteCommand(0x80+col);
a2e: 80 2f mov r24, r16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -