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

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

?? dm12864m串行.s

?? EEPROM讀寫程序: 先向EEPROM寫入一幅圖片數據
?? S
?? 第 1 頁 / 共 2 頁
字號:
	.module dm12864m串行.c
	.area text(rom, con, rel)
	.dbfile E:\學習專區\AVR專區\個人創作區\AVR單片機開發平臺\EEPROM讀寫演示程序\dm12864m串行.c
	.dbfunc e dm12864_inputbyte _dm12864_inputbyte fV
;            mid -> R20
;              i -> R22
;           comm -> R16
	.even
_dm12864_inputbyte::
	xcall push_gset2
	.dbline -1
	.dbline 33
; /****************************************************************************************
;            LCM(DM12864M-帶字庫,ST7920控制芯片)顯示程序   
; 		                                                
;              程序功能:該程序是用AVR來控制對DM12864M
; 			           讀寫信號等的操作.
;              硬件連接:采用串行方式顯示,分配PA.0,PA.1,PA.2
; 			           三個I/O口分別作為LCM片選CS,數據SID,時鐘信
; 					   號CLK的控制。PA3置為低電平,用來串行選擇信號。
; 		                PA4置位時開啟背光。                                           
;  
; ****************************************************************************************/
; 
; #include <iom16v.h>
; #include <macros.h>
; #include <stdio.h>  
; #define LCDDDR        DDRA
; #define LCDDDR_IN     LCDDDR&=~BIT(PA1);
; #define LCDDDR_OUT    LCDDDR|=BIT(PA0)|BIT(PA1)|BIT(PA2)|BIT(PA3)|BIT(PA4);
; /*===============================================================*/
; #define LCDCTL      PORTA   
; #define LCD_RS_H    LCDCTL |= BIT(PA0)  //片選               
; #define LCD_RS_L    LCDCTL &= ~BIT(PA0)                                           
; #define LCD_RW_H    LCDCTL |= BIT(PA1)  //數據                            
; #define LCD_RW_L    LCDCTL &= ~BIT(PA1)  
; #define LCD_EN_H    LCDCTL |= BIT(PA2)  //時鐘                          
; #define LCD_EN_L    LCDCTL &= ~BIT(PA2) 
; #define LCD_PSB     LCDCTL &= ~BIT(PA3) //串行選擇
; #define LCD_AK      LCDCTL |= BIT(PA4)  //開啟背光
; #define  uchar unsigned char
; /***********************函數體部分*********************************/
; 
; void dm12864_inputbyte(uchar comm)  // 寫入一字節數據
; {
	.dbline 36
;  	 uchar i;
; 	 uchar mid;
; 	 for (i=0;i<8;i++)
	clr R22
	xjmp L5
L2:
	.dbline 37
; 	 {
	.dbline 38
; 	  	 mid=comm&0x80;
	mov R20,R16
	andi R20,128
	.dbline 39
; 		 if (mid==0)
	brne L6
	.dbline 40
; 		 LCD_RW_L ;
	cbi 0x1b,1
	xjmp L7
L6:
	.dbline 42
; 		 else
; 		 LCD_RW_H ;
	sbi 0x1b,1
L7:
	.dbline 43
	sbi 0x1b,2
	.dbline 45
	cbi 0x1b,2
	.dbline 46
	lsl R16
	.dbline 47
L3:
	.dbline 36
	inc R22
L5:
	.dbline 36
	cpi R22,8
	brlo L2
	.dbline -2
L1:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r mid 20 c
	.dbsym r i 22 c
	.dbsym r comm 16 c
	.dbend
	.dbfunc e dm12864_outputbyte _dm12864_outputbyte fc
;              i -> R16
;            mid -> R18
	.even
_dm12864_outputbyte::
	.dbline -1
	.dbline 50
; 		 LCD_EN_H ;
; 		 //delay(15);
; 		 LCD_EN_L; 
; 		 comm=comm<<1;
; 	  }
; }
; uchar dm12864_outputbyte(void)  //讀取一字節數據
; {
	.dbline 51
;  	  uchar i,mid=0;
	clr R18
	.dbline 52
; 	  for (i=0;i<8;i++)
	clr R16
	xjmp L12
L9:
	.dbline 53
; 	  {
	.dbline 55
; 	   	  //delay(15);
;  		  LCDDDR_IN;
	cbi 0x1a,1
	.dbline 55
	.dbline 56
; 		  LCD_RS_H ;
	sbi 0x1b,0
	.dbline 57
; 		  mid=mid<<1;
	lsl R18
	.dbline 58
; 		  if ((PINA&0x02)==0)
	sbic 0x19,1
	rjmp L13
	.dbline 59
; 		  mid&=~BIT(PD0);
	andi R18,254
	xjmp L14
L13:
	.dbline 61
; 		  else
; 		  mid|=BIT(PD0);
	ori R18,1
L14:
	.dbline 62
	in R24,0x1a
	ori R24,31
	out 0x1a,R24
	.dbline 62
	.dbline 63
	sbi 0x1b,2
	.dbline 65
	cbi 0x1b,2
	.dbline 66
L10:
	.dbline 52
	inc R16
L12:
	.dbline 52
	cpi R16,8
	brlo L9
	.dbline 67
;  		  LCDDDR_OUT;
; 		  LCD_EN_H ;
; 		  //delay(15);
; 		  LCD_EN_L; 
; 	 }
; 	 return(mid);
	mov R16,R18
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbsym r mid 18 c
	.dbend
	.dbfunc e DetectLCMBusyState _DetectLCMBusyState fV
;             BF -> R20
	.even
_DetectLCMBusyState::
	xcall push_gset1
	.dbline -1
	.dbline 72
; }
; 
; /*-----------------讀取標志位,判斷控制器是否為忙狀態--------------*/
; void DetectLCMBusyState()
; {
	.dbline 73
;   	 char BF = 0x00;
	clr R20
	.dbline 74
;   	 LCDDDR_OUT;
	in R24,0x1a
	ori R24,31
	out 0x1a,R24
	.dbline 74
	.dbline 75
; 	 LCD_RS_H ;
	sbi 0x1b,0
	.dbline 76
; 	 LCD_EN_L ;
	cbi 0x1b,2
L16:
	.dbline 78
; 	 do
;     {
	.dbline 79
; 	   dm12864_inputbyte(0xfc);
	ldi R16,252
	xcall _dm12864_inputbyte
	.dbline 80
; 	   BF=dm12864_outputbyte();
	xcall _dm12864_outputbyte
	mov R20,R16
	.dbline 81
L17:
	.dbline 81
;     } while(BF==0x80);
	cpi R20,128
	breq L16
	.dbline 82
; 	LCD_RS_L ;
	cbi 0x1b,0
	.dbline 83
; 	LCD_EN_H ;
	sbi 0x1b,2
	.dbline -2
L15:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r BF 20 c
	.dbend
	.dbfunc e LCMWriteCommand _LCMWriteCommand fV
;              b -> R20
;              a -> R22
;     DisplayCmd -> R20
	.even
_LCMWriteCommand::
	xcall push_gset2
	mov R20,R16
	.dbline -1
	.dbline 89
; 	//delay(15);
; }
; 
; /*----------------------------寫入命令-----------------------------*/
; void LCMWriteCommand(char DisplayCmd)
; {
	.dbline 91
;  	 uchar a,b;
; 	 a=DisplayCmd&0xf0;
	mov R22,R20
	andi R22,240
	.dbline 92
; 	 b=(DisplayCmd<<4)&0xf0;
	mov R24,R20
	andi R24,#0x0F
	swap R24
	andi R24,240
	mov R20,R24
	.dbline 93
;  	 LCDDDR_OUT;
	in R24,0x1a
	ori R24,31
	out 0x1a,R24
	.dbline 93
	.dbline 94
; 	 LCD_RS_H ;
	sbi 0x1b,0
	.dbline 95
; 	 LCD_EN_L ;
	cbi 0x1b,2
	.dbline 96
; 	 dm12864_inputbyte(0xf8);
	ldi R16,248
	xcall _dm12864_inputbyte
	.dbline 97
; 	 dm12864_inputbyte(a);
	mov R16,R22
	xcall _dm12864_inputbyte
	.dbline 98
; 	 dm12864_inputbyte(b);
	mov R16,R20
	xcall _dm12864_inputbyte
	.dbline 99
; 	 LCD_EN_H ;
	sbi 0x1b,2
	.dbline 100
; 	 LCD_RS_L ;
	cbi 0x1b,0
	.dbline -2
L19:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r b 20 c
	.dbsym r a 22 c
	.dbsym r DisplayCmd 20 c
	.dbend
	.dbfunc e LCMWriteData _LCMWriteData fV
;              b -> R20
;              a -> R22
;    DisplayData -> R20
	.even
_LCMWriteData::
	xcall push_gset2
	mov R20,R16
	.dbline -1
	.dbline 106
; 	 //delay(15);
; }
; 
; /*-----------------------寫入一字節數據--------------------------*/
; void LCMWriteData(char DisplayData)
; {
	.dbline 108
;  	 uchar a,b;
; 	 a=DisplayData&0xf0;
	mov R22,R20
	andi R22,240
	.dbline 109
; 	 b=(DisplayData<<4)&0xf0;
	mov R24,R20
	andi R24,#0x0F
	swap R24
	andi R24,240
	mov R20,R24
	.dbline 110
;  	 LCDDDR_OUT;
	in R24,0x1a
	ori R24,31
	out 0x1a,R24
	.dbline 110
	.dbline 111
; 	 LCD_RS_H ;
	sbi 0x1b,0
	.dbline 112
; 	 LCD_EN_L ;
	cbi 0x1b,2
	.dbline 113
; 	 dm12864_inputbyte(0xfa);
	ldi R16,250
	xcall _dm12864_inputbyte
	.dbline 114
; 	 dm12864_inputbyte(a);
	mov R16,R22
	xcall _dm12864_inputbyte
	.dbline 115
; 	 dm12864_inputbyte(b);
	mov R16,R20
	xcall _dm12864_inputbyte
	.dbline 116
; 	 LCD_EN_H ;
	sbi 0x1b,2
	.dbline 117
; 	 LCD_RS_L ;
	cbi 0x1b,0
	.dbline -2
L20:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r b 20 c
	.dbsym r a 22 c
	.dbsym r DisplayData 20 c
	.dbend
	.dbfunc e LCMSetXYAddress _LCMSetXYAddress fV
;     DisplayRow -> R22
;     DisplayCol -> R20
	.even
_LCMSetXYAddress::
	xcall push_gset2
	mov R22,R18
	mov R20,R16
	.dbline -1
	.dbline 123
; 	 //delay(15);
; }
; 
; /*------------設置顯示位置DisplayCol(1~8),DisplayRow(1~4)---------*/
; void LCMSetXYAddress(char DisplayCol,char DisplayRow)
; {
	.dbline 124
;     switch(DisplayRow)
	clr R23
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	breq L25
	cpi R22,2
	ldi R30,0
	cpc R23,R30
	breq L26
	cpi R22,3
	ldi R30,0
	cpc R23,R30
	breq L27
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	breq L28
	xjmp L22
X0:
	.dbline 125
;     {
L25:
	.dbline 126
;         case 1:LCMWriteCommand(0x7f + DisplayCol);
	mov R16,R20
	subi R16,129    ; addi 127
	xcall _LCMWriteCommand
	.dbline 127
;         break;
	xjmp L23
L26:
	.dbline 128
;         case 2:LCMWriteCommand(0x8f + DisplayCol);
	mov R16,R20
	subi R16,113    ; addi 143
	xcall _LCMWriteCommand
	.dbline 129
;         break;
	xjmp L23
L27:
	.dbline 130
;         case 3:LCMWriteCommand(0x87 + DisplayCol);
	mov R16,R20
	subi R16,121    ; addi 135
	xcall _LCMWriteCommand
	.dbline 131
;         break;
	xjmp L23
L28:
	.dbline 132
;         case 4:LCMWriteCommand(0x97 + DisplayCol);
	mov R16,R20
	subi R16,105    ; addi 151
	xcall _LCMWriteCommand
	.dbline 133
; 	    break;
L22:
L23:
	.dbline -2
L21:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r DisplayRow 22 c
	.dbsym r DisplayCol 20 c
	.dbend
	.dbfunc e LCMDisplayASC _LCMDisplayASC fV
;   ASCCharacter -> y+4
;     DisplayRow -> R22
;     DisplayCol -> R20
	.even
_LCMDisplayASC::

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频一区视频二区在线观看| 18成人在线视频| 欧美无砖专区一中文字| www.亚洲色图.com| www.日韩av| av资源站一区| 91视频www| 在线国产电影不卡| 欧美在线综合视频| 在线不卡一区二区| 日韩一级二级三级| 精品久久人人做人人爽| 久久精品一区蜜桃臀影院| 久久久噜噜噜久久人人看 | 亚洲美女淫视频| 亚洲色图色小说| 一区二区三区在线视频观看58| 亚洲欧美日韩在线| 日韩精品色哟哟| 国产精品一区二区三区网站| 成人一道本在线| 欧美怡红院视频| 精品少妇一区二区三区| 欧美国产日韩在线观看| 亚洲九九爱视频| 男女男精品视频| 成人久久视频在线观看| 欧美亚洲高清一区二区三区不卡| 91精品婷婷国产综合久久性色| 欧美tk—视频vk| 亚洲裸体xxx| 男人的天堂亚洲一区| 国产成人免费av在线| 欧美性生交片4| 国产网站一区二区| 亚洲高清视频中文字幕| 国产黄色成人av| 7777精品伊人久久久大香线蕉超级流畅 | 精品国产一区二区三区不卡| 欧美国产日本韩| 免费高清视频精品| zzijzzij亚洲日本少妇熟睡| 91精品国产乱码久久蜜臀| 国产精品你懂的在线| 日本成人在线网站| 色综合久久久久| 欧美一区二区三区思思人| 中文字幕中文乱码欧美一区二区 | 国产精品卡一卡二| 麻豆传媒一区二区三区| 色综合天天天天做夜夜夜夜做| 欧美一级二级在线观看| 一区二区三区四区视频精品免费 | 日韩一级片在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 欧美亚洲动漫精品| 亚洲国产成人午夜在线一区| 青青草精品视频| 欧美色图激情小说| 亚洲视频免费观看| 丁香激情综合国产| 国产亚洲精久久久久久| 午夜精品一区二区三区电影天堂| 懂色av一区二区在线播放| 久久综合九色综合欧美就去吻| 日本成人在线视频网站| 欧美一区二区视频免费观看| 亚洲欧美日韩一区| 91小视频在线观看| 国产精品家庭影院| 国产成人综合精品三级| 久久精品一区八戒影视| 国产一区二区在线看| 欧美成人乱码一区二区三区| 香蕉久久一区二区不卡无毒影院| 欧美系列亚洲系列| 亚洲图片有声小说| 欧美日韩三级视频| 日韩中文欧美在线| 91精品国产欧美日韩| 日本欧美大码aⅴ在线播放| 9191国产精品| 九一九一国产精品| 久久精品视频在线免费观看| 国产成人a级片| 中文字幕亚洲综合久久菠萝蜜| 成人高清免费观看| 亚洲视频电影在线| 欧美日韩精品欧美日韩精品一 | 国产精品一区二区在线播放 | 日韩精品电影在线| 日韩欧美一区二区在线视频| 国内成人精品2018免费看| 久久嫩草精品久久久久| 国产99久久久国产精品潘金| 中文字幕av一区二区三区| 日本高清不卡在线观看| 视频一区视频二区中文| 国产欧美日本一区二区三区| 91在线国产福利| 免费观看一级特黄欧美大片| 久久久另类综合| 欧美综合色免费| 蜜桃久久av一区| 国产精品美日韩| 欧美高清你懂得| 国产成人在线视频网站| 亚洲综合在线电影| 精品久久一区二区三区| 色久综合一二码| 国内精品国产三级国产a久久| 亚洲欧洲美洲综合色网| 日韩一区二区高清| 99综合电影在线视频| 青草av.久久免费一区| 国产精品女主播在线观看| 日韩美女视频在线| 一本色道综合亚洲| 精品一区二区影视| 一区二区三区高清不卡| 国产午夜亚洲精品午夜鲁丝片| 欧美日韩一区中文字幕| 粉嫩欧美一区二区三区高清影视| 亚洲第一二三四区| 18涩涩午夜精品.www| 国产香蕉久久精品综合网| 日韩一区二区三| 在线观看视频欧美| 白白色亚洲国产精品| 精品亚洲国产成人av制服丝袜| 亚洲成人中文在线| 亚洲视频图片小说| 亚洲国产精品高清| 精品国产亚洲在线| 欧美一区二区三区在线电影| 欧美偷拍一区二区| 99久久精品国产导航| 国产成人精品免费| 国产在线精品一区在线观看麻豆| 亚洲成人一二三| 亚洲高清免费视频| 亚洲电影中文字幕在线观看| 亚洲啪啪综合av一区二区三区| 久久婷婷色综合| 欧美刺激午夜性久久久久久久| 欧美日韩国产精品自在自线| 色综合中文字幕国产| 国产一区二区精品在线观看| 日韩综合一区二区| 夜夜操天天操亚洲| 亚洲一二三区在线观看| 亚洲综合一二三区| 伊人夜夜躁av伊人久久| 一区二区三区中文字幕精品精品| 国产精品二区一区二区aⅴ污介绍| 久久久久久久久蜜桃| 久久久亚洲国产美女国产盗摄 | 欧美国产禁国产网站cc| 国产午夜精品久久| 国产女主播一区| 中文欧美字幕免费| 亚洲欧美综合另类在线卡通| 成人免费小视频| 亚洲午夜久久久| 日韩中文字幕一区二区三区| 免费久久99精品国产| 国产一区二区不卡在线 | 99久久99久久精品免费观看| 成人激情视频网站| 日本高清不卡在线观看| 欧美日韩mp4| 精品蜜桃在线看| 国产精品高潮久久久久无| 一区二区三区中文字幕精品精品| 天天操天天综合网| 韩国v欧美v日本v亚洲v| av在线播放不卡| 欧美电影影音先锋| 久久青草国产手机看片福利盒子| 国产女同互慰高潮91漫画| 亚洲欧美日本在线| 蓝色福利精品导航| 99热在这里有精品免费| 欧美日韩视频一区二区| 久久久亚洲高清| 亚洲成国产人片在线观看| 国产在线麻豆精品观看| 在线观看成人小视频| 欧美成人aa大片| 亚洲精品高清在线| 国产精品一线二线三线| 欧美性受xxxx| 日本一区二区三区在线观看| 午夜精品久久久久久久| 高清beeg欧美| 欧美va亚洲va| 午夜精品影院在线观看| 91在线观看地址| 国产日本欧美一区二区| 日本不卡高清视频|