- 单片机原理及应用系统设计
- 胡景春主编
- 468字
- 2021-10-27 13:42:55
3.5.2 汇编程序设计举例
1.查找、排序程序
【例3-19】设片内RAM中有一数据块,R0指向块首地址,R1中为数据块长度,请在该数据块中查找关键字,关键字存放在累加器A中,若找到关键字,则把关键字在数据块中的序号存放到A中,若找不到关键字,则在A中存放序号00H。
解:程序流程图如图3-6所示,程序代码如下:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/70_01.jpg?sign=1739250289-RFr3QcmEDR7L5XcNpPRvjdIPdIJe79rq-0-a293bcd926e434ee3faf8978bc3bfe4a)
图3-6 例3-19流程图
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/70_02.jpg?sign=1739250289-5o0Z9xF3CUJuzY6P2vrwjIb0sAKgH9qo-0-1e5da728ed9d239783ef84e4a3795fb9)
2.代码转换程序
【例3-20】 编程实现50H单元的压缩BCD码转换成二进制数。
解:按题意有2位BCD码,根据公式Y=X1×10+X0,编写子程序如下:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/70_03.jpg?sign=1739250289-UpJkcBAzLppg0SMz8ATlijmtEQ5xKG9v-0-ae651d544555d8e09e0a2632e5aa8a9c)
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/71_01.jpg?sign=1739250289-1iLK3IYfS8hd9f7P5jtlvqaWS5lfnHYa-0-cffb718899cf73578ea5c0c35037c11a)
【例3-21】编程实现数字的ASCII码转换为二进制数
解:因为0~9的ASCII码是30H~39H,A~F的ASCII码是41H~46H,程序如下:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/71_02.jpg?sign=1739250289-knUwy9TLOfrD1QNSuaHFO176Ey73igBq-0-ed3f780c313a0a1bd6b72fa41f98ac7d)
3.I/O控制程序
【例3-22】已知电路如图3-7所示,要求实现:
1)S0单独按下,红灯亮。
2)S1单独按下,绿灯亮。
3)S0、S1均按下,红绿黄灯全亮。
4)其余情况黄灯亮。
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/71_03.jpg?sign=1739250289-E27z6yCkFjY7DhGLTPDvVLUS51VJa34P-0-c982dcc1e1ae34185df8185883ea9263)
图3-7 信号灯电路
解:由图分析,当外接LED引脚P1.0~P1.2为低电平时,对应LED发亮;当按钮按下时,对应引脚P16、P1.7为低电平。
程序如下:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/72_01.jpg?sign=1739250289-tqitUhGmz5IydIUebFiIPhyvCqAqJnmi-0-2e209fc0a8a24204dbf83afeda43cfe6)
【例3-23】电路如图3-8所示,单片机P1口通过生态缓冲器74LS240外接8个LED。编制一个循环闪烁灯的流水灯程序,要求8只发光二极管依次循环点亮,点亮时间为250ms,设fosc=6MHz。
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/72_02.jpg?sign=1739250289-Zm5oq4EYfLjTE8WBpZ1SfVJuP7ycRiTR-0-552faa20e219774b264a60713e529699)
图3-8 LED控制电路
解:编程如下:
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/72_03.jpg?sign=1739250289-q34wpsn0D7gHkQm8PESjFZ4zQBqU4zId-0-dc5c8d36d6262a6be36ad59d8d83e3bd)
![](https://epubservercos.yuewen.com/0DCF85/21511155608174006/epubprivate/OEBPS/Images/73_01.jpg?sign=1739250289-QF0IfFUSP0s3pX3m0fwfbDJlr5wn0JJj-0-5b3ea3b79561b1cb2d629bd032ec58b7)