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

📄 e.asm

📁 汇编程序(cygnal c8051f021)
💻 ASM
字号:
$INCLUDE(C8051F020.INC)
BIT_COUNT DATA 07FH
TIMER     DATA 07EH
TIMER1    DATA 07DH
TEN       DATA 07CH
DATA_IN   DATA 020H
DATAOUT  DATA 021H
								
LOAD BIT P1.2
CLK BIT  P1.3
DAT BIT  P1.1
           ORG 0000H
					 JMP START
					 ORG 0100H
START:      mov   WDTCN, #0deh            ; disable watchdog timer
            mov   WDTCN, #0adh
            mov   OSCXCN, #67h            ; enable external crystal
                                          ; oscillator at 22.1184MHz

            clr   A                       ; wait at least 1ms 
            djnz  acc, $                  ;  wait ~512us
            djnz  acc, $                  ;  wait ~512us

osc_wait:                                 ; poll for XTLVLD-->1
            mov   a, OSCXCN
            jnb   acc.7, osc_wait

            orl   OSCICN, #08h            ; select external oscillator as 
                                          ; system clock source
            orl   OSCXCN, #80h            ; enable missing clock detector


				 MOV XBR2,#040H
				 MOV P1MDOUT,#0FFH
				 
CODES:   CLR LOAD
				 MOV DATAOUT,#09H
         LCALL SEND
				 MOV DATAOUT,#0FFH
				 LCALL SEND//DECODE MODEL
				 SETB LOAD
				 CLR LOAD
				 MOV DATAOUT,#0AH
				 LCALL SEND
				 MOV DATAOUT,#04H
				 LCALL SEND//QIANG DU
				 SETB LOAD
				 CLR LOAD
				 MOV DATAOUT,#0BH
				 LCALL SEND
				 MOV DATAOUT,#01H
				 LCALL SEND//XIAN SAO MIAO
				 SETB LOAD
				 CLR LOAD
				 MOV DATAOUT,#0CH
				 LCALL SEND
				 MOV DATAOUT,#01H
				 LCALL SEND//GONGZUO
				 SETB LOAD
				 CLR LOAD
				 MOV DATAOUT,#0FH
				 LCALL SEND
				 MOV DATAOUT,#00H
			   LCALL SEND //TEST
				 SETB LOAD
				 CLR LOAD
				 MOV DATAOUT,#01H
				 LCALL SEND
				 MOV DATAOUT,#00H
				 LCALL SEND//SCREEN BIT 1,0
				 SETB LOAD
				 CLR LOAD
				 MOV DATAOUT,#02H
				 LCALL SEND
				 MOV DATAOUT,#01H
				 LCALL SEND//SCREEN 2,P
				 SETB LOAD
			
				 CALL DELAY1S
				 CLR LOAD
				 MOV DATAOUT,#0CH
				 ACALL SEND
				 MOV DATAOUT,#00H
				 ACALL SEND//END
         SETB LOAD
				 AJMP MMM

SEND:      MOV BIT_COUNT,#8 
           CLR CLK
SENDLOOP:  MOV C,DATAOUT.7
					 MOV DAT,C
					 SETB CLK
					 MOV A,DATAOUT
					 RL A
					 MOV DATAOUT,A
					 CLR CLK
					 DJNZ BIT_COUNT,SENDLOOP
					 RET
DELAY1S:	  MOV TIMER,#200          ;延时约1S 
DELAY10:    MOV TIMER1,#20
DELAY11:  	CLR A      //DELAY 1 SECOND
						DJNZ ACC,$
						DJNZ ACC,$
							 
						DJNZ TIMER1,DELAY11
						DJNZ TIMER,DELAY10
            RET
				    		 
DELAY0:  MOV TIMER1,#255
DELAY1:  DJNZ TIMER1,DELAY1
         DJNZ TIMER,DELAY0
				 RET
MMM:	  AJMP MMM
        NOP
				RET
				END

⌨️ 快捷键说明

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