学者之家电子论坛--打造电子工程师共同致富的平台's Archiver

joudy 发表于 2007-7-17 11:05

HT48R50A-1驱动HT1621的驱动例程

<p>[attach]2309[/attach]<br/>;*******************************<br/>; HT48R50A-1驱动HT1621的驱动例程, 此例用于演示单片机控制LCD显示<br/>; 在本试验中&nbsp; ORD1=ID码 + C8<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ORD2=C7 C6 C5 C4 C3 C2 C1 C0<br/>; 在读写子程序中,每次读写HT162两个单元,所以是8位数据<br/>; BODY: HT48R50A-1&nbsp;&nbsp; 大玻璃<br/>;*********************************<br/>INCLUDE&nbsp;&nbsp;HT48R50A-1.INC </p><p>DT&nbsp;&nbsp;EQU &nbsp;PA.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;;定义PA.3为HT1621的DATA控制线 <br/>WR&nbsp;&nbsp; &nbsp;EQU &nbsp;PA.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;;定义PA.2为HT1621的WR控制线 <br/>RD&nbsp;&nbsp; &nbsp;EQU &nbsp;PA.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;;定义PA.1为HT1621的RD控制线 <br/>CS&nbsp;&nbsp; &nbsp;EQU &nbsp;PA.0 &nbsp;&nbsp;&nbsp;;定义PA.0为HT1621的CS控制线&nbsp; </p><p>DATA .SECTION&nbsp; 'DATA'&nbsp;&nbsp; &nbsp;&nbsp;;变量定义 <br/>ADDR &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;地址寄存器<br/>NUMB &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;;数据寄存器<br/>LOOP &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;循环次数寄存器<br/>ORD1 &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;LCD COMMAND 高字节<br/>ORD2 &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;LCD COMMAND 低字节</p><p>TEMP &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp; &nbsp;&nbsp;;For normal use<br/>RAM&nbsp; &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;地址寄存器,HT1621所有RAM清0段用到<br/>RAM1 &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;记录LCD显示寄存器,0-&gt;1-2...9-&gt;0-&gt;1循环<br/>RAM2 &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;显示子程序中,查表结果寄存器 <br/>T&nbsp;&nbsp;&nbsp; &nbsp;EQU&nbsp; &nbsp;0AH&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;For delay time<br/>T1&nbsp;&nbsp; &nbsp;EQU&nbsp; &nbsp;01H&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;;For delay time2</p><p>NUM&nbsp;&nbsp; &nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br/>DATA0&nbsp;DB&nbsp;&nbsp;?<br/>DATA1&nbsp;DB&nbsp;&nbsp;?<br/>&nbsp;<br/>;*********************************<br/>;Define For Software Control<br/>;*********************************<br/>PROGRAM_NUM&nbsp;&nbsp;DB&nbsp;&nbsp;?&nbsp;&nbsp;&nbsp; ;For Program Jump<br/>;*********************************<br/>;Define For Ht1621 Initial(See Ht1621 Datasheet Of Holtek Page 18)<br/>;*********************************<br/>COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU 008H&nbsp;&nbsp;&nbsp; &nbsp;;XXXX 100C8 <br/>READ_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU 00CH&nbsp;&nbsp;&nbsp; &nbsp;;XXXX 110C8 <br/>WRITE_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU 00AH&nbsp;&nbsp;&nbsp; &nbsp;;XXXX 101C8<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;;命令码的低8位定义.参考HT1621的资料说明<br/>SYS_DIS&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;EQU &nbsp;000H &nbsp;;C7 C6 C5 C4 C3 C2 C1 C0<br/>SYS_EN&nbsp;&nbsp; &nbsp;&nbsp;EQU &nbsp;002H&nbsp;&nbsp; &nbsp;<br/>LCD_OFF&nbsp; &nbsp;&nbsp;EQU &nbsp;004H&nbsp;&nbsp;&nbsp; &nbsp;<br/>LCD_ON&nbsp;&nbsp; &nbsp;&nbsp;EQU &nbsp;006H&nbsp;&nbsp; &nbsp;<br/>TIMER_DIS &nbsp;&nbsp;EQU &nbsp;008H&nbsp;&nbsp;&nbsp; &nbsp;<br/>WDT_DIS&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU&nbsp;00AH&nbsp; &nbsp;<br/>TIMER_EN&nbsp; &nbsp;&nbsp;EQU &nbsp;00CH&nbsp;&nbsp; &nbsp;<br/>WDT_EN&nbsp;&nbsp; &nbsp;&nbsp;EQU &nbsp;00EH&nbsp;&nbsp; &nbsp;<br/>TONE_OFF&nbsp;&nbsp; &nbsp;EQU &nbsp;010H&nbsp;&nbsp; &nbsp;<br/>TONE_ON&nbsp;&nbsp;&nbsp; &nbsp;EQU &nbsp;012H&nbsp;&nbsp; &nbsp;<br/>CLR_TIMER&nbsp;&nbsp; &nbsp;EQU &nbsp;018H&nbsp;&nbsp; &nbsp;<br/>CLR_WDT&nbsp;&nbsp; &nbsp;EQU &nbsp;01CH&nbsp; &nbsp;<br/>XTAL_32K&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU &nbsp;028H&nbsp;&nbsp; &nbsp;<br/>RC_256K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU &nbsp;030H&nbsp;&nbsp; &nbsp;<br/>EXT_256K&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU &nbsp;038H&nbsp;&nbsp; &nbsp;<br/>&nbsp;<br/>TONE_4K&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;EQU &nbsp;080H&nbsp;&nbsp;&nbsp; &nbsp;<br/>TONE_2K&nbsp;&nbsp;&nbsp; &nbsp;EQU &nbsp;0C0H&nbsp;&nbsp;&nbsp; &nbsp;</p><p><br/>;*********************************&nbsp;&nbsp;&nbsp;&nbsp; <br/>CODE .SECTION&nbsp; 'CODE'&nbsp; &nbsp;&nbsp;;程序代码区定义&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; ORG 000H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP MAIN <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; org 004h<br/>&nbsp;&nbsp;&nbsp;&nbsp; RETI<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; org 008h<br/>&nbsp;&nbsp;&nbsp;&nbsp; RETI<br/>;**************************</p>

