最新单片机设计实例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RET
DL10MS:MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
DL05S:MOV R4,#0AH
LOOP3: LCALL DL10MS
DJNZ R4,LOOP3
RET
DL30S:MOV R5,#03H
LOOP4:LCALL DL05S
DJNZ R5,LOOP4
STAR1:MOV P3,#0FFH
JNB P3.0,FUN0
JNB P3.1,FUN1
JNB P3.2,FUN2
JNB P3.3,FUN3 ;关闭按纽
JNB F0,STAR1 ;曾经有键按下F0置1
RET
;
FUN0:LCALL DL10MS ;消岸抖动
JB P3.0,STAR1
WAITL0:JNB P3.0,WAITL0 ;等待键释放
SETB F0
FUN01:LCALL FUN00
LCALL STAR1
LJMP FUN01
;
FUN1:LCALL DL10MS ;消岸抖动
JB P3.1,STAR1
WAITL1:JNB P3.1,WAITL1 ;等待键释放
SETB F0
FUN10:LCALL FUN11
LCALL STAR1
LJMP FUN10
;时间计数单元在70H—71H(秒)、76H—77H(分)、78H—79H(时),7AH单元放熄灭符(#0AH)
;计数单元采用BCD码计数,定时器T0设置为50MS溢出中断,为秒计数用,定时器T1为调整时闪烁用
;P3.7为调整按钮,P1口 为字符输出口,采用共阳显示管。
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6.10遥控小汽车的设计
6.11汽车行驶信息的发送与接收
«Skip Record If...»
;************;
;亮灯控制程序;
;************;
;
;************;
;中断入口程序;
;************;
;
ORG 0000H
LJMP START
ORG 0003H
RETI
单片机设计实例
应用程序设计实例
浙江海洋学院楼然苗
6.1闪烁LED小灯的设计
6.2六位数码管时钟电路的设计
6.3 LED广告显示电路的设计
6.4 8路输入模拟信号的数值显示电路
6.5单键学习型遥控器的设计
6.6十六路遥控电路的设计
6.7遥控码的仿真应用设计
6.8自行车里程\速度计的设计
6.9自动往返行驶小汽车的设计
ORG 002BH
RETI
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
START: MOV R0, #70H
MOV R7, #0BH
MOV 20H, #00H
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
;
;************;
; 初始化程序 ;
;************;
;
CLEAR: RET
;
;************;
; 主 程 序 ;
;************;
;源自文库
START:ACALL CLEAR
;
INTT0: PUSH ACC
PUSH PSW
CLR ET0
CLR TR0
MOV A,#0B7H ;中断同步修正
ADD A,TL0
MOV TL0,A
MOV A,#3CH
ADD A,TH0
MOV TH0,A
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
LJMP INTT0
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
;
FUN2:LCALL DL10MS ;消岸抖动
JB P3.2,STAR1
WAITL2:JNB P3.2,WAITL2 ;等待键释放
SETB F0
FUN20:LCALL FUN22
LCALL STAR1
LJMP FUN20
;
FUN3:LCALL DL10MS ;消岸抖动
JB P3.3,STAR1
WAITL3:JNB P3.3,WAITL3 ;等待键释放
CLEARDISP: MOV @R0, #00H
INC R0
DJNZ R7,CLEARDISP
MOV 7AH,#0AH
MOV TMOD,#11H
MOV TL0, #0B0H
MOV TH0, #3CH
MOV TL1, #0B0H
MOV TH1, #3CH
SETB EA
SETB ET0
SETB TR0
MOV R4,#14H
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AT89C2051时钟程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示缓冲单元在70H—75H,70H—71H显示秒,72H—73H显示分,74H—75H显示时
CLR F0
MOV P1,#0FFH ;关显示
LJMP STAR1
;
FUN00:MOV A,#0FEH
FUN000:MOV P1,A
LCALL DL05S
JNB ACC.7,OUT
RL A
AJMP FUN000
OUT: RET
;
FUN11:MOV A,#0FEH
FUN111:MOV P1,A
LCALL DL05S
start1: LCALL DISPLAY
JNB P3.7,SETMM1
SJMP Start1
SETMM1: LJMPSETMM
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1秒定时 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JZ OUT
RL A
ANL A,P1
AJMP FUN111
;
FUN22:MOV A,#0AAH
MOV P1,A
LCALL DL30S
CPL A
MOV P1,A
LCALL DL30S
RET
;
;************;
; 延时程序 ;
;************;
;
DL512:MOV R2,#0FFH
LOOP1: DJNZ R2,LOOP1
DL10MS:MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
DL05S:MOV R4,#0AH
LOOP3: LCALL DL10MS
DJNZ R4,LOOP3
RET
DL30S:MOV R5,#03H
LOOP4:LCALL DL05S
DJNZ R5,LOOP4
STAR1:MOV P3,#0FFH
JNB P3.0,FUN0
JNB P3.1,FUN1
JNB P3.2,FUN2
JNB P3.3,FUN3 ;关闭按纽
JNB F0,STAR1 ;曾经有键按下F0置1
RET
;
FUN0:LCALL DL10MS ;消岸抖动
JB P3.0,STAR1
WAITL0:JNB P3.0,WAITL0 ;等待键释放
SETB F0
FUN01:LCALL FUN00
LCALL STAR1
LJMP FUN01
;
FUN1:LCALL DL10MS ;消岸抖动
JB P3.1,STAR1
WAITL1:JNB P3.1,WAITL1 ;等待键释放
SETB F0
FUN10:LCALL FUN11
LCALL STAR1
LJMP FUN10
;时间计数单元在70H—71H(秒)、76H—77H(分)、78H—79H(时),7AH单元放熄灭符(#0AH)
;计数单元采用BCD码计数,定时器T0设置为50MS溢出中断,为秒计数用,定时器T1为调整时闪烁用
;P3.7为调整按钮,P1口 为字符输出口,采用共阳显示管。
;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6.10遥控小汽车的设计
6.11汽车行驶信息的发送与接收
«Skip Record If...»
;************;
;亮灯控制程序;
;************;
;
;************;
;中断入口程序;
;************;
;
ORG 0000H
LJMP START
ORG 0003H
RETI
单片机设计实例
应用程序设计实例
浙江海洋学院楼然苗
6.1闪烁LED小灯的设计
6.2六位数码管时钟电路的设计
6.3 LED广告显示电路的设计
6.4 8路输入模拟信号的数值显示电路
6.5单键学习型遥控器的设计
6.6十六路遥控电路的设计
6.7遥控码的仿真应用设计
6.8自行车里程\速度计的设计
6.9自动往返行驶小汽车的设计
ORG 002BH
RETI
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
START: MOV R0, #70H
MOV R7, #0BH
MOV 20H, #00H
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
;
;************;
; 初始化程序 ;
;************;
;
CLEAR: RET
;
;************;
; 主 程 序 ;
;************;
;源自文库
START:ACALL CLEAR
;
INTT0: PUSH ACC
PUSH PSW
CLR ET0
CLR TR0
MOV A,#0B7H ;中断同步修正
ADD A,TL0
MOV TL0,A
MOV A,#3CH
ADD A,TH0
MOV TH0,A
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
LJMP INTT0
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
;
FUN2:LCALL DL10MS ;消岸抖动
JB P3.2,STAR1
WAITL2:JNB P3.2,WAITL2 ;等待键释放
SETB F0
FUN20:LCALL FUN22
LCALL STAR1
LJMP FUN20
;
FUN3:LCALL DL10MS ;消岸抖动
JB P3.3,STAR1
WAITL3:JNB P3.3,WAITL3 ;等待键释放
CLEARDISP: MOV @R0, #00H
INC R0
DJNZ R7,CLEARDISP
MOV 7AH,#0AH
MOV TMOD,#11H
MOV TL0, #0B0H
MOV TH0, #3CH
MOV TL1, #0B0H
MOV TH1, #3CH
SETB EA
SETB ET0
SETB TR0
MOV R4,#14H
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AT89C2051时钟程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示缓冲单元在70H—75H,70H—71H显示秒,72H—73H显示分,74H—75H显示时
CLR F0
MOV P1,#0FFH ;关显示
LJMP STAR1
;
FUN00:MOV A,#0FEH
FUN000:MOV P1,A
LCALL DL05S
JNB ACC.7,OUT
RL A
AJMP FUN000
OUT: RET
;
FUN11:MOV A,#0FEH
FUN111:MOV P1,A
LCALL DL05S
start1: LCALL DISPLAY
JNB P3.7,SETMM1
SJMP Start1
SETMM1: LJMPSETMM
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1秒定时 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JZ OUT
RL A
ANL A,P1
AJMP FUN111
;
FUN22:MOV A,#0AAH
MOV P1,A
LCALL DL30S
CPL A
MOV P1,A
LCALL DL30S
RET
;
;************;
; 延时程序 ;
;************;
;
DL512:MOV R2,#0FFH
LOOP1: DJNZ R2,LOOP1