- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JMP MAIN
;前进主程序
ORG 0030H
;主程序起始地址
MAIN:
MOV P1, #00000000B ;当P1.7=0时用于启动定时器开始定时
JB P3.7, AHEAD1 ;用遥控器的A键使P3.7=1启动程序,小车将进入第一次前进程序
SJMP MAIN
AHEAD1: MOV P1, #00001010B
L2A:
MOV R3,#255
L3A:
DJNZ R3,L3A
DJNZ R2,L2A
DJNZ R1,L1A
RET
h
20
END
JB P0.0, LEFT1 ;P0.0是左面传感器
JB P0.2, RIGHT1 ;P0.2是右面传感器
SJMP AHEAD1
LEFT1:
JB P0.2,STOP1A
MOV P1,#00001000B ;左传感器在中线上,向左转,左电机停右电机正常转
JNB P0.1,LEFT1
LJMP AHEAD1
DJNZ R2,L2A DJNZ #5,L1A RET
;延时10ms
h
7
寻迹小车的制作
h
8
h
9
1. 光电传感器
h
10
2. 电压比较器
h
11
3. 电机的控制
h
12
h
13
4. 小车的组装
h
14
h
15
h
16
h
17
5. 实例
h
18
h
19
ORG 0000H
;程序设计过程中没有使用中断
LCALL DELAY1
STOP1B: MOV P1,#00000000B ;停止
JB P3.7, RETURN1 ;用遥控器的A键重新启动,或也可采用机械开关或霍尔传感器等
SJMP STOP1B
RETURN1:L JMP AHEAD1
;进入MAIN
DELAY1:
L1A:
MOV R2,#50
;延时10ms
[标号]: 操作码 [目的操作数], [源操作数];注释
结合循迹小车的汇编语言程序,我们这样用到以下几 类汇编语言指令:
•数据传送指令
•位操作指令
•无条件转移指令 •条件转移指令
•调用子程序及返回指Βιβλιοθήκη Baidu 令
6
如何用汇编语言写一段延时程序:
DELAY1: L1A: MOV R2,#50 L2A: MOV R3,#255 L3A: DJNZ R3,L3A
RIGHT1: JB P0.0,STOP1A
MOV P1,#00000010B ;右传感器在中线上向右转
JNB P0.1,RIGHT1
LJMP AHEAD1
STOP1A: MOV P1,#00000101B ;停止前的制动,给电机施加定时宽度的反向电压,撤消定时脉冲
MOV R1,#5
;延时10ms×1=10ms
单片机基础知识
h
1
1. 什么是单片机?
AT89S52
h
2
2. 8051单片机
1) 最小系统
h
3
单片机需要正5V电源供电:
h
4
2) 汇编语言指令 当单片机采用12M外接晶振时:
振荡周期=1/12μs 时钟周期=1/6μs 机器周期=1μs 指令周期=1~4μs
h
5
一条汇编语言指令通常符合如下的格式: