⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.lst

📁 ST7920液晶控制器的AVR程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0198) }
(0199) 
(0200) /**********************液晶文字显示相关程序END*************/
(0201)                     
(0202) 
(0203) /**********************显示图形子程序START******************/
(0204) void PicClear1(void)
(0205) {
(0206)    uchar COUNT3,COUNT2,COUNT1,LCD_X,LCD_Y;
(0207)    COUNT3=0X02;
     8B3 E042      LDI	R20,2
(0208)    LCD_X=0X80;
     8B4 E860      LDI	R22,0x80
(0209)    for (;COUNT3!=0;COUNT3--)
     8B5 C016      RJMP	0x08CC
(0210)    {
(0211)        LCD_Y=0X80;
     8B6 E880      LDI	R24,0x80
     8B7 2EA8      MOV	R10,R24
(0212)        COUNT2=0X20;//32
     8B8 E280      LDI	R24,0x20
     8B9 2EC8      MOV	R12,R24
(0213)        for (;COUNT2!=0;COUNT2--)
     8BA C00D      RJMP	0x08C8
(0214)        {
(0215)          COUNT1=0X10;//16
     8BB E180      LDI	R24,0x10
     8BC 2EE8      MOV	R14,R24
(0216)          SetGraphicAddr(LCD_X,LCD_Y);
     8BD 2D2A      MOV	R18,R10
     8BE 2F06      MOV	R16,R22
     8BF DF01      RCALL	_SetGraphicAddr
(0217)          for (;COUNT1!=0;COUNT1--)
     8C0 C003      RJMP	0x08C4
(0218)           {
(0219)             WriteData(0);
     8C1 2700      CLR	R16
     8C2 DEB9      RCALL	_WriteData
     8C3 94EA      DEC	R14
     8C4 20EE      TST	R14
     8C5 F7D9      BNE	0x08C1
(0220)           }
(0221)          LCD_Y+=1;
     8C6 94A3      INC	R10
     8C7 94CA      DEC	R12
     8C8 20CC      TST	R12
     8C9 F789      BNE	0x08BB
(0222)        }
(0223)        LCD_X=0X88;
     8CA E868      LDI	R22,0x88
     8CB 954A      DEC	R20
     8CC 2344      TST	R20
     8CD F741      BNE	0x08B6
     8CE 940C 0974 JMP	pop_xgsetF0FC
_Draw_Pic:
  temp_y               --> R20
  temp_x               --> R22
  i                    --> R10
  j                    --> R14
  Draw                 --> Y,+10
  y                    --> R10
  x                    --> R12
     8D0 940E 097F CALL	push_xgsetF0FC
     8D2 2EA2      MOV	R10,R18
     8D3 2EC0      MOV	R12,R16
(0224)    }
(0225) //   send_com(0x36);
(0226) //   send_com(0x30);   //可省
(0227) }
(0228) 
(0229) /********************************************************************
(0230) 函 数 名:Draw_Pic  128*64
(0231) 入口参数:x,y,*Draw
(0232) 出口参数:无
(0233) 建立日期:2007年8月26日
(0234) 修改日期:
(0235) 函数作用:
(0236) 说    明:
(0237) ********************************************************************/
(0238) /*************************************************/
(0239) 
(0240) void Draw_Pic(uchar x, uchar y, const uchar *Draw)
(0241) {
(0242) 	uchar i, j, temp_x, temp_y;		//
(0243) 	temp_x = x;						//
     8D4 2D6C      MOV	R22,R12
(0244) 	temp_y = y;						//
     8D5 2D4A      MOV	R20,R10
(0245) 	temp_x |= 0x80;					//
     8D6 6860      ORI	R22,0x80
(0246) 	temp_y |= 0x80;					//
     8D7 6840      ORI	R20,0x80
(0247) 	WriteCommand(0x01);//清屏
     8D8 E001      LDI	R16,1
     8D9 DE8E      RCALL	_WriteCommand
(0248) 	Delayus(200);   //清屏需要时间  1ms左右
     8DA EC08      LDI	R16,0xC8
     8DB E010      LDI	R17,0
     8DC E020      LDI	R18,0
     8DD E030      LDI	R19,0
     8DE DE28      RCALL	_Delayus
(0249) 	WriteCommand(0x36);
     8DF E306      LDI	R16,0x36
     8E0 DE87      RCALL	_WriteCommand
(0250) 	for(i=0;i<32;i++ )				//上半屏32行
     8E1 24AA      CLR	R10
     8E2 C016      RJMP	0x08F9
(0251) 	{
(0252) 		WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
     8E3 2E24      MOV	R2,R20
     8E4 5F4F      SUBI	R20,0xFF
     8E5 2D02      MOV	R16,R2
     8E6 DE81      RCALL	_WriteCommand
(0253) 		WriteCommand(temp_x);  //设置绘图区的X地址坐标0
     8E7 2F06      MOV	R16,R22
     8E8 DE7F      RCALL	_WriteCommand
(0254) 		for(j=0;j<16;j++)			//
     8E9 24EE      CLR	R14
     8EA C00A      RJMP	0x08F5
(0255) 		{
(0256) 			 WriteData(*Draw++);
     8EB 842A      LDD	R2,Y+10
     8EC 843B      LDD	R3,Y+11
     8ED 01C1      MOVW	R24,R2
     8EE 9601      ADIW	R24,1
     8EF 879B      STD	Y+11,R25
     8F0 878A      STD	Y+10,R24
     8F1 01F1      MOVW	R30,R2
     8F2 9104      LPM	R16,10(Z)
     8F3 DE88      RCALL	_WriteData
     8F4 94E3      INC	R14
     8F5 2D8E      MOV	R24,R14
     8F6 3180      CPI	R24,0x10
     8F7 F398      BCS	0x08EB
     8F8 94A3      INC	R10
     8F9 2D8A      MOV	R24,R10
     8FA 3280      CPI	R24,0x20
     8FB F338      BCS	0x08E3
(0257) 		}
(0258) 	}
(0259) 	
(0260) 	temp_x = 0x88;					//
     8FC E868      LDI	R22,0x88
(0261) 	temp_y = 0x80;					//
     8FD E840      LDI	R20,0x80
(0262) 	j = 0; 	 						//
     8FE 24EE      CLR	R14
(0263) 	for(;i<64;i++ )
     8FF C016      RJMP	0x0916
(0264) 	{
(0265) 		
(0266) 		WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
     900 2EC4      MOV	R12,R20
     901 5F4F      SUBI	R20,0xFF
     902 2D0C      MOV	R16,R12
     903 DE64      RCALL	_WriteCommand
(0267) 		WriteCommand(temp_x);  //设置绘图区的X地址坐标0
     904 2F06      MOV	R16,R22
     905 DE62      RCALL	_WriteCommand
(0268) 		for(j=0;j<16;j++)
     906 24EE      CLR	R14
     907 C00A      RJMP	0x0912
(0269) 		{
(0270) 			WriteData(*Draw++);
     908 84CA      LDD	R12,Y+10
     909 84DB      LDD	R13,Y+11
     90A 01C6      MOVW	R24,R12
     90B 9601      ADIW	R24,1
     90C 879B      STD	Y+11,R25
     90D 878A      STD	Y+10,R24
     90E 01F6      MOVW	R30,R12
     90F 9104      LPM	R16,10(Z)
     910 DE6B      RCALL	_WriteData
     911 94E3      INC	R14
     912 2D8E      MOV	R24,R14
     913 3180      CPI	R24,0x10
     914 F398      BCS	0x0908
     915 94A3      INC	R10
     916 2D8A      MOV	R24,R10
     917 3480      CPI	R24,0x40
     918 F338      BCS	0x0900
(0271) 		}
(0272) 	}
(0273) 	WriteCommand(0x30);//基本指令集,,绘图显示OFF 	 
FILE: <library>
     919 E300      LDI	R16,0x30
     91A DE4D      RCALL	_WriteCommand
     91B 940C 0974 JMP	pop_xgsetF0FC
push_arg4:
     91D 933A      ST	R19,-Y
     91E 932A      ST	R18,-Y
push_arg2:
     91F 931A      ST	R17,-Y
     920 930A      ST	R16,-Y
     921 9508      RET
mod16s:
     922 9468      BSET	6
     923 92DA      ST	R13,-Y
     924 2ED1      MOV	R13,R17
     925 C004      RJMP	0x092A
div16s:
     926 94E8      BCLR	6
     927 92DA      ST	R13,-Y
     928 2ED1      MOV	R13,R17
     929 26D3      EOR	R13,R19
     92A FF17      SBRS	R17,7
     92B C004      RJMP	0x0930
     92C 9510      COM	R17
     92D 9500      COM	R16
     92E 5F0F      SUBI	R16,0xFF
     92F 4F1F      SBCI	R17,0xFF
     930 FF37      SBRS	R19,7
     931 C004      RJMP	0x0936
     932 9530      COM	R19
     933 9520      COM	R18
     934 5F2F      SUBI	R18,0xFF
     935 4F3F      SBCI	R19,0xFF
     936 940E 0943 CALL	xdiv16u
     938 FED7      SBRS	R13,7
     939 C004      RJMP	0x093E
     93A 9510      COM	R17
     93B 9500      COM	R16
     93C 5F0F      SUBI	R16,0xFF
     93D 4F1F      SBCI	R17,0xFF
     93E 90D9      LD	R13,Y+
     93F 9508      RET
mod16u:
     940 9468      BSET	6
     941 C001      RJMP	xdiv16u
div16u:
     942 94E8      BCLR	6
xdiv16u:
     943 92EA      ST	R14,-Y
     944 92FA      ST	R15,-Y
     945 938A      ST	R24,-Y
     946 24EE      CLR	R14
     947 24FF      CLR	R15
     948 E180      LDI	R24,0x10
     949 0F00      LSL	R16
     94A 1F11      ROL	R17
     94B 1CEE      ROL	R14
     94C 1CFF      ROL	R15
     94D 16E2      CP	R14,R18
     94E 06F3      CPC	R15,R19
     94F F018      BCS	0x0953
     950 1AE2      SUB	R14,R18
     951 0AF3      SBC	R15,R19
     952 9503      INC	R16
     953 958A      DEC	R24
     954 F7A1      BNE	0x0949
     955 F416      BRTC	0x0958
     956 2D0E      MOV	R16,R14
     957 2D1F      MOV	R17,R15
     958 9189      LD	R24,Y+
     959 90F9      LD	R15,Y+
     95A 90E9      LD	R14,Y+
     95B 9508      RET
mod8u:
     95C 9468      BSET	6
     95D C001      RJMP	xdiv8u
div8u:
     95E 94E8      BCLR	6
xdiv8u:
     95F 932A      ST	R18,-Y
     960 92FA      ST	R15,-Y
     961 92EA      ST	R14,-Y
     962 24FF      CLR	R15
     963 24EE      CLR	R14
     964 E120      LDI	R18,0x10
     965 0F00      LSL	R16
     966 1CFF      ROL	R15
     967 1CEE      ROL	R14
     968 16E1      CP	R14,R17
     969 F010      BCS	0x096C
     96A 1AE1      SUB	R14,R17
     96B 9503      INC	R16
     96C 952A      DEC	R18
     96D F7B9      BNE	0x0965
     96E F40E      BRTC	0x0970
     96F 2D0E      MOV	R16,R14
     970 90E9      LD	R14,Y+
     971 90F9      LD	R15,Y+
     972 9129      LD	R18,Y+
     973 9508      RET
pop_xgsetF0FC:
     974 90A9      LD	R10,Y+
     975 90B9      LD	R11,Y+
     976 90C9      LD	R12,Y+
     977 90D9      LD	R13,Y+
     978 90E9      LD	R14,Y+
     979 90F9      LD	R15,Y+
     97A 9149      LD	R20,Y+
     97B 9159      LD	R21,Y+
     97C 9169      LD	R22,Y+
     97D 9179      LD	R23,Y+
     97E 9508      RET
push_xgsetF0FC:
     97F 937A      ST	R23,-Y
     980 936A      ST	R22,-Y
push_xgset30FC:
     981 935A      ST	R21,-Y
     982 934A      ST	R20,-Y
push_xgset00FC:
     983 92FA      ST	R15,-Y
     984 92EA      ST	R14,-Y
push_xgset003C:
     985 92DA      ST	R13,-Y
     986 92CA      ST	R12,-Y
     987 92BA      ST	R11,-Y
     988 92AA      ST	R10,-Y
     989 9508      RET
push_xgset300C:
     98A 935A      ST	R21,-Y
     98B 934A      ST	R20,-Y
     98C 92BA      ST	R11,-Y
     98D 92AA      ST	R10,-Y
     98E 9508      RET
pop_xgset300C:
     98F 90A9      LD	R10,Y+
     990 90B9      LD	R11,Y+
     991 9149      LD	R20,Y+
     992 9159      LD	R21,Y+
     993 9508      RET
push_xgsetF00C:
     994 937A      ST	R23,-Y
     995 936A      ST	R22,-Y
     996 935A      ST	R21,-Y
     997 934A      ST	R20,-Y
     998 92BA      ST	R11,-Y
     999 92AA      ST	R10,-Y
     99A 9508      RET
pop_xgsetF00C:
     99B 90A9      LD	R10,Y+
     99C 90B9      LD	R11,Y+
     99D 9149      LD	R20,Y+
     99E 9159      LD	R21,Y+
     99F 9169      LD	R22,Y+
     9A0 9179      LD	R23,Y+
     9A1 9508      RET
lsl32:
     9A2 920F      PUSH	R0
     9A3 9009      LD	R0,Y+
     9A4 2000      TST	R0
     9A5 F031      BEQ	0x09AC
     9A6 0F00      LSL	R16
     9A7 1F11      ROL	R17
     9A8 1F22      ROL	R18
     9A9 1F33      ROL	R19
     9AA 940A      DEC	R0
     9AB CFF8      RJMP	0x09A4
     9AC 900F      POP	R0
     9AD 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -