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

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

?? avrstudy.lst

?? AVR學習開發(fā) 板
?? LST
?? 第 1 頁 / 共 5 頁
字號:
__text_start:
__start:
    016F E5CF      LDI	R28,0x5F
    0170 E0D4      LDI	R29,4
    0171 BFCD      OUT	0x3D,R28
    0172 BFDE      OUT	0x3E,R29
    0173 51C0      SUBI	R28,0x10
    0174 40D0      SBCI	R29,0
    0175 EA0A      LDI	R16,0xAA
    0176 8308      STD	Y+0,R16
    0177 2400      CLR	R0
    0178 ECE9      LDI	R30,0xC9
    0179 E0F2      LDI	R31,2
    017A E012      LDI	R17,2
    017B 3CE9      CPI	R30,0xC9
    017C 07F1      CPC	R31,R17
    017D F011      BEQ	0x0180
    017E 9201      ST	R0,Z+
    017F CFFB      RJMP	0x017B
    0180 8300      STD	Z+0,R16
    0181 E7E5      LDI	R30,0x75
    0182 E0F0      LDI	R31,0
    0183 E6A0      LDI	R26,0x60
    0184 E0B0      LDI	R27,0
    0185 E012      LDI	R17,2
    0186 3DEE      CPI	R30,0xDE
    0187 07F1      CPC	R31,R17
    0188 F021      BEQ	0x018D
    0189 95C8      LPM
    018A 9631      ADIW	R30,1
    018B 920D      ST	R0,X+
    018C CFF9      RJMP	0x0186
    018D D74F      RCALL	_main
_exit:
    018E CFFF      RJMP	_exit
_SendByte:
  i                    --> R20
  Dbyte                --> R16
    018F D981      RCALL	push_gset1