joudy 发表于 2007-7-17 11:07

<p>;main program<br/>;**************************<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ORG 010H<br/>MAIN: MOV A,00H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV PAC,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR PA<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,0FH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV PBC,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR RAM<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR RAM1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR RAM2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;I/O, RAM initial<br/>;-----------------------------&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL INITLCD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;HT1621&nbsp; initial <br/>;-----------------------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,20H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV NUM,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC RAM<br/>KKK1: INC RAM&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RAM <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ADDR,A&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,00H&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV NUMB,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL WRITE&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC NUM<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ NUM<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP KKK1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;All LCD OFF<br/>;----------------------------------------&nbsp; <br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,09H<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV&nbsp; RAM1,A&nbsp;&nbsp;&nbsp;&nbsp; <br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL DISPLAY<br/>;SS:&nbsp;&nbsp; NOP<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP SS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;for test lcd display <br/>;-----------------------------------------------<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL DISPLAY<br/>MAIN1: CLR PB.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; S1: SCAN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ PB.0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP MAIN3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL DELAY<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ PB.0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP MAIN3<br/>MAIN2: SNZ PB.0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP MAIN2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INC RAM1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RAM1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SUB A,0AH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SNZ C<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP MAIN21 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR RAM1&nbsp; <br/>MAIN21:CALL DISPLAY</p><p>MAIN3: JMP MAIN1</p><p>;**********************************************<br/>DISPLAY PROC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,01H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV RAM,A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p><p>LOOPA:&nbsp;&nbsp;&nbsp; <br/>&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RAM1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV [07H],A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;MOV TBLP,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TABRDL RAM2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,1DH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ADDR,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RAM2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV NUMB,A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;mov numb,a<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL WRITE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;ONE WRITE TWO ADDRESS&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,1BH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ADDR,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RAM2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV NUMB,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL WRITE</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,19H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ADDR,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RAM2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV NUMB,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL WRITE<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RET<br/>DISPLAY&nbsp; ENDP<br/>&nbsp;&nbsp;&nbsp; <br/>;****************************<br/>;****************************<br/>INITLCD PROC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;1&gt; turn off tone outputs <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,TONE_OFF<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM&nbsp; </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,09H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;2&gt; disable IRQ output<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,00H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;3&gt; disable time base output<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,TIMER_DIS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;4&gt; disable WDT time-out flag output<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,WDT_DIS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;5&gt; system clock source,0n-chip RC oscillator<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,RC_256K<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;6&gt; LCD 1/2 bais option; ab=10 4 commons option<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,52h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;3bais 4com ;50H--2bais 4com<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;7&gt; turn on system oscillator<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,02H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,COMMAND_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;8&gt; turn on LCD base generator<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,LCD_ON<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,09H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;9&gt; normal mode<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD1,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,0C6H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV ORD2,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CALL LCDCOM<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RET<br/>INITLCD ENDP</p><p>;***********************************&nbsp;&nbsp;&nbsp;&nbsp; <br/>; delay time<br/>;***********************************<br/>delay&nbsp; proc<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,t<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov [51h],a<br/>delay1:mov a,30h<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov [52h],a<br/>delay2:dec [52h]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sz [52h]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp delay2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec [51h]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sz [51h]<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jmp delay1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret<br/>delay&nbsp; endp&nbsp;&nbsp; <br/>&nbsp;<br/>;***********************************<br/>; &lt;1&gt;&nbsp; COMMAND, [41H] ;100 XXXX XXXX X<br/>; LCD COMMAND [61H][60H]---&gt;LCD<br/>;&nbsp; [61H]---HIGH&nbsp; [60H]----LOW<br/>;**********************<br/>LCDCOM PROC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,00H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV PAC,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,0FFH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV PA,A</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR CS&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,04H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV LOOP,A<br/>LCD1:&nbsp; SZ ORD1.3<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LCD2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LCD3<br/>LCD2:&nbsp; SET DT<br/>LCD3:&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RL ORD1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LCD1</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,08H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV LOOP,A<br/>LCD4:&nbsp; SZ ORD2.7<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LCD5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LCD6<br/>LCD5:&nbsp; SET DT<br/>LCD6:&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RL ORD2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LCD4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET CS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RET</p>

