首页 理论教育零起点学习单片机编程:六个宏指令程序操作案例

零起点学习单片机编程:六个宏指令程序操作案例

【摘要】:在上面已经介绍了简易汇编的概念和“宏”指令的特点,现在我们可以进行“宏”指令源程序的编辑、输入和执行操作。指示灯D0被点亮,表示程序从地址00开始正确执行。可反复操作,表示机器功能正确,可以使用。hex文件程序输入对于hex文件用上面示例的方法,将机器码输入到存储器内。

在上面已经介绍了简易汇编的概念和“宏”指令的特点,现在我们可以进行“宏”指令源程序的编辑、输入和执行操作。

1.各按键功能介绍

符号定义:↓表示按下,↑表示抬起,↓↑表示按下立即抬起。

RST键↓↑,机器手动复位,显示“C”。

A/D键↓,显示当前地址,↑显示当前地址存储的数据。

在显示数据时,+1键↓↑,数据+1。

在显示数据时,-1键↓↑,数据-1。

A/D键↓并保持,+1键↓↑,地址+1。

A/D键↓并保持,-1键↓↑,地址-1。

H键↓并保持,再↓↑+1,当前数据的高位+1。

H键↓并保持,再↓↑-1,当前数据的高位-1。

WR键↓↑,将当前显示的数据写入片外存储器蜂鸣器响一声,显示下一个地址的内容。

A/D键↓并保持,H键↓并保持,↓↑+1,地址高位+1。

A/D键↓并保持,H键↓并保持,↓↑-1,地址高位-1。

-1键↓并保持,WR键↓,同时抬起↑,显示“F”,表示进入存储器清FF状态。等待几秒,蜂鸣器响一声,表示完成。

A/D键↓保持,WR键↓,同时抬起↑,显示“-1”,表示进入用户程序执行状态。

2.【例1-1】 指示灯D0点亮

asm(asm是assembly的缩写,就是汇编文件)文件:

978-7-111-47138-7-Chapter01-18.jpg

查“宏”指令集汇编后,生成机器码源程序LST文件(就是列表文件)为

978-7-111-47138-7-Chapter01-19.jpg

hex文件(hex是hexadecimal的缩写,就是十六进制文件)为

978-7-111-47138-7-Chapter01-20.jpg

(1)程序输入操作

↓↑RST键,显示“C”,机器初始化

输入第1个字节:地址00输入0B。

↓A/D键,显示“00.”,↑显示“FF”,表示当前地址00存储的内容。

↓↑+1键,显示“00”,表示当前地址内容+1后结果为“00”。

↓↑+1键,连续进行,直到显示“0b”为止。表示存储器内容改变为“0b”。

↓↑WR键,蜂鸣器响一声,表示显示的内容已经被写入存储器的当前地址内,并自动显示下一个地址01的内容为“FF”。

输入第2个字节:地址01输入00。

↓↑+1键,显示“00”。表示当前地址内容+1后结果为“00”。

↓↑WR键,蜂鸣器响一声,表示显示的内容已经被写入存

储器的当前地址内,并自动显示下一个地址02的内容为“FF”。

输入第3个字节:地址02输入13。

↓↑+1键,显示“00”。表示当前地址02内容+1后结果为“00”。

↓H键,并保持,↓+1键,全部抬起,高位数码管+1显示“10”。

↓↑+1键,连续进行,直到显示“13”为止。

↓↑WR键,蜂鸣器响一声,表示显示的内容已经被写入存储器的当前地址内,并自动显示下一个地址03的内容为“FF”。第4个字节无效。

到此,程序代码输入结束。

(2)程序校验(www.chuimin.cn)

↓↑RST键,显示“C”。

↓A/D键显示“00.”,↑显示“0b”。表示当前地址00的内容为“0b”。

↓↑WR键,抬起,蜂鸣器响一声,显示地址01的内容应为“00”。

↓↑WR键,抬起,蜂鸣器响一声,显示地址02的内容应为“13”。

若以上显示正确,表示程序代码输入正确。

(3)程序执行

↓↑RST键显示“C”,同时地址初始化为00。

↓A/D键并保持,↓WR键并全部↑↑,应显示“-1”。

指示灯D0被点亮,表示程序从地址00开始正确执行。

↓↑RST键,显示“C”,指示灯D0灭。机器返回初始状态。可反复操作,表示机器功能正确,可以使用。如果输入新程序,应当先进行存储器擦除,然后输入新数据。当然,这不是必须的,主要是因为原有的程序数据不擦除可能会引起混乱。

(4)硬件连接原理

指示灯D0的“-”极接00口,“+”极通过390Ω电阻接5V电源,实验机上电复位后,00口置“1”,灯D0电路被关断,灯灭。当00口被程序置“0”,指示灯D0电路被导通,灯亮,如图1-13所示。

这个程序虽然很简单,但却说明了一个重要概念,即通过软件的变化,能够在硬件不变的条件下改变功能。这对无软件的纯电子系统是无法实现的。应用单片机能够在低成本的条件下,实现较高的功能,能够迅速升级产品性能。如果通过实际操作了解了这一点,可以深切地体会到它的重大经济意义。

978-7-111-47138-7-Chapter01-21.jpg

图1-13 指示灯D0电路连接图

3.【例1-2】 指示灯D0闪烁

(1)源程序(asm文件)

978-7-111-47138-7-Chapter01-22.jpg

(2)查表“宏”指令集汇编后,生成机器码文件(LST文件)

978-7-111-47138-7-Chapter01-23.jpg

因为标号地址X1所表示的目的地址是“00”,所以地址09的内容就是“00”。

(3)hex文件

978-7-111-47138-7-Chapter01-24.jpg

(4)程序输入

对于hex文件用上面示例的方法,将机器码输入到存储器内。

复位后显示“C”表明机器已初始化。

输入第1字节:

↓A/D键显示“00.”,↑显示“FF”,表示当前地址00存储的内容。

↓H键并保持,↓+1键,全部抬起,高位数码管+1,显示“10”。

↓↑+1键,连续进行,直到显示“16”为止。

↓↑WR键,蜂鸣器响一声,表示显示的内容已经被写入存储器的当前地址内,并显示下一个地址01的内容为“FF”。

输入第2字节:

↓↑+1键显示“00”。

↓↑WR键,蜂鸣器响一声,表示显示的内容已经被写入存储器的当前地址内,并自动显示下一个地址02的内容为“FF”。

按此方法逐步顺序输入全部存储器字节,直到地址09为止。

(5)程序校验

从地址00开始,用WR键核对全部地址内容应与hex文件相符合,否则要进行修改直到正确为止。

(6)程序执行

按例1-1中的方法执行程序,应能看到指示灯D0闪烁,间隔为0.5s。