急求单片机简单程序

来源:百度知道 编辑:UC知道 时间:2024/06/20 14:02:03
编写一段程序,要求查找在内部RAM的20H~50H单元中是否有0AAH这一数据,若有,刚=则将51H单元置为01H,若未找到,则将51H单元清0. 有哪位会的帮忙解答一下啊,我是一个初学者,对这些还不是太懂~~~谢了~单片机应该怎样学才能学好啊?

org 000h
mov r1,50h
mov r2,30h
xunhuan:mov a,@r1
cjne a,#0aah,loop
mov 51h,#01h
loop:dec r1
djnz r2,xunhuan
mov 51,#00h
end

;先弄一块单片机小实验板做实验然后慢慢入门
;最好能够找老师,帮老师打打下手,进步很快的
;不说了,上代码
;以下代码经Keil C51测试通过

ORG 0000H
LJMP START

ORG 0100H
START:
; mov 50h,#55h ;本句为测试所用
MOV 51H,#0 ;假设没有0AAH的存在

MOV R0,#20H ;起始地址
MOV R7,#31H ;循环变量
LOOP:
MOV A,@R0
CJNE A,#55H,LOOPA ;不等,跳到下一次
SJMP CHECKOUT ;相等,置位
LOOPA:
INC R0 ;指向下一个地址
DJNZ R7,LOOP ;循环次数控制
SJMP FINISH ;没有55H,结束
CHECKOUT:
MOV 51H,#01H ;存在数据,将51H单元赋值为01H

FINISH:
SJMP $ ;结束

END

写这种程序是没有用的,要学单片机,就要些实例程序。
如:流水,数码管控制,AD转换,LCD控制等等。

原理不复杂,不过,写起会费很多时间,如你能帮我的话,我可以帮你写.

对于初学者来说,这是让你学习怎么使用判断和循环,这是很基本的程序,写一段循环程序检测值,最在51H赋值结果,就是这样。要学好单片机就两