joudy 发表于 2007-7-17 11:08

<p>LCDCOM ENDP<br/>;***********************************<br/>; &lt;2&gt; READ&nbsp; ADDR [40H] ;110 A5 A4 A3 A2 A1 A0<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMB [41H]<br/>;***********************************<br/>READ PROC<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV A,00H<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV PAC,A<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV A,0FFH<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV PA,A</p><p>&nbsp;&nbsp;&nbsp;&nbsp; CLR CS</p><p>&nbsp;&nbsp;&nbsp;&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SET WR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;110</p><p>&nbsp;&nbsp;&nbsp;&nbsp; MOV A,06H<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV LOOP,A<br/>RRR: CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; SZ ADDR.5<br/>&nbsp;&nbsp;&nbsp;&nbsp; JMP RRR1<br/>&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp; JMP RRR2<br/>RRR1:SET DT<br/>RRR2:NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp; RL ADDR<br/>&nbsp;&nbsp;&nbsp;&nbsp; DEC LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SZ LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; JMP RRR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;SEND ADDRESS</p><p>&nbsp;&nbsp;&nbsp;&nbsp; SET PAC.0<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV A,00H<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV NUMB,A<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV A,08H<br/>&nbsp;&nbsp;&nbsp;&nbsp; MOV LOOP,A<br/>RRR3:CLR RD<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SET RD<br/>&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SZ DT<br/>&nbsp;&nbsp;&nbsp;&nbsp; JMP RRR4<br/>&nbsp;&nbsp;&nbsp;&nbsp; CLR NUMB.7<br/>&nbsp;&nbsp;&nbsp;&nbsp; JMP RRR5<br/>RRR4:SET NUMB.7<br/>RRR5:RR NUMB<br/>&nbsp;&nbsp;&nbsp;&nbsp; DEC LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; SZ LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp; JMP RRR3<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp; SET CS<br/>&nbsp;&nbsp;&nbsp;&nbsp; RL NUMB<br/>&nbsp;&nbsp;&nbsp;&nbsp; RET<br/>READ ENDP<br/>;***********************************<br/>; &lt;3&gt; WRITE ADDR [40H] ;101 A5A4A3A2A1D0D1D2D3<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMB [41H]<br/>;***********************************<br/>WRITE&nbsp; PROC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,00H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV PAC,A<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,0FFH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV PA,A</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR CS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;SEND 1 0 1</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,06H<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV LOOP,A<br/>LLCD1: SZ ADDR.5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LLCD2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LLCD3<br/>LLCD2: SET DT<br/>LLCD3: CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RL ADDR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LLCD1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;SEND A5A4A3A2A1A0</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,08H&nbsp;;send d0d1d2d3,D4D5D6D7<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV LOOP,A<br/>LLCD4: SZ NUMB.0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LLCD5<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CLR DT<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LLCD6<br/>LLCD5: SET DT<br/>LLCD6: CLR WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET WR<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RR NUMB<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DEC LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SZ LOOP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JMP LLCD4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET CS<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RET<br/>WRITE&nbsp; ENDP<br/>;**********************************<br/>&nbsp;&nbsp;&nbsp;&nbsp; ORG 0f00H<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp; 8&nbsp;&nbsp;&nbsp; 9<br/>TABLE:&nbsp; DW 0AFH ,06H, 6DH, 4FH,&nbsp; 0C6H, 0CBH, 0EBH, 0EH, 0EFH, 0CFH<br/>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>;------------------------------------------------------</p><p><br/>&nbsp;&nbsp;&nbsp;&nbsp; end</p>

zxxay 发表于 2007-11-23 22:27

顶一个。

页: [1]

Powered by Discuz! Archiver 7.1  © 2001-2009 Comsenz Inc.

302 Found

302 Found


nginx/1.8.0