FILE: E:\AVR學習專區(qū)\AVR學習板\st7920iccavrmega8.c
(0001) /****************************************************************************************
(0002)            LCM(DM12864M-帶字庫,ST7920控制芯片)mega8控制顯示程序   
(0003) 		                                                
(0004)              程序功能:該程序是用AVR來控制對DM12864M
(0005) 			           讀寫信號等的操作.
(0006)              硬件連接:采用串行方式顯示,分配PB6=SID,PB7=SCK,PB1=LCD_ON
(0007) 			           三個I/O口分別作為LCM數據,時鐘信號,背光開關
(0008) 					   的控制。
(0009) 					   CS和/RESET直接接VCC;PSB直接接GND 
(0010) 					                                 作者:張國旗
(0011) 													 2008年12月29號       
(0012) ****************************************************************************************/
(0013) #define LCDDDR        DDRB
(0014) #define LCDDDR_IN     LCDDDR&=~BIT(PB6);
(0015) #define LCDDDR_OUT    LCDDDR|=BIT(PB1)|BIT(PB6)|BIT(PB7);
(0016) /*===============================================================*/
(0017) #define LCDCTL      PORTB   
(0018) #define SID_ON      LCDCTL |= BIT(PB6)  //數據                            
(0019) #define SID_OFF     LCDCTL &= ~BIT(PB6)  
(0020) #define SCK_ON      LCDCTL |= BIT(PB7)  //時鐘                          
(0021) #define SCK_OFF     LCDCTL &= ~BIT(PB7) 
(0022) #define LCD_ON      LCDCTL |= BIT(PB1)  //開啟背光
(0023) #define LCD_OFF     LCDCTL &= ~BIT(PB1)  
(0024) //#define uchar unsigned char
(0025) /***********************函數體部分*********************************/
(0026) unsigned char  AC_TABLE[]={
(0027) 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
(0028) 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
(0029) 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
(0030) 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
(0031) };
(0032) //=========發(fā)送一個字節(jié)程序=========
(0033) void SendByte(unsigned char Dbyte)
(0034) {
(0035)     unsigned char i;
(0036)     for(i=0;i<8;i++)
    0190 2744      CLR	R20
    0191 C009      RJMP	0x019B
(0037)  	{
(0038)   	 	if(Dbyte&0x80)SID_ON;
    0192 FF07      SBRS	R16,7
    0193 C002      RJMP	0x0196
    0194 9AC6      SBI	0x18,6
    0195 C001      RJMP	0x0197
(0039)   		else SID_OFF;
    0196 98C6      CBI	0x18,6
(0040)   		SCK_ON;
    0197 9AC7      SBI	0x18,7
(0041)   		SCK_OFF;
    0198 98C7      CBI	0x18,7
(0042)   		Dbyte=Dbyte<<1;
    0199 0F00      LSL	R16
    019A 9543      INC	R20
    019B 3048      CPI	R20,0x8
    019C F3A8      BCS	0x0192
    019D D976      RCALL	pop_gset1
    019E 9508      RET
_ReceiveByte:
  temp2                --> R16
  temp1                --> R18
  i                    --> R20
    019F D971      RCALL	push_gset1
(0043)  	}
(0044) }
(0045) //接收一個字節(jié)程序((0xf0&temp1)+(0x0f&temp2))
(0046) unsigned char ReceiveByte(void)  
(0047) {
(0048)     unsigned char i,temp1,temp2;
(0049)     temp1=temp2=0;
    01A0 2700      CLR	R16
    01A1 2722      CLR	R18
(0050)     for(i=0;i<8;i++)
    01A2 2744      CLR	R20
    01A3 C00B      RJMP	0x01AF
(0051)     {
(0052) 	    LCDDDR_IN;
    01A4 98BE      CBI	0x17,6
(0053) 		temp1=temp1<<1;
    01A5 0F22      LSL	R18
(0054)         if ((PINB&0x40)!=0)temp1++;  //與端口設置有關,主要修改端口時修改此位
    01A6 9BB6      SBIS	0x16,6
    01A7 C001      RJMP	0x01A9
    01A8 9523      INC	R18
(0055)     	LCDDDR_OUT;
    01A9 B387      IN	R24,0x17
    01AA 6C82      ORI	R24,0xC2
    01AB BB87      OUT	0x17,R24
(0056) 		SCK_ON;
    01AC 9AC7      SBI	0x18,7
(0057)   		SCK_OFF;
    01AD 98C7      CBI	0x18,7
    01AE 9543      INC	R20
    01AF 3048      CPI	R20,0x8
    01B0 F398      BCS	0x01A4
(0058)   	}
(0059)     for(i=0;i<8;i++)
    01B1 2744      CLR	R20
    01B2 C00B      RJMP	0x01BE
(0060)     {
(0061) 	    LCDDDR_IN;
    01B3 98BE      CBI	0x17,6
(0062) 		temp2=temp2<<1;
    01B4 0F00      LSL	R16
(0063)         if ((PINB&0x40)!=0)temp2++;  //與端口設置有關,主要修改端口時修改此位
    01B5 9BB6      SBIS	0x16,6
    01B6 C001      RJMP	0x01B8
    01B7 9503      INC	R16
(0064) 		LCDDDR_OUT;
    01B8 B387      IN	R24,0x17
    01B9 6C82      ORI	R24,0xC2
    01BA BB87      OUT	0x17,R24
(0065) 		SCK_ON;
    01BB 9AC7      SBI	0x18,7
(0066)   		SCK_OFF;
    01BC 98C7      CBI	0x18,7
    01BD 9543      INC	R20
    01BE 3048      CPI	R20,0x8
    01BF F398      BCS	0x01B3
(0067)     }
(0068)         return ((0xf0&temp1)+(0x0f&temp2));
    01C0 2F80      MOV	R24,R16
    01C1 708F      ANDI	R24,0xF
    01C2 2F02      MOV	R16,R18
    01C3 7F00      ANDI	R16,0xF0
    01C4 0F08      ADD	R16,R24
    01C5 D94E      RCALL	pop_gset1
    01C6 9508      RET
(0069) }
(0070) //液晶忙檢查CheckBusy
(0071) void CheckBusy( void )               
(0072) {
(0073)     do SendByte(0xfc);               //11111,RW(1),RS(0),0
_CheckBusy:
    01C7 EF0C      LDI	R16,0xFC
    01C8 DFC6      RCALL	_SendByte
(0074)     while(0x80&ReceiveByte());
    01C9 DFD5      RCALL	_ReceiveByte
    01CA FD07      SBRC	R16,7
    01CB CFFB      RJMP	_CheckBusy
    01CC 9508      RET
_WriteCommand:
  Cbyte                --> R20
    01CD D943      RCALL	push_gset1
    01CE 2F40      MOV	R20,R16
(0075) }
(0076) //========寫命令========
(0077) void WriteCommand( unsigned char Cbyte )
(0078) {
(0079) 	CheckBusy();
    01CF DFF7      RCALL	_CheckBusy
(0080)     SendByte(0xf8);           	    //11111,RW(0),RS(0),0
    01D0 EF08      LDI	R16,0xF8
    01D1 DFBD      RCALL	_SendByte
(0081)     SendByte(0xf0&Cbyte);
    01D2 2F04      MOV	R16,R20
    01D3 7F00      ANDI	R16,0xF0
    01D4 DFBA      RCALL	_SendByte
(0082)     SendByte(0xf0&Cbyte<<4);
    01D5 2F04      MOV	R16,R20
    01D6 700F      ANDI	R16,0xF
    01D7 9502      SWAP	R16
    01D8 7F00      ANDI	R16,0xF0
    01D9 DFB5      RCALL	_SendByte
    01DA D939      RCALL	pop_gset1
    01DB 9508      RET
_WriteData:
  Dbyte                --> R20
    01DC D934      RCALL	push_gset1
    01DD 2F40      MOV	R20,R16
(0083) }
(0084) //========寫數據========
(0085) void WriteData( unsigned char Dbyte )
(0086) {
(0087)     CheckBusy();
    01DE DFE8      RCALL	_CheckBusy
(0088)     SendByte(0xfa);           		//11111,RW(0),RS(1),0
    01DF EF0A      LDI	R16,0xFA
    01E0 DFAE      RCALL	_SendByte
(0089)     SendByte(0xf0&Dbyte);
    01E1 2F04      MOV	R16,R20
    01E2 7F00      ANDI	R16,0xF0
    01E3 DFAB      RCALL	_SendByte
(0090)     SendByte(0xf0&Dbyte<<4);
    01E4 2F04      MOV	R16,R20
    01E5 700F      ANDI	R16,0xF
    01E6 9502      SWAP	R16
    01E7 7F00      ANDI	R16,0xF0
    01E8 DFA6      RCALL	_SendByte
    01E9 D92A      RCALL	pop_gset1
    01EA 9508      RET
(0091) }
(0092) //========讀數據========
(0093) unsigned char ReadData( void )
(0094) {
(0095)     CheckBusy();
_ReadData:
    01EB DFDB      RCALL	_CheckBusy
(0096)     SendByte(0xfe);           		//11111,RW(1),RS(1),0
    01EC EF0E      LDI	R16,0xFE
    01ED DFA1      RCALL	_SendByte
(0097)     return ReceiveByte();
    01EE DFB0      RCALL	_ReceiveByte
    01EF 9508      RET
_Delay:
  usn                  --> R20
  us                   --> R22
  MS                   --> R16
    01F0 D91E      RCALL	push_gset2
(0098) }
(0099) //===延時程序 ,12M/ms==
(0100) void Delay(unsigned int MS)
(0101) {
    01F1 C00C      RJMP	0x01FE
(0102)     unsigned char us,usn;
(0103)     while(MS!=0)             		//for 12M
(0104)     { 
(0105) 	    usn = 2;
    01F2 E042      LDI	R20,2
    01F3 C006      RJMP	0x01FA
(0106)     	while(usn!=0)
(0107)         {
(0108)             us=0xf5;
    01F4 EF65      LDI	R22,0xF5
    01F5 C001      RJMP	0x01F7
(0109)             while (us!=0){us--;};
    01F6 956A      DEC	R22
    01F7 2366      TST	R22
    01F8 F7E9      BNE	0x01F6
(0110)             usn--;
    01F9 954A      DEC	R20
    01FA 2344      TST	R20
    01FB F7C1      BNE	0x01F4
(0111)         }
(0112)         MS--;
    01FC 5001      SUBI	R16,1
    01FD 4010      SBCI	R17,0
    01FE 3000      CPI	R16,0
    01FF 0701      CPC	R16,R17
    0200 F789      BNE	0x01F2
    0201 D8FF      RCALL	pop_gset2
    0202 9508      RET
(0113)     }
(0114) }
(0115) //=====液晶初始化======
(0116) void LcmInit( void )          
(0117) {
(0118)     WriteCommand(0x30); //基本指令,選擇8位CPU控制方式,關圖顯
_LcmInit:
    0203 E300      LDI	R16,0x30
    0204 DFC8      RCALL	_WriteCommand
(0119)     WriteCommand(0x03); //復位地址計數器
    0205 E003      LDI	R16,3
    0206 DFC6      RCALL	_WriteCommand
(0120)     WriteCommand(0x0C); //開整體顯示
    0207 E00C      LDI	R16,0xC
    0208 DFC4      RCALL	_WriteCommand
(0121)     WriteCommand(0x01); //清除屏顯的數據
    0209 E001      LDI	R16,1
    020A DFC2      RCALL	_WriteCommand
(0122)     WriteCommand(0x06); //設置地址計數器遞增
    020B E006      LDI	R16,6
    020C DFC0      RCALL	_WriteCommand
    020D 9508      RET
(0123) }
(0124) //=======清文字========
(0125) void LcmClearTXT( void )     
(0126) {
(0127)     LcmInit();
_LcmClearTXT:
    020E DFF4      RCALL	_LcmInit
    020F 9508      RET
_LcmClearBMP:
  i                    --> R20
  j                    --> R22
    0210 D8FE      RCALL	push_gset2
(0128) }
(0129) //=======清圖片========
(0130) void LcmClearBMP( void )    
(0131) {
(0132)     unsigned char i,j;
(0133)     WriteCommand(0x34);		 	//關圖顯
    0211 E304      LDI	R16,0x34
    0212 DFBA      RCALL	_WriteCommand
(0134)     for(i=0;i<32;i++)
    0213 2744      CLR	R20
    0214 C00D      RJMP	0x0222
(0135)     {
(0136)         WriteCommand(0x80|i);	//寫入列地址
    0215 2F04      MOV	R16,R20
    0216 6800      ORI	R16,0x80
    0217 DFB5      RCALL	_WriteCommand
(0137)         WriteCommand(0x80);  	//寫入行地址
    0218 E800      LDI	R16,0x80
    0219 DFB3      RCALL	_WriteCommand
(0138)         for(j=0;j<32;j++)
    021A 2766      CLR	R22
    021B C003      RJMP	0x021F
(0139)         WriteData(0);
    021C 2700      CLR	R16
    021D DFBE      RCALL	_WriteData
    021E 9563      INC	R22
    021F 3260      CPI	R22,0x20
    0220 F3D8      BCS	0x021C
    0221 9543      INC	R20
    0222 3240      CPI	R20,0x20
    0223 F388      BCS	0x0215
    0224 D8DC      RCALL	pop_gset2
    0225 9508      RET
_PutStr:
  puts                 --> R20
  col                  --> R22
  row                  --> R10
    0226 D8E6      RCALL	push_gset3
    0227 2F62      MOV	R22,R18
    0228 2EA0      MOV	R10,R16
    0229 814E      LDD	R20,Y+6
    022A 815F      LDD	R21,Y+7
(0140)     }
(0141) 	//WriteCommand(0x36);//開圖顯
(0142) }
(0143) //==寫入一段文字,寫完一屏,清屏,從頭在寫新的一屏=======
(0144) void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
(0145) {
(0146)     WriteCommand(0x30);	  		//基本指令,選擇8位CPU控制方式,關圖顯
    022B E300      LDI	R16,0x30
    022C DFA0      RCALL	_WriteCommand
(0147)     WriteCommand(AC_TABLE[8*row+col]);
    022D E088      LDI	R24,0x8
    022E 9D8A      MUL	R24,R10
    022F 01F0      MOVW	R30,R0
    0230 2E26      MOV	R2,R22

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
乱一区二区av| 国产精品国产馆在线真实露脸| 亚洲欧美经典视频| 色综合天天在线| 亚洲国产一区视频| 91精品国产综合久久久久久 | 91视频91自| 中文字幕日韩av资源站| 91福利视频久久久久| 亚洲mv在线观看| 日韩精品自拍偷拍| 国产福利91精品一区| 国产精品久久久久久久久图文区 | 88在线观看91蜜桃国自产| 丝袜美腿亚洲色图| 日韩欧美精品在线视频| 国产成人免费高清| 亚洲精品乱码久久久久久| 欧美日本高清视频在线观看| 国产一区二区三区在线看麻豆| 欧美极品aⅴ影院| 色悠悠久久综合| 蜜桃精品视频在线观看| 欧美成人一区二区三区在线观看 | 国产超碰在线一区| 亚洲美女免费视频| 777奇米四色成人影色区| 男人操女人的视频在线观看欧美| 久久―日本道色综合久久| 91网上在线视频| 蜜桃精品视频在线| 亚洲欧美日韩综合aⅴ视频| 欧美一级专区免费大片| 成人夜色视频网站在线观看| 亚洲国产cao| 精品电影一区二区三区 | 精品一区二区国语对白| 中文字幕一区二区三区乱码在线| 欧美人妖巨大在线| 成人一区二区三区中文字幕| 日韩电影免费在线| 自拍偷自拍亚洲精品播放| 日韩一区二区三免费高清| 成人高清视频在线观看| 麻豆国产91在线播放| 亚洲欧美国产三级| 久久一夜天堂av一区二区三区| 91国模大尺度私拍在线视频| 国产精品88av| 久久精品国产久精国产爱| 一区二区日韩av| 中文成人av在线| 精品国产免费一区二区三区香蕉| 91免费小视频| 国产大陆精品国产| 久久国产成人午夜av影院| 亚洲桃色在线一区| 中文无字幕一区二区三区| 欧美一级视频精品观看| 欧美午夜精品一区二区蜜桃| 97久久人人超碰| 懂色av一区二区夜夜嗨| 六月丁香综合在线视频| 日韩高清不卡在线| 亚洲国产美国国产综合一区二区 | 中文字幕在线不卡一区| 精品少妇一区二区三区在线播放| 欧美日韩亚洲另类| 欧美亚洲一区二区在线观看| aaa国产一区| 99国产精品久久久久| 成人午夜精品在线| 国产大陆精品国产| 成人在线视频首页| 成人午夜免费电影| 成人av电影免费观看| 北条麻妃一区二区三区| 成人一区二区三区中文字幕| 国产成人精品三级| 国产a级毛片一区| 国产91精品免费| 暴力调教一区二区三区| 91色.com| 欧美亚洲日本国产| 欧美日韩国产区一| 欧美一区二区三区视频在线| 日韩天堂在线观看| 久久天堂av综合合色蜜桃网| 久久久国产精华| 中国色在线观看另类| 国产精品第五页| 一区二区三区精密机械公司| 亚洲主播在线观看| 日本成人在线电影网| 亚洲一二三四久久| 国产精品77777| 中文字幕一区av| 久久久99精品免费观看不卡| 成人激情小说乱人伦| 日韩精品福利网| 久久成人免费网| voyeur盗摄精品| 欧美在线free| 日韩一区二区在线看| 国产网站一区二区| 亚洲精品日韩一| 日韩福利电影在线| 国产99久久久国产精品潘金网站| 9久草视频在线视频精品| 欧洲色大大久久| 精品国产一区二区三区久久久蜜月 | 国产清纯白嫩初高生在线观看91| 一色屋精品亚洲香蕉网站| 亚洲福利一区二区| 国产精品一区三区| 欧美亚洲综合另类| 久久久美女艺术照精彩视频福利播放| 日本一区二区三区国色天香| 亚洲成a天堂v人片| 国产一区福利在线| 欧美伊人精品成人久久综合97| 精品日韩99亚洲| 亚洲精品免费一二三区| 欧美aaaaaa午夜精品| 99精品久久久久久| 日韩欧美在线1卡| 亚洲免费三区一区二区| 六月丁香综合在线视频| 日本韩国精品在线| 国产日产欧产精品推荐色| 亚洲综合久久久久| 成人精品鲁一区一区二区| 91麻豆精品国产91久久久更新时间 | 丝袜亚洲另类欧美| 成人精品一区二区三区四区 | 亚洲欧美乱综合| 国产呦精品一区二区三区网站| 91九色最新地址| 欧美日韩国产成人在线免费| 偷拍一区二区三区| 成人精品国产一区二区4080| 8v天堂国产在线一区二区| 一个色在线综合| 欧美自拍偷拍一区| 亚洲男人都懂的| 不卡高清视频专区| 欧美一区二视频| 丝袜亚洲精品中文字幕一区| 91麻豆国产香蕉久久精品| 国产女人18毛片水真多成人如厕| 蜜桃av一区二区在线观看| 欧美三级视频在线| 人禽交欧美网站| 日韩视频不卡中文| 国产a久久麻豆| 亚洲欧美综合色| 在线精品视频一区二区| 亚洲尤物视频在线| 欧美一区二区视频在线观看2020| 亚洲一区二区美女| 日韩视频一区二区在线观看| 久久成人久久鬼色| 国产精品国产三级国产有无不卡 | 欧美精品一二三区| 五月天久久比比资源色| wwwwww.欧美系列| 精品少妇一区二区三区日产乱码| 91尤物视频在线观看| 天堂一区二区在线| 欧美亚一区二区| 久久99精品国产麻豆不卡| 欧美精品一区二区三区很污很色的 | 一本色道久久综合亚洲91| 国产校园另类小说区| 国内外成人在线视频| 久久综合五月天婷婷伊人| 九九九久久久精品| 精品动漫一区二区三区在线观看| 久久爱另类一区二区小说| 日韩欧美一二三四区| 看电视剧不卡顿的网站| 99re成人精品视频| 看电视剧不卡顿的网站| 亚洲欧美另类综合偷拍| 欧美精品一区二区三区高清aⅴ| 91麻豆产精品久久久久久| 91小视频免费观看| 麻豆成人久久精品二区三区红| 中文字幕精品三区| 26uuu亚洲综合色欧美| 在线精品亚洲一区二区不卡| 大白屁股一区二区视频| 日本不卡1234视频| 97精品国产97久久久久久久久久久久 | av影院午夜一区| 中文字幕一区二区三区不卡| 在线观看免费一区| 免费看日韩精品| 国产欧美一区二区在线| 91成人国产精品|