单片机原理及应用系统设计
上QQ阅读APP看书,第一时间看更新

3.5.2 汇编程序设计举例

1.查找、排序程序

例3-19】设片内RAM中有一数据块,R0指向块首地址,R1中为数据块长度,请在该数据块中查找关键字,关键字存放在累加器A中,若找到关键字,则把关键字在数据块中的序号存放到A中,若找不到关键字,则在A中存放序号00H。

:程序流程图如图3-6所示,程序代码如下:

图3-6 例3-19流程图

2.代码转换程序

例3-20】 编程实现50H单元的压缩BCD码转换成二进制数。

:按题意有2位BCD码,根据公式Y=X1×10+X0,编写子程序如下:

例3-21】编程实现数字的ASCII码转换为二进制数

:因为0~9的ASCII码是30H~39H,A~F的ASCII码是41H~46H,程序如下:

3.I/O控制程序

例3-22】已知电路如图3-7所示,要求实现:

1)S0单独按下,红灯亮。

2)S1单独按下,绿灯亮。

3)S0、S1均按下,红绿黄灯全亮。

4)其余情况黄灯亮。

图3-7 信号灯电路

:由图分析,当外接LED引脚P1.0~P1.2为低电平时,对应LED发亮;当按钮按下时,对应引脚P16、P1.7为低电平。

程序如下:

例3-23】电路如图3-8所示,单片机P1口通过生态缓冲器74LS240外接8个LED。编制一个循环闪烁灯的流水灯程序,要求8只发光二极管依次循环点亮,点亮时间为250ms,设fosc=6MHz。

图3-8 LED控制电路

:编程如下: