📄 fs0.asm
字号:
;--------------------------------------------------------------
ADC EQU 35H ;
CLOCK BIT P2.3 ;定义ADC0808时钟位
ST BIT P2.0 ;
EOC BIT P2.1 ;
OE BIT P2.2 ;
;-------------------------------------------------------------
ORG 00H ;系统启动地址
SJMP START
;-------------------------------------------------------------
ORG 0BH ;定时器0中断口
LJMP INT_T0
;--------------------------------------------------------------
START: MOV TMOD,#02H ;定时器0 工作方式2
MOV TH0,#245 ;计10个数初值设置
MOV TL0,#245
MOV IE,#82H ;定时器TO开中断
SETB TR0 ;启动定时器
;----------------------------------------------------------------
WAIT: CLR ST ;启动AD转换
SETB ST
CLR ST ;如果没这句会怎么样???
;------------------------------------------------------------------
JNB EOC,$ ;等待转换结束
;-------------------------------------------------------------------
SETB OE ;转换后的数字值送 OUT
MOV ADC,P0 ;单片机 读取AD转换结果
LCALL CCC
CLR OE ;如果没这句会怎么样???
;------------------------------------------------------------------
LCALL DISPKAY1
MOV P1,ADC
SJMP WAIT
;-----------------------------------------------------------------
INT_T0: CPL CLOCK ;提供ADC0808时钟信号
;计算51单片机晶振12M,这时P2。3口产生的频率是多少?
RETI
CCC: MOV R0,ADC
MOV A,R0
MOV B,#100
DIV AB
MOV 40H,A
MOV A,B
MOV B,#10
DIV AB
MOV 41H,A
MOV 42H,B
RET
DISPKAY1:
CLR P2.5
MOV SP,#5FH
MOV SCON, #00H ;串行口方式0
CLR ES
SETB P2.4
MOV DPTR,# TABLE
MOV A,42H
;lcall DELAY
MOVC A,@A+DPTR
MOV SBUF,A ;发送
JNB TI,$
CLR TI
MOV DPTR,# TABLE
MOV A,41H
MOVC A,@A+DPTR
MOV SBUF,A ;发送
JNB TI,$
CLR TI
MOV DPTR,# TABLE
MOV A,40H
MOVC A,@A+DPTR
MOV SBUF,A ;发送
JNB TI,$
CLR TI
CLR P2.4 ;打开并行输出
SETB P2.5
RET
;DELAY: MOV R2,#0FAH
;L1: MOV R3,#0FAH
;L2: DJNZ R3,L2
; DJNZ R2,L1
; RET
TABLE: DB 0C0H,0F9H,0A4H,0B0H ; 0,1,2,3
DB 99H,92H,82H,0F8H ; 4,5,6,7
DB 80H,90H,01H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -