亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? project.lst

?? 點陣型lcd的驅動程序 針對于AVR單片機 稍微修改后可應用于51等型號單片機
?? LST
?? 第 1 頁 / 共 5 頁
字號:
    0675 BB0B      OUT	0x1B,R16
(0164) }
    0676 9508      RET
_LCD_Command_DispOnOff:
  onoff                --> R20
    0677 940E0A7A  CALL	push_gset1
    0679 2F40      MOV	R20,R16
(0165) 
(0166) //******************************************************************************
(0167) // Function    : LCD_Command_DispOnOff
(0168) // Input       : onoff = 1 -> LCD Display Enabled,else Disabled
(0169) // Output      : none
(0170) // Description : Command Level Function,Display ONOFF Control
(0171) //******************************************************************************
(0172) void LCD_Command_DispOnOff(INT8U onoff)
(0173) {
(0174) 	Set_RW(0);
    067A 2700      CLR	R16
    067B DFDB      RCALL	_Set_RW
(0175) 	Set_DI(0);
    067C 2700      CLR	R16
    067D DFD3      RCALL	_Set_DI
(0176) 	Set_EN(0);
    067E 2700      CLR	R16
    067F DFDD      RCALL	_Set_EN
(0177) 	Set_Data(0x3E + onoff);
    0680 2F04      MOV	R16,R20
    0681 5C02      SUBI	R16,0xC2
    0682 DFF2      RCALL	_Set_Data
(0178) 	Set_EN(1);
    0683 E001      LDI	R16,1
    0684 DFD8      RCALL	_Set_EN
(0179) 	Set_EN(0);
    0685 2700      CLR	R16
    0686 DFD6      RCALL	_Set_EN
(0180) }
    0687 940E0A7D  CALL	pop_gset1
    0689 9508      RET
_LCD_Command_SetStartLine:
  startline            --> R20
    068A 940E0A7A  CALL	push_gset1
    068C 2F40      MOV	R20,R16
(0181) 
(0182) //******************************************************************************
(0183) // Function    : LCD_Command_SetStartLine
(0184) // Input       : startline - Display Start Line,See Specification
(0185) // Output      : none
(0186) // Description : Command Level Function,Set Display Start Line
(0187) //******************************************************************************
(0188) void LCD_Command_SetStartLine(INT8U startline)
(0189) {
(0190) 	Set_RW(0);
    068D 2700      CLR	R16
    068E DFC8      RCALL	_Set_RW
(0191) 	Set_DI(0);																
    068F 2700      CLR	R16
    0690 DFC0      RCALL	_Set_DI
(0192) 	Set_EN(0);																
    0691 2700      CLR	R16
    0692 DFCA      RCALL	_Set_EN
(0193) 	Set_Data(0xC0 + startline);
    0693 2F04      MOV	R16,R20
    0694 5400      SUBI	R16,0x40
    0695 DFDF      RCALL	_Set_Data
(0194) 	Set_EN(1);																
    0696 E001      LDI	R16,1
    0697 DFC5      RCALL	_Set_EN
(0195) 	Set_EN(0);																
    0698 2700      CLR	R16
    0699 DFC3      RCALL	_Set_EN
(0196) }
    069A 940E0A7D  CALL	pop_gset1
    069C 9508      RET
_LCD_Command_Set_X:
  x                    --> R20
    069D 940E0A7A  CALL	push_gset1
    069F 2F40      MOV	R20,R16
(0197) 
(0198) //******************************************************************************
(0199) // Function    : LCD_Command_Set_X
(0200) // Input       : x - Display Row,from 0 to 7 for 128*64 LCD
(0201) // Output      : none
(0202) // Description : Command Level Function,Set Operation X Address
(0203) //******************************************************************************
(0204) void LCD_Command_Set_X(INT8U x)
(0205) {
(0206) 	Set_RW(0);
    06A0 2700      CLR	R16
    06A1 DFB5      RCALL	_Set_RW
(0207) 	Set_DI(0);
    06A2 2700      CLR	R16
    06A3 DFAD      RCALL	_Set_DI
(0208) 	Set_EN(0);
    06A4 2700      CLR	R16
    06A5 DFB7      RCALL	_Set_EN
(0209) 	Set_Data(0xB8 + x);
    06A6 2F04      MOV	R16,R20
    06A7 5408      SUBI	R16,0x48
    06A8 DFCC      RCALL	_Set_Data
(0210) 	Set_EN(1);
    06A9 E001      LDI	R16,1
    06AA DFB2      RCALL	_Set_EN
(0211) 	Set_EN(0);
    06AB 2700      CLR	R16
    06AC DFB0      RCALL	_Set_EN
(0212) }
    06AD 940E0A7D  CALL	pop_gset1
    06AF 9508      RET
_LCD_Command_Set_Y:
  column               --> R20
    06B0 940E0A7A  CALL	push_gset1
    06B2 2F40      MOV	R20,R16
(0213) 
(0214) //******************************************************************************
(0215) // Function    : LCD_Command_Set_Y
(0216) // Input       : y - Display Column,from 0 to 63 for 128*64 LCD
(0217) // Output      : none
(0218) // Description : Command Level Function,Set Operation Y Address
(0219) //******************************************************************************
(0220) void LCD_Command_Set_Y(INT8U column)
(0221) {
(0222) 	Set_RW(0);
    06B3 2700      CLR	R16
    06B4 DFA2      RCALL	_Set_RW
(0223) 	Set_DI(0);
    06B5 2700      CLR	R16
    06B6 DF9A      RCALL	_Set_DI
(0224) 	Set_EN(0);
    06B7 2700      CLR	R16
    06B8 DFA4      RCALL	_Set_EN
(0225) 	Set_Data(0x40 + column);
    06B9 2F04      MOV	R16,R20
    06BA 5C00      SUBI	R16,0xC0
    06BB DFB9      RCALL	_Set_Data
(0226) 	Set_EN(1);
    06BC E001      LDI	R16,1
    06BD DF9F      RCALL	_Set_EN
(0227) 	Set_EN(0);
    06BE 2700      CLR	R16
    06BF DF9D      RCALL	_Set_EN
(0228) }
    06C0 940E0A7D  CALL	pop_gset1
    06C2 9508      RET
_LCD_Command_WriteByte:
  data                 --> R20
    06C3 940E0A7A  CALL	push_gset1
    06C5 2F40      MOV	R20,R16
(0229) 
(0230) //******************************************************************************
(0231) // Function    : LCD_Command_WriteByte
(0232) // Input       : data - Display Data
(0233) // Output      : none
(0234) // Description : Command Level Function,Write Display Data to DDRAM
(0235) //******************************************************************************
(0236) void LCD_Command_WriteByte(INT8U data)
(0237) {
(0238) 	Set_RW(0);
    06C6 2700      CLR	R16
    06C7 DF8F      RCALL	_Set_RW
(0239) 	Set_DI(1);
    06C8 E001      LDI	R16,1
    06C9 DF87      RCALL	_Set_DI
(0240) 	Set_EN(0);
    06CA 2700      CLR	R16
    06CB DF91      RCALL	_Set_EN
(0241) 	Set_Data(data);
    06CC 2F04      MOV	R16,R20
    06CD DFA7      RCALL	_Set_Data
(0242) 	Set_EN(1);
    06CE E001      LDI	R16,1
    06CF DF8D      RCALL	_Set_EN
(0243) 	Set_EN(0);
    06D0 2700      CLR	R16
    06D1 DF8B      RCALL	_Set_EN
(0244) }
    06D2 940E0A7D  CALL	pop_gset1
    06D4 9508      RET
(0245) 
(0246) //******************************************************************************
(0247) // Function    : LCD_Reset
(0248) // Input       : none
(0249) // Output      : none
(0250) // Description : Command Level Function,Soft RESET LCD Module
(0251) //******************************************************************************
(0252) void LCD_Reset(void)
(0253) {
(0254) 	Set_RST(0);
_LCD_Reset:
    06D5 2700      CLR	R16
    06D6 DF98      RCALL	_Set_RST
(0255) 	Set_RST(1);
    06D7 E001      LDI	R16,1
(0256) }
    06D8 CF96      RJMP	_Set_RST
(0257) 
(0258) //******************************************************************************
(0259) // Function    : LCD_Init
(0260) // Input       : none
(0261) // Output      : none
(0262) // Description : Application Level Function,Init LCD
(0263) //******************************************************************************
(0264) void LCD_Init(void)
(0265) {
(0266) 	LCD_Reset();
_LCD_Init:
    06D9 DFFB      RCALL	_LCD_Reset
(0267) 	LCD_Clear_Line(0,7);
    06DA E027      LDI	R18,7
    06DB 2700      CLR	R16
    06DC D004      RCALL	_LCD_Clear_Line
(0268) 	LCD_Command_DispOnOff(1);
    06DD E001      LDI	R16,1
    06DE DF98      RCALL	_LCD_Command_DispOnOff
(0269) 	LCD_Command_SetStartLine(0);
    06DF 2700      CLR	R16
(0270) }
    06E0 CFA9      RJMP	_LCD_Command_SetStartLine
