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

📄 cca.c.txt

📁 本文介绍了AT89C2051单片机的性能和特点
💻 TXT
字号:
;/////////////////////////////////////////////////////// 
; USE BY :超声波测距器    laosong
; IC :AT89C51 
; TEL : 
; OSCCAL :XT (12M) 
; display :共阳LED显示 
;  www.jinjubao.cn (仅供参考)
;///////////////////////////////////////////////////////
;测距范围0.27-4M,堆栈在4FH以上,20H用于标志
;显示缓冲单元在40H-43H,使用内存44H、45H、46H用于计算距离
;
VOUT EQU P1.0 ; 红外脉冲输出端口
speak equ p1.1
;********************************************
;* 中断入口程序 *
;********************************************
;
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0
ORG 000BH
reti
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI 
;
;********************************************
;* 主 程 序 *
;********************************************
;
START: MOV SP,#4FH
MOV R0,#40H ;40H-43H为显示数据存放单元(40H为最高位)
MOV R7,#0BH
CLEARDISP: MOV @R0,#00H
INC R0
DJNZ R7,CLEARDISP
MOV 20H,#00H
MOV TMOD,#11H ;T1为 T0为16位定时器
MOV TH0,#00H ;65毫秒初值
MOV TL0,#00H
MOV TH1,#00H 
MOV TL1,#00H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#04H ;超声波肪冲个数控制(为赋值的一半)
SETB PX0
SETB ET1
SETB EA
SETB TR1 ;开启测距定时器
start1: LCALL DISPLAY
JNB 00H,START1 ;收到反射信号时标志位为1
CLR EA
LCALL WORK ;计算距离子程序
clr EA 
MOV R2,#32h;#64H ;测量间隔控制(约4*100=400MS)
LOOP: LCALL DISPLAY
DJNZ R2,LOOP 
CLR 00H
setb et0
mov th0,00h
mov tl0,00h
SETB TR1 ;重新开启测距定时器
SETB EA
SJMP Start1
;
****************************************************

见光盘
;****************************************************
;* 距离计算程序 (=计数值*17/1000cm) *
;****************************************************
;
work: PUSH ACC
PUSH PSW
PUSH B
MOV PSW, #18h
MOV R3, 45H
MOV R2, 44H
MOV R1, #00D
MOV R0, #17D
LCALL MUL2BY2
MOV R3, #03H
MOV R2, #0E8H
LCALL DIV4BY2
LCALL DIV4BY2
MOV 40H, R4
MOV A,40H
JNZ JJ0
MOV 40H,#0AH ;最高位为零,不点亮
JJ0: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #100D
LCALL DIV4BY2
MOV 41H, R4
MOV A,41H
JNZ JJ1
MOV A,40H ;次高位为0,先看最高位是否为不亮
SUBB A,#0AH
JNZ JJ1
MOV 41H,#0AH ;最高位不亮,次高位也不亮
JJ1: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #10D
LCALL DIV4BY2
MOV 42H, R4
MOV A,42H
JNZ JJ2
MOV A,41H ;次次高位为0,先看次高位是否为不亮
SUBB A,#0AH
JNZ JJ2
MOV 42H,#0AH ;次高位不亮,次次高位也不亮
JJ2: MOV 43H, R0
POP B
POP PSW
POP ACC
RET
END

超声波测距学习板全部元件清单: 
C6 330P 
C7 104 
C8 104 
C9 473 
C10 3.3UF/25V 
C11 104 
C15 470UF/25V 
C16 470UF/25V 
C17 3.3UF/25V 
C19 3.3UF/25V 
C20 20P 
C25 20P
D1 (电源指示灯) φ3 LED(红色) 
D2 206 桥堆
DS1 0.5 寸数码管
DS2 0.5 寸数码管
DS3 0.5 寸数码管
DS4 0.5 寸数码管
J3( POWER) 电源插座
J4 CX20106 
LS1 [TX(F)] 超声波发射管
LS4 [RX(S)] 超声波接收管
LS3(SPEAK) +5V 有源蜂鸣器
Q1 9012
Q2 9012 
Q3 9012 
Q4 9012 
Q6 9012 
R8 1K 
R9 1K 
R10 2K 
R11 2K 
R12 2K 
R13 2K 
R14 4.7 
R15 200K 
R16 220K 
R17 1K 
R18 1K 
R19 1K 
R20 1K 
R25 1K 
R26 1K 
R28 1K 
R29 1K 
R30 1K 
R31 2K 
R32 10K 
RL1 排阻A103 
S1(K1) 12X12 按键
S2(K2) 12X12 按键
S3(K3) 12X12 按键
S4(K4) 12X12 按键
S10(RST) 6X6 按键
XT1 12MHZ 
U7 7805 

⌨️ 快捷键说明

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