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

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

?? system.asm

?? 凌陽實驗箱的自檢程序
?? ASM
字號:
//====================================================================================//
// 文件名:    system.asm
// 描  述:   該文件的程序主要用于初始化SPCE061A和PDIUSBD12,以及對PDIUSBD12的讀寫操作
// 日  期:   2003/04/03
//====================================================================================//
.include hardware.inc; 
//for led
.public _F_TurnOnFirstLed
.public _F_TurnOffFirstLed
.public _F_TurnOnSecondLed
.public _F_TurnOffSecondLed
//for d12
.public _F_InitWriteD12
.public _F_InitReadD12
.public _F_ReadD12 
.public _F_WriteCmdOrDataToD12
//for system
.public _F_System_Initial
.public _F_Interrupt_On
.public _F_Delay
.public _F_Interrupt_Off

.define Fosc_CLK_RATE 	FoscCLK_49      //選擇不同Fosc信號頻率
.define CPU_CLK_RATE    CPUCLK_Fosc  	//改變CPUClk頻率

.code 	
//====================================================================
// 函  數:    F_System_Initial()
// 語  法:    void F_System_Initial(void) (for c)
// 描  述:    該函數用于初始化SPCE061A的中斷、時鐘、I/0、復位PDIUSBD12
//			  初始化:
//			  IOB0,IOB1為同相高電平輸出
//			  IOB2=INT_N=1為帶上拉電阻的輸入
//			  IOB3=RESET_N=1為同相高電平輸出
//            IOB8=CS_N=1同相高電平輸出
//            IOB6=ALE=0同相低電平輸出
//			  IOB5=WR_N=1為同相高電平輸出
//			  IOB4=RD_N=1為同相高電平輸出
// 參  數:   無  
// 返回值:   無
//=====================================================================
_F_System_Initial: .PROC
	    PUSH r1,r1 TO [sp];
	    INT OFF;
	    r1=0x0100; 				//開中斷IRQ3_EXT1
	    [P_INT_Ctrl]=r1; 
	    //[P_INT_Ctrl_New]=r1; 
	    r1=Fosc_CLK_RATE;       //
		r1|=CPU_CLK_RATE;       //設置系統時鐘      	
	    [P_SystemClock]=r1;	
	    
	    r1=0xFFFF;				//設置IOA為同相高電平輸出
	    [P_IOA_Dir]=r1;
	    [P_IOA_Attrib]=r1;
	    [P_IOA_Data]=r1;
	   	r1=0xFFF0;				//設置IOB的高12位為同相高電平輸出,低四位為上拉輸入
	    [P_IOB_Dir]=r1;
	    [P_IOB_Attrib]=r1;
	    r1=0xFFFF;
	    [P_IOB_Data]=r1;
	    CALL _F_USB_Io_Initial;   
	    POP r1,r1 FROM [sp];
	   	RETF; 
		.ENDP;
		
_F_USB_Io_Initial: .PROC

		PUSH r1,r1 TO [sp];
		
		r1 = [P_IOA_Dir];
		r1&=0x00FF; 
		[P_IOA_Dir]=r1;
		
		r1=[P_IOA_Attrib];
		r1&=0x00FF;				//設置IOA8-IOA15為帶上拉電阻地輸入
		[P_IOA_Attrib]=r1;
		
		r1=[P_IOA_Buffer];
		r1|=0xFF00;            
		[P_IOA_Buffer]=r1; 
	
		r1=[P_IOB_Dir];//IOB8低輸出,IOB6低輸出,IOB5、IOB4高輸出,IOB3高輸出,IOB2上拉輸入。
		r1|=0x0178;
		r1&=0xFFFD;
		[P_IOB_Dir]=r1;
		
		r1=[P_IOB_Attrib];
		r1|=0x0178;
		r1&=0xFFFD;
		[P_IOB_Attrib]=r1;
		
		r1=[P_IOB_Buffer];//IOB8=CS_N=0,IOB6=ALE=0,IOB5=WR_N=1,IOB4=RD_N=1,IOB3=RESET_N=0,IOB2=1
		r1|=0x0034; 
		R1&=0xFEF7;            
	    [P_IOB_Buffer]=r1;     

	    call F_Delay;//系統復位延時。
	    
	    r1=[P_IOB_Buffer];//IOB8=CS_N=0,IOB6=ALE=0,IOB5=WR_N=1,IOB4=RD_N=1,IOB3=RESET_N=0,IOB2=1
	    r1|=0x003C; 
		R1&=0xFEFF;            
	    [P_IOB_Buffer]=r1;

		POP  r1,r1 FROM [sp];
		RETF
		.ENDP
//====================================================================
// 函  數:    	F_Interrupt_On()
// 語  法:    	void F_Interrupt_On(void) (for c)
// 描  述:    	開中斷函數
// 參  數:   	無  
// 返回值:		無
// 使用寄存器:	無
//=====================================================================

_F_Interrupt_On: .PROC
F_Interrupt_On:
		int irq;
	    retf; 
		.endp; 
//====================================================================
// 函  數:    	F_Interrupt_Off()
// 語  法:    	void F_Interrupt_Off(void) (for c)
// 描  述:   	開中斷函數
// 參  數:   	無
// 返回值:   	無
// 使用寄存器:	無
//=====================================================================
_F_Interrupt_Off: .PROC
F_Interrupt_Off:
	    int off; 
	    retf;
		.endp; 

//====================================================================
// 函  數:    	F_Delay()
// 語  法:    	void F_Delay(void) (for c)
// 描  述:   	延時函數
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_Delay: .proc
F_Delay: 
	    push r1,r2 to [sp];
	    r2=0x000f;
	Loop1:
	    r1=0xffff;
	Loop2:    
	    r1-=1;
	    jnz Loop2;
	    r2-=1;
	    jnz Loop1;
	    nop;
	    pop r1,r2 from [sp];
	    retf;
		.endp

//====================================================================
// 函  數:    	F_TurnOffFirstLed()
// 語  法:    	void F_TurnOffFirstLed(void) (for c)
// 描  述:   	熄滅與IOA0相連的LED
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_TurnOffFirstLed: .proc
		push r1 to [sp];
		r1=[P_IOA_Buffer];
		r1&=0xFFFE;
		[P_IOA_Buffer]=r1;
		pop r1 from [sp];
		retf
		.endp


//====================================================================
// 函  數:    	F_TurnOffFirstLed()
// 語  法:    	void F_TurnOffFirstLed(void)
// 描  述:   	點亮與IOA0相連的LED
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_TurnOnFirstLed: .proc
		push r1 to [sp];
		r1=[P_IOA_Buffer];
		r1|=0x0001;
		[P_IOA_Buffer]=r1;
		pop r1 from [sp];
		retf;
		.endp

//====================================================================
// 函  數:    	SP_TurnOffFirstLed()
// 語  法:    	void SP_TurnOffFirstLed(void)
// 描  述:   	熄滅與IOA1相連的LED
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_TurnOffSecondLed: .proc
		push r1 to [sp];
		r1=[P_IOA_Buffer];
		r1&=0xFFFD;
		[P_IOA_Buffer]=r1;
		pop r1 from [sp];
		retf;
		.endp


//====================================================================
// 函  數:    	SP_TurnOffFirstLed()
// 語  法:    	void SP_TurnOffFirstLed(void)
// 描  述:   	點亮與IOA1相連的LED
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_TurnOnSecondLed: .proc
		push r1 to [sp];
		r1=[P_IOA_Buffer];
		r1|=0x0002;
		[P_IOA_Buffer]=r1;
		pop r1 from [sp];
		retf;
		.endp
		 
//====================================================================
// 函  數:    	F_InitWriteD12()
// 語  法:    	void F_TurnOffFirstLed(void)
// 描  述:   	初始化寫PDIUSBD12
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_InitWriteD12: .proc
		push r1,r1 to [sp];
		
		r1 = [P_IOA_Dir];
		r1|=0xFF00; 
		[P_IOA_Dir]=r1;
		
		r1=[P_IOA_Attrib];
		r1|=0xFF00;				//Port IOA15- IOA8: 同相高電平輸出
		[P_IOA_Attrib]=r1;
		
		r1=[P_IOA_Buffer];
		r1|=0xFF00;            
		[P_IOA_Buffer]=r1; 
		
		r1=[P_IOB_Buffer];//IOB8=CS_N=0,IOB6=ALE=0,IOB5=WR_N=1,IOB4=RD_N=1,IOB3=RESET_N=1,IOB2=1
		r1|=0x0034; 
		R1&=0xFEFF;            
	    [P_IOB_Buffer]=r1;  
   
        pop r1,r1 from [sp];
        retf ;
        .endp
//====================================================================
// 函  數:    	F_InitReadD12()
// 語  法:    	void F_InitReadD12(void)
// 描  述:   	初始化讀PDIUSBD12
// 參  數:   	無
// 返回值:   	無
//=====================================================================
_F_InitReadD12:          .PROC
		push r1,r1 to [sp];
 
 
 		r1 = [P_IOA_Dir];
		r1&=0x00FF; 
		[P_IOA_Dir]=r1;
		
		r1=[P_IOA_Attrib];
		r1|=0xFF00;				//Port IOA15- IOA8: 設置為懸浮式輸入input(FL)
		[P_IOA_Attrib]=r1;
		
		r1=[P_IOA_Buffer];
		r1&=0x00FF;            
		[P_IOA_Buffer]=r1; 
		
		r1=[P_IOB_Buffer];//IOB8=CS_N=0,IOB6=ALE=0,IOB5=WR_N=1,IOB4=RD_N=1,IOB3=RESET_N=1,IOB2=1
		r1|=0x0034; 
		R1&=0xFEFF;            
	    [P_IOB_Buffer]=r1;   
        pop r1,r1 from [sp]; 
        retf 
        .ENDP

//====================================================================
// 函  數:    	F_ReadD12()
// 語  法:    	void F_ReadD12(unsigned int D_Addr)
// 描  述:   	從PDIUSBD12讀數據
// 參  數:   	D_Addr:為偶地址0xff02
// 返回值:   	r1
//=====================================================================
_F_ReadD12:      .PROC
        push bp to [sp]; 
        bp = sp + 1 ;
        r1 = [bp+3] ;            // D12 Address
        call	F_ReadD12;       // r1: return value
        pop bp from [sp] ;
        retf ;
        .ENDP
           
F_ReadD12:
        push r2,r3 to [sp];
        
        r1 = r1 lsl 4;           // move 02  to IOA8-IOA15
        r1 = r1 lsl 4;  
        r2 = [P_IOA_Data];
        r2&= 0x00FF;
        r1|=r2;
        [P_IOA_Data] = r1;       // 送偶地址到D12
        
        r3=[P_IOB_Buffer];
        r3&=0xFEFF;				// CS_N=0, ALE=1,WR_N=1,RD_N=1;RESET_N=1,INT_N=1
        r3|=0x007C;
        [P_IOB_Buffer] = r3;     
        
        r3=[P_IOB_Buffer];
        r3&=0xFEBF;				// CS_N=0, ALE=0,WR_N=1,RD_N=1;RESET_N=1,INT_N=1
        r3|=0x003C;
        [P_IOB_Buffer] = r3;   
        
        r3=[P_IOB_Buffer];
        r3&=0xFEAF;				// CS_N=0, ALE=0,WR_N=1,RD_N=0;RESET_N=1,INT_N=1
        r3|=0x002C;
        [P_IOB_Buffer] = r3;   
        nop;
        r1 = [P_IOA_Data];       // Get data
        r1 = r1 lsr 4;           // Prepare high 8 bits Addr. to low 8 bits
        r1 = r1 lsr 4;           // Get low byte data
       
        r2 = [P_IOB_Buffer];
        r2 &=0xFEBF
        r2 |= 0x003C;             // CS_N=0,ALE=0,WR_N=1,RD_N=1 ;RESET_N=1,INT_N=1
        [P_IOB_Buffer] = r2;     // 
        
		pop r2,r3 from [sp];     // don't pop r1(return value)   
        retf ;
//===================================================================================================
// 函  數:    	F_WriteCmdOrDataToD12()
// 語  法:    	void F_WriteCmdOrDataToD12(unsigned int D_or_C_Addr,unsigned int Data_or_Command)
// 描  述:   	向PDIUSBD12寫數據或命令
// 參  數:   	D_or_C_Addr:地址參數;Data_or_Command:命令或數據參數
// 返回值:   	無
//===================================================================================================
_F_WriteCmdOrDataToD12: .PROC
        push bp to [sp] ;
        bp = sp + 1; 
        push r1,r2 to [sp];
        r1 = [bp+3];              // Address
        r2 = [bp+4] ;             // Data
        call	F_WriteCmdOrDataToD12;
        pop r1,r2 from [sp];
        pop bp from [sp] ;
        retf ;
        .ENDP
F_WriteCmdOrDataToD12:
        push r1,r3 to [sp];
        
        r1 = r1 lsl 4;
        r1 = r1 lsl 4; 
        r2 = r2 lsl 4;          // shift low 8 bits data to high 8 bits
        r2 = r2 lsl 4;          //       
        r3 = [P_IOA_Buffer];
        r3 &=0x00FF;
        r1 |=r3;
        [P_IOA_Buffer] = r1;      // move 02 or 03 Addr to IOA8-IOA15    
        
        r1 = [P_IOB_Buffer];
        r1&=0xFEFF;
        r1|=0x007C;              // CS_N=0,ALE=IOA7=1,WR_N=1,RD_N=1,RESET_N=1,INT_N=1
        [P_IOB_Buffer] = r1;      // ALE=1
        
        r1 = [P_IOB_Buffer];
        r1&=0xFEBF;
        r1|=0x003C;              // CS_N=0,ALE=0,WR_N=1,RD_N=1,RESET_N=1,INT_N=1
        [P_IOB_Buffer] = r1;      // 在ALE 下降沿的時候,D12鎖定地址;
        
		r1= [P_IOA_Buffer];
		r1&=0x00FF;
		r2|=r1;
        [P_IOA_Buffer] = r2;    // 準備數據寫入D12

        r1 = [P_IOB_Buffer];
        r1&=0xFE9F; 				// CS_N=0,ALE=0,WR_N=0,RD_N=1;RESET_N=1,INT_N=1
        r1|=0x001C
        [P_IOB_Buffer] = r1;      

		r1 = [P_IOB_Buffer];
		r1&=0xFEBF; 				// CS_N=0,ALE=0,WR_N=1,RD_N=1;RESET_N=1,INT_N=1
        r1|=0x003C
        [P_IOB_Buffer]=r1;


        pop r1,r3 from [sp];
        retf; 

.PUBLIC _F_Clear_WatchDog
_F_Clear_WatchDog:
		PUSH r1 TO [SP];
		r1=0x0001;
		[P_Watchdog_Clear]=r1;
		POP r1 FROM [SP];
		RETF;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国偷自产一区二区开放时间| 国产一区二区三区免费看| 亚洲摸摸操操av| 亚洲va国产天堂va久久en| 成人av影视在线观看| 在线视频综合导航| 国产亚洲综合在线| 日韩欧美国产精品一区| 亚洲美女电影在线| 久久免费偷拍视频| 六月婷婷色综合| 一区二区三区在线视频免费| 国产成人亚洲精品狼色在线 | 成人午夜精品在线| 久久精品国产网站| 亚洲www啪成人一区二区麻豆| 国产精品精品国产色婷婷| 日日夜夜免费精品视频| 老汉av免费一区二区三区| 国产精品久久久久久福利一牛影视| 日韩一区二区视频| 国产精品午夜免费| 99re亚洲国产精品| 亚洲国产美国国产综合一区二区| 国产精品欧美一区喷水| 亚洲国产精品高清| 在线免费观看日韩欧美| 色婷婷av一区二区三区之一色屋| 久久久另类综合| 久久久九九九九| 国产亚洲欧美日韩俺去了| 国产日韩欧美电影| 国产精品久久二区二区| **欧美大码日韩| 亚洲最大成人综合| 无码av中文一区二区三区桃花岛| 午夜视频一区在线观看| 青青草91视频| 黑人巨大精品欧美黑白配亚洲| 国产一区二区三区国产| 成人激情开心网| 在线国产亚洲欧美| 777xxx欧美| 国产伦精一区二区三区| 成人97人人超碰人人99| 欧美视频一区二区三区四区 | 老司机精品视频一区二区三区| 久久av资源站| 不卡视频在线观看| 欧美男生操女生| 久久色视频免费观看| 国产精品久久久久天堂| 午夜欧美视频在线观看| 国产一区二区女| 91色乱码一区二区三区| 亚洲成av人片| 久久99久国产精品黄毛片色诱| 激情欧美日韩一区二区| 一本一道久久a久久精品| 久久久久高清精品| 91精品在线一区二区| 国产精品乱码一区二三区小蝌蚪| 一区二区日韩av| 久久99精品国产麻豆婷婷洗澡| 国产乱人伦偷精品视频不卡 | 欧美无乱码久久久免费午夜一区 | 国产a精品视频| 欧美唯美清纯偷拍| 国产三级三级三级精品8ⅰ区| 亚洲一区二区三区爽爽爽爽爽| 激情综合一区二区三区| 在线观看av一区| 国产精品视频免费看| 日韩av在线播放中文字幕| 久久久久久电影| 午夜影院久久久| k8久久久一区二区三区 | 成人福利在线看| 日韩精品中文字幕在线不卡尤物| 亚洲欧美激情视频在线观看一区二区三区| 美女尤物国产一区| 国产在线观看免费一区| 欧美高清hd18日本| 亚洲电影一级片| 色偷偷88欧美精品久久久| 国产日韩欧美在线一区| 久久精品国产成人一区二区三区| 色综合久久精品| 一区在线中文字幕| 国产精品18久久久| 亚洲视频狠狠干| 国产剧情一区在线| 国产日产欧美一区二区视频| 激情六月婷婷久久| 欧美一级高清片| 日本在线不卡视频一二三区| 欧美性大战久久| ...av二区三区久久精品| 成人av电影免费在线播放| 国产偷国产偷精品高清尤物| 天涯成人国产亚洲精品一区av| 99国产欧美另类久久久精品| 国产欧美一区二区在线| 国产剧情av麻豆香蕉精品| 欧美一区二区三区四区在线观看 | 一区二区三区中文字幕在线观看| 精品一区二区在线观看| 精品久久国产字幕高潮| 免费在线观看视频一区| 日韩欧美一级在线播放| 国产自产高清不卡| 中文字幕不卡的av| 99视频一区二区| 亚洲主播在线播放| 7777精品伊人久久久大香线蕉| 午夜不卡av在线| 日韩你懂的在线观看| 午夜精品久久久| 在线亚洲一区二区| 午夜精品久久一牛影视| 7777精品伊人久久久大香线蕉完整版 | 日本一区二区免费在线| 成人性生交大合| 亚洲码国产岛国毛片在线| www.成人网.com| 国产精品成人免费在线| 99精品久久99久久久久| 日韩国产在线观看| 久久综合色婷婷| 色老汉一区二区三区| 三级欧美韩日大片在线看| 日韩欧美三级在线| 成人白浆超碰人人人人| 亚洲国产成人av| www国产成人| 91美女视频网站| 精品在线视频一区| 亚洲日本电影在线| 日韩视频123| 99久久久久久99| 日韩av电影免费观看高清完整版 | 欧美嫩在线观看| 韩日欧美一区二区三区| 亚洲欧美欧美一区二区三区| 日韩西西人体444www| 99久久er热在这里只有精品66| 青椒成人免费视频| 亚洲欧美激情在线| 久久色成人在线| 欧美日韩精品福利| 国产a视频精品免费观看| 日韩黄色在线观看| 亚洲免费视频中文字幕| 久久精品免费在线观看| 欧美久久久久免费| 91美女视频网站| 成人午夜av电影| 毛片av中文字幕一区二区| 亚洲同性同志一二三专区| 国产亚洲人成网站| 国产欧美日韩综合| 91精品国产品国语在线不卡| 在线免费观看成人短视频| 福利一区福利二区| 黄色小说综合网站| 激情综合一区二区三区| 日本午夜一区二区| 亚洲午夜免费电影| 亚洲视频一二三| 国产日韩欧美a| 91精品国产品国语在线不卡| 欧美三级乱人伦电影| 色av一区二区| 色综合天天综合狠狠| 欧美国产日韩一二三区| 精品精品欲导航| 久久影视一区二区| www激情久久| 久久久精品黄色| 国产午夜精品一区二区三区嫩草| 国产欧美一区二区精品性色| 亚洲欧美日韩小说| 日本免费在线视频不卡一不卡二| 久久疯狂做爰流白浆xx| 大陆成人av片| 欧美日韩免费在线视频| 久久人人97超碰com| 国产精品电影一区二区| 亚洲国产视频在线| 国产精品自拍毛片| 91极品美女在线| 久久久精品国产免大香伊 | av一区二区三区四区| 91行情网站电视在线观看高清版| 欧美久久久久久久久中文字幕| 久久久久免费观看| 亚洲精品国产精品乱码不99| 看电影不卡的网站| 91高清视频免费看| 国产午夜精品美女毛片视频|