_LCD_Clear_Line:
  i                    --> R20
  j                    --> R10
  endline              --> R22
  startline            --> R10
    06E1 940E0A95  CALL	push_gset3
    06E3 2F62      MOV	R22,R18
    06E4 2EA0      MOV	R10,R16
(0271) 
(0272) //******************************************************************************
(0273) // Function    : LCD_Clear_Line
(0274) // Input       : startline,endline - Line Range to be Cleare
(0275) // Output      : none
(0276) // Description : Command Level Function,Clear Screen Display
(0277) //******************************************************************************
(0278) void LCD_Clear_Line(INT8U startline,INT8U endline)
(0279) {
(0280) 	INT8U i,j;
(0281) 	for(i = startline;i <= endline;i++)
    06E5 2D4A      MOV	R20,R10
    06E6 C011      RJMP	0x06F8
(0282) 	{
(0283) 		Set_CS1(1);
    06E7 E001      LDI	R16,1
    06E8 DF80      RCALL	_Set_CS1
(0284) 		Set_CS2(1);
    06E9 E001      LDI	R16,1
    06EA DF78      RCALL	_Set_CS2
(0285) 		LCD_Command_Set_X(i);
    06EB 2F04      MOV	R16,R20
    06EC DFB0      RCALL	_LCD_Command_Set_X
(0286) 		LCD_Command_Set_Y(0);
    06ED 2700      CLR	R16
    06EE DFC1      RCALL	_LCD_Command_Set_Y
(0287) 		for(j = 0;j < 64;j++)
    06EF 24AA      CLR	R10
    06F0 C003      RJMP	0x06F4
(0288) 		{
(0289) 			LCD_Command_WriteByte(0x00);
    06F1 2700      CLR	R16
    06F2 DFD0      RCALL	_LCD_Command_WriteByte
    06F3 94A3      INC	R10
    06F4 2D8A      MOV	R24,R10
    06F5 3480      CPI	R24,0x40
    06F6 F3D0      BCS	0x06F1
    06F7 9543      INC	R20
    06F8 1764      CP	R22,R20
    06F9 F768      BCC	0x06E7
(0290) 		}
(0291) 	}
(0292) }
    06FA 940E0A74  CALL	pop_gset3
    06FC 9508      RET
_LCD_Write_Data:
  data                 --> Y+4
  y                    --> R20
  x                    --> R22
    06FD 940E0A91  CALL	push_gset2
    06FF 2F42      MOV	R20,R18
    0700 2F60      MOV	R22,R16
(0293) 
(0294) //******************************************************************************
(0295) // Function    : LCD_Write_Data
(0296) // Input       : x in [0,7] and y in [0,127]
(0297) // Output      : none
(0298) // Description : Command Level Function,在指定行列寫一個數據
(0299) //******************************************************************************
(0300) void LCD_Write_Data(INT8U x,INT8U y,INT8U data)
(0301) {
(0302) 	if(y < 64)
    0701 3440      CPI	R20,0x40
    0702 F448      BCC	0x070C
(0303) 	{
(0304) 		Set_CS1(1);
    0703 E001      LDI	R16,1
    0704 DF64      RCALL	_Set_CS1
(0305) 		Set_CS2(0);
    0705 2700      CLR	R16
    0706 DF5C      RCALL	_Set_CS2
(0306) 		LCD_Command_Set_X(x);
    0707 2F06      MOV	R16,R22
    0708 DF94      RCALL	_LCD_Command_Set_X
(0307) 		LCD_Command_Set_Y(y);
    0709 2F04      MOV	R16,R20
    070A DFA5      RCALL	_LCD_Command_Set_Y
(0308) 	}
    070B C009      RJMP	0x0715
(0309) 	else
(0310) 	{
(0311) 		Set_CS1(0);
    070C 2700      CLR	R16
    070D DF5B      RCALL	_Set_CS1
(0312) 		Set_CS2(1);
    070E E001      LDI	R16,1
    070F DF53      RCALL	_Set_CS2
(0313) 		LCD_Command_Set_X(x);
    0710 2F06      MOV	R16,R22
    0711 DF8B      RCALL	_LCD_Command_Set_X
(0314) 		LCD_Command_Set_Y(y - 64);		
    0712 2F04      MOV	R16,R20
    0713 5400      SUBI	R16,0x40
    0714 DF9B      RCALL	_LCD_Command_Set_Y
(0315) 	}
(0316) 	LCD_Command_WriteByte(data);
    0715 810C      LDD	R16,Y+4
    0716 DFAC      RCALL	_LCD_Command_WriteByte
(0317) }
    0717 940E0A71  CALL	pop_gset2
    0719 9508      RET
_LCD_Write_Dot:
  y_address            --> R22
  x_address            --> R20
  data                 --> R10
  y                    --> R14
  x                    --> R12
    071A 940E0A9D  CALL	push_gset5
    071C 2EE2      MOV	R14,R18
    071D 2EC0      MOV	R12,R16
    071E 9721      SBIW	R28,1
(0318) 
(0319) //******************************************************************************
(0320) // Function    : LCD_Write_Dot
(0321) // Input       : x in [0,63] and y in [0,127]
(0322) // Output      : none
(0323) // Description : Application Level Function,在LCD的指定象素位置描點,注意此函數
(0324) //               是覆蓋式描點,原位置的一個字節數據將被此點取代
(0325) //******************************************************************************
(0326) void LCD_Write_Dot(INT8U x,INT8U y)
(0327) {
(0328) 	INT8U x_address,y_address;
(0329) 	INT8U data = 0;
    071F 24AA      CLR	R10
(0330) 	if((x < 64) && (y < 128))
    0720 2D8C      MOV	R24,R12
    0721 3480      CPI	R24,0x40
    0722 F4B0      BCC	0x0739
    0723 2D8E      MOV	R24,R14
    0724 3880      CPI	R24,0x80
    0725 F498      BCC	0x0739
(0331) 	{
(0332) 		x_address = x >> 3;
    0726 2D4C      MOV	R20,R12
    0727 9546      LSR	R20
    0728 9546      LSR	R20
    0729 9546      LSR	R20
(0333) 		y_address = y;
    072A 2F68      MOV	R22,R24
(0334) 		LCD_Write_Data(x_address,y_address,data | (1 << (x % 8)));
    072B E018      LDI	R17,0x8
    072C 2D0C      MOV	R16,R12
    072D 940E0A59  CALL	mod8u
    072F 2F10      MOV	R17,R16
    0730 E001      LDI	R16,1
    0731 940E0ACF  CALL	lsl8
    0733 2C2A      MOV	R2,R10
    0734 2A20      OR	R2,R16
    0735 8228      STD	Y+0,R2
    0736 2F26      MOV	R18,R22
    0737 2F04      MOV	R16,R20
    0738 DFC4      RCALL	_LCD_Write_Data
(0335) 	}
(0336) }
    0739 9621      ADIW	R28,1
    073A 940E0A77  CALL	pop_gset5

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品美女销魂一区二区三区| 一区二区三区四区不卡视频| 3d成人h动漫网站入口| 99这里都是精品| 国产99久久久精品| 丁香婷婷深情五月亚洲| 国产精品66部| 粉嫩高潮美女一区二区三区| 国产精品中文字幕日韩精品 | 国产91在线观看丝袜| 韩国成人在线视频| 国产精品综合一区二区三区| 国产不卡视频在线播放| 成人av综合在线| 91热门视频在线观看| 91成人免费在线| 欧美人牲a欧美精品| 这里只有精品免费| 久久久天堂av| 中文字幕亚洲一区二区va在线| 亚洲欧美综合另类在线卡通| 一卡二卡三卡日韩欧美| 石原莉奈一区二区三区在线观看| 免费不卡在线观看| 成人黄色电影在线| 99精品视频在线观看| 在线一区二区三区四区五区 | 日韩三级免费观看| 国产日韩欧美a| 亚洲香肠在线观看| 看电视剧不卡顿的网站| 高清不卡在线观看| 在线视频综合导航| 日韩欧美卡一卡二| 亚洲欧洲日韩女同| 奇米777欧美一区二区| 国产91在线看| 91精品国产综合久久久蜜臀粉嫩| 国产亚洲va综合人人澡精品| 亚洲女爱视频在线| 久久成人羞羞网站| 91免费观看视频在线| 日韩一区二区麻豆国产| 中文字幕日韩精品一区| 久久www免费人成看片高清| av一区二区三区在线| 欧美一级二级三级蜜桃| 亚洲日本乱码在线观看| 久久不见久久见中文字幕免费| 色域天天综合网| 国产日韩欧美在线一区| 蜜桃在线一区二区三区| 色综合天天性综合| 中文字幕国产精品一区二区| 免费成人在线视频观看| 在线观看日产精品| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美色网一区二区| 久久久久亚洲综合| 日韩中文字幕区一区有砖一区 | 国产精品久久久久一区二区三区 | 亚洲欧洲另类国产综合| 国内不卡的二区三区中文字幕 | 狠狠色丁香久久婷婷综合丁香| 在线观看免费亚洲| 中文字幕亚洲区| 国产精品99久久久久久久vr| 91精品国产欧美一区二区成人| 亚洲日本电影在线| 成人永久看片免费视频天堂| 精品国产乱码久久久久久夜甘婷婷| 亚洲综合另类小说| 91国产免费看| 亚洲成人av一区二区三区| 一本一道久久a久久精品| 中文字幕在线不卡视频| 处破女av一区二区| 欧美国产乱子伦| 成人免费观看av| 成人欧美一区二区三区白人| 国产精品亚洲а∨天堂免在线| 欧美mv和日韩mv的网站| 久久se这里有精品| 久久一日本道色综合| 国产自产2019最新不卡| 久久久亚洲高清| 成人永久看片免费视频天堂| 国产精品久久久久一区二区三区| gogogo免费视频观看亚洲一| 亚洲欧美日韩国产综合在线| 色综合中文字幕| 亚洲电影一级黄| 日韩一区二区三区电影| 久久99热99| 中文成人av在线| 91论坛在线播放| 天堂久久一区二区三区| 精品久久国产字幕高潮| 国产不卡免费视频| 亚洲日本免费电影| 91精品国产麻豆| 国产精品456露脸| 一二三区精品视频| 日韩亚洲欧美在线| 丰满少妇久久久久久久| 一区二区三区视频在线看| 欧美二区三区的天堂| 国产一区二区视频在线| 免费看精品久久片| 国产欧美日韩在线视频| 一本大道av一区二区在线播放| 日本美女一区二区三区| 国产精品理论在线观看| 6080午夜不卡| 成人h动漫精品一区二| 日韩主播视频在线| 亚洲婷婷国产精品电影人久久| 在线不卡免费欧美| 99久久久国产精品| 国产中文字幕精品| 亚洲国产精品久久人人爱蜜臀| 精品国产一区二区在线观看| 色婷婷综合中文久久一本| 狠狠网亚洲精品| 亚洲国产中文字幕在线视频综合| 国产日韩欧美综合一区| 日韩一区二区三区电影在线观看| 一本一本久久a久久精品综合麻豆| 蜜臀av一区二区在线免费观看| 国产精品免费视频网站| 欧美xfplay| 在线不卡中文字幕播放| 在线观看免费亚洲| 91在线高清观看| 福利91精品一区二区三区| 另类小说一区二区三区| 亚洲国产色一区| 亚洲欧美日本在线| 国产精品―色哟哟| 久久久久久久久久久久久久久99| 欧美精品自拍偷拍| 欧美三级蜜桃2在线观看| 99久久综合国产精品| 国产精品自在在线| 美腿丝袜在线亚洲一区 | 欧美日韩免费一区二区三区视频 | 一区二区三区四区五区视频在线观看| 欧美精品一区二区三区很污很色的| 欧美三级资源在线| 欧美性色黄大片| 欧美视频日韩视频在线观看| 色国产综合视频| 在线观看国产精品网站| 欧美制服丝袜第一页| 色婷婷国产精品久久包臀| 99久久精品免费看国产免费软件| 国产成人亚洲精品青草天美| 国产乱理伦片在线观看夜一区| 久久se精品一区精品二区| 国产尤物一区二区| 国产精品一级黄| 成人国产视频在线观看| 9人人澡人人爽人人精品| 99国产欧美久久久精品| 色婷婷综合久久久久中文| 在线观看免费亚洲| 91精品国产欧美一区二区成人| 日韩欧美成人激情| 国产日韩欧美综合在线| 亚洲特级片在线| 亚洲线精品一区二区三区| 福利视频网站一区二区三区| 99久久免费视频.com| 欧美性猛交xxxx黑人交| 欧美色视频一区| 精品欧美一区二区在线观看| 久久色中文字幕| 亚洲欧美经典视频| 爽好多水快深点欧美视频| 久久99热这里只有精品| 成人短视频下载| 欧美日韩在线不卡| 精品国产凹凸成av人网站| 国产精品久久久久三级| 五月天国产精品| 国产精品91一区二区| 欧美在线免费观看亚洲| 日韩精品专区在线影院观看| 欧美激情中文不卡| 亚洲一区二区三区四区不卡| 精品午夜久久福利影院| 色综合久久久久综合体桃花网| 4438成人网| 亚洲视频一二三| 精品一区二区三区免费| 91美女精品福利| 精品欧美黑人一区二区三区| 综合久久给合久久狠狠狠97色| 免费看精品久久片| 在线视频一区二区三区|