51汇编程序
来源:百度知道 编辑:UC知道 时间:2024/06/21 01:52:40
http://blog.sina.com.cn/s/blog_4f8cdc9e0100cuo5.html~type=v5_one&label=rela_nextarticle 这个网页上的6.7题.
LOOP: CLR A ;A清零
因为跳转回去之后,对A清零,故不可用A递加。
其实是一样的。
MOVC A, @A+DPTR 这一句是查表语句,将对应地址的值取出来给A。
这里经常用在键盘程序的用查找键值求键号、液晶显示的字表上。
两种方式都可以:A加一、DPTR加一。
两种方式的优缺点在于:A加一,那么取出来的值再给A,就需要将之前的A保存下来,下次再调出来,这样会很麻烦,这种方式是在DPTR在多处用到了的情况下使用。
当DPTR只是在这个查表程序用到的时候,只要将DPTR加一就很方便了,不需要去保存A了。
6.7功能说明
单片机端口接八只LED,编程时利用取表的方法,使端口P1做单一灯的变化:先向左移2次,然后向右移2次,再闪烁4次,不断循环。
程序:JS07.ASM
01: START: MOV DPTR, #TABLE ;存表
02: LOOP: CLR A ;A清零
03: MOVC A, @A+DPTR ;取表代码
04: CJNE A, #01H, LOOP1;不是01H,循环
05: JMP START ;重新设定
06: LOOP1: MOV P1, A ;送P1输出
07: ACALL DELAY ;调延时程序
08: INC DPTR ;数据指针加1
09: JMP LOOP ;转移到LOOP处
10: DELAY: MOV R5,#25