授课日期 班次 授课时数 2
课题,任务七 单片机计数教学目的:掌握汇编语言程序的组成熟悉常用的伪指令重点,常用的伪指令难点,无教具,多媒体作业,4.2 4.4
自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程:一、复习提问
1,MCS-51有哪几类指令?
二、新授由任务七:按钮控制灯引入本次课内容
1.任务描述
2.硬件电路与工作原理
3.程序设计
4.相关知识
1) 什么是伪指令?
2)有哪些常用伪指令?
5.课堂小结课后小结:
任务描述,利用实验开发板上的 555振荡电路产生的 4HZ的脉冲信号进行计数,要求每计十个数单灯向左移动一次
4.1 任务七 单片机计数
4.1.1 硬件电路与工作原理
1 2 3 4
A
B
C
D
4321
D
C
B
A T i t l e
N u m b e r R e v i s i o nS i z e
O r c a d A
D a t e,1 5 - J u l - 2 0 0 5 S h e e t o f
F i l e,C,\ D o c u m e n t s a n d S e t t i n g s \ A d m i n i s t r a t o r \ 桌面 \ M y D e s i g n,d d bD r a w n B y,
E A / V P
31
X1
19
X2
18
R E S E T
9
RD
17
WR
16
I N T 0
12
I N T 1
13
T0
14
T1
15
P 1 0
1
P 1 1
2
P 1 2
3
P 1 3
4
P 1 4
5
P 1 5
6
P 1 6
7
P 1 7
8
P 0 0
39
P 0 1
38
P 0 2
37
P 0 3
36
P 0 4
35
P 0 5
34
P 0 6
33
P 0 7
32
P 2 0
21
P 2 1
22
P 2 2
23
P 2 3
24
P 2 4
25
P 2 5
26
P 2 6
27
P 2 7
28
P S E N
29
A L E / P
30
T X D
11
R X D
10
U3
X T A L 1 1,0 5 9 2 M
C2
3 3 P
C1
3 3 P
T R I G
2
Q
3
R
4
C V o l t
5
T H R
6
D I S
7
V
C
C
8
GND
1
U4
V C C
L
1
M
2
R
3
J P 1
S3
R 1 9
4 7 0
R 2 0
1 0 0 K
R 2 1
1 0 0 K
N E 5 5 5
C7
1 u F / 1 6 V
C8
1 0 4
D9
L E D
R 1 8
2 0 0
C9
1 0 4
C L K
V C C
S3
1、硬件电路
4.1 任务七 单片机计数
2、工作原理说明:
555振荡电路产生约 4HZ的脉冲信号,经 S3点接到 单片机 P3.4输入端,注意应将跳线 JP1下面的两个端子( M与 R) 短接。
MCS-51单片机内部有两个 16位的定时 /计数器,都可以用于对外部事件进行计数。外部计数脉冲从 P3.4或 P3.5端口输人,
程序设置 定时 /计数器工作在计数状态即可以对外部事件进行计数。
4.1 任务七 单片机计数
4.1.2 控制程序
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN,MOV TMOD,#06H
MOV TH0,#0F6H
MOV TL0,#0F6H
SETB TR0
MOV A,#0FEH
LOOP,MOV P1,A
JBC TF0,MLOOP
SJMP LOOP
MLOOP,RL A
SJMP LOOP
END
4.1.3源程序的编辑、编译、下载
4.1 任务七 单片机计数
4.1.4 相关知识
什么是伪指令?
随着单片机的广泛应用和开发以装置功能的不断完善与发展,汇编语言源程序都借助系统机( PC等)进行编辑、汇编和调试。因此,
在编制汇编语言源程序时,常需应用伪指令。伪指令又称汇编程序控制译码指令,属说明性汇编指令。“伪”字体现在汇编时不产生机器指令代码,不影响程序的执行,仅产生供汇编时用的某些命令,
在汇编时执行某些特殊操作。
有哪些常用伪指令?
不同的单片机及其开发装置所定义的伪指令不全相同。下面介绍几种常用的伪指令
4.1 任务七 单片机计数
标号赋值伪指令
标号等值伪指令 —— EQU
格式,〈 标号,〉 EQU〈 表达式 〉
指令的含义为本语句的标号等值于表达式,亦即将表达式值赋予标号。这里的标号和表达式是必不可少的。
例如:
TTY,EQU 1080H
本语句向汇编程序指明,标号 TTY已于前句赋值为 1080H,则相当于 LOOP1=TTY=10802H,在程序中 LOOP1和 TTY两个标号可以互相使用。用 EOU语句给一个标号赋值以后,在整个源程序中该标号的值是固定而不能更改的。
4.1 任务七 单片机计数
定义标号值伪指令 —— DL
格式,〈 标号,〉 DL〈 表达式 〉
其含义是定义该标号的值为表达式值,同样,标号和表达式是不可缺少的。
例如:
COUNT1,DL 2300H ;定义 COUNT1=2300H
COUNT2,DL COUNT1+1 ;定义 COUNT2=2300H+1
由上可见,DL和 EQU的功能都是将表达成值赋给标叼,但两者有区别,用 DL语句可在同一源程序中对同一标号多次赋值,即可更改已定义的标号值;而用 EQU语句则只能给标号一次赋值,而后在整个源程序中再不能更改
4.1 任务七 单片机计数
数据存储说明伪指令数据存储说明伪指令的作用是将数据存储器单元中。
定义字节数据伪指令 —— DB或 DEGB
格式,〈 标号,〉 DB〈 表达式或表达式串 〉
式中表达式或表达式串是指一个字节或用逗号隔开的一个字节数据。其含义是将表达式或表达式串所指定的字节数据存入从标号开始的连续存储单元中。标号为可选项,它表示数据存入程序存储器的起始地址。
例如:
SECON,DB02H,36H,74H,0B4H,OFFH,…
上述语句表示将字节数据串按顺序存篇幅 标号 SECON所指示的地址为起始顺序存储单元中。
作为本语句操作数控部分的表达式或表达式串,可以是数据表达式、
ASCII码字符串、字节数据,字节数据串(其字节串长度限制在 80B的数据内)。
4.1 任务七 单片机计数
定义字数据伪指令 —— DW或 DEFW
格式,〈 标号,〉 DW〈 表达式或表达式串 〉
本语句的含义是将作为操作部分的字数据( 2B)或字数据串存入由标号指定的首地址按顺序连续单元中,定义字为为双字节的数据。在执行汇编时,计算机会自动按高位字节在前、低位字节在后的顺序格式存入程序存储器单元中例如:
ABC,DW 1234H,4567H,0A5C4H,…
汇编执行时第一个字节的 12H存入标号 ABC所指示的存储单元,34H存入( ABC) +1单元中,其余按此顺序将后续字节数据存入对应的存储单元中,如标号 ABC定义为 1000H,则上例汇编后:( 1000H) =12H,
( 1001H) =34H,( 1002H) =45H,… 。
4.1 任务七 单片机计数
存储区说明伪指令 —— DS
格式,〈 标号,〉 DS〈 表达式 〉
其含义是以标号的值为首地址保留表达式所指定的若干存储单元空间作为备用。
例如:
BASE,DS0100H
汇编后,程序存储器从标号 BASE为首地址开始,空出 256个存储单元,以备另用。
4.1 任务七 单片机计数
程序起始地址伪指令 —— ORG
格式,ORG〈 表达式 〉
其含义是指定下面目标程序的起始地址为表达式值。表达式常为一个双字节地址数。
例如:
ORG 0100H
START,MOV A,#00H
汇编号,从 START开始的目标程序,其起始地址从 0100H开始。由于表达式 0100H是立即型地址码所以隐含地指明该程序段属绝对地址段。
一个源程序中,可能有多处设置程序段起始地址,因此定义地址空间应从低地址端向高地址设置,不能重叠,否则将出错。若程序段前无
ORG伪指令,则汇编后的目标程序将从 0000H地址开始或紧接前段程序后。若表达式为浮动程序段中定义过的标号,则由该标号定义的目标程序段首地址也将之浮动。
4.1 任务七 单片机计数
汇编结束伪指令 —— END
END伪指令是汇编语言源程序结束为标志 。 源程序在汇编过程中执行完 END伪指令,即结束伪指令,为调试方便,可根据调试需要而设置 。
它有两种格式:
格式 1,〈 标号,〉 END〈 表达式 〉
格式 2,〈 标号,〉 END
或者 END
其中标号不是必需的,有无表达式的区别在于前者在汇编结束后立即转向由表达式指定的起始地址开始执行程序。因此,只需在程序运行的入口处和 END后的表达式以同一个标号设置,当汇编完源程序后就自动转向由标号指定的入口处开始执行。表达式也可以入口入的绝对地址,后者则汇编结束后立即停机。
课堂小结:
1、任务七的硬件电路与工作原理
2、控制程序
3、什么是伪指令?
4、有哪些常用伪指令?
作业:
P103 4.2 4.4