单片机的程序与功能.doc
文本预览下载声明
6.1功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。
程序:JS01.ASM
01:??? ?MOV? ??A , ?; ?存入欲显示灯的位置数据
02:?? ??MOV??? P1, A????????? ; ?点亮第一只灯
03:???? JMP??? $????????????? ?;? 保持当前的输出状态
04:???? END??????????? ????????;? 程序结束
?
6.2功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。
程序:JS02.ASM
01:START: MOV?? A , ? ; 存入欲显示灯的位置数据
02:?????? MOV?? P1, A????????? ; 点亮灯
03:?????? JMP?? START?????????? ; 重新设定显示值
04:?????? END?????????????????? ; 程序结束
?
6.3功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。
该程序缺少延时环节,适合模拟仿真观察。
程序:JS03.ASM
01:?? START:?? MOV?? R0, #8????????? ;设左移8次
02:??????????? MOV?? A,? ? ;存入开始点亮灯位置
03:?? LOOP:??? MOV?? P1, A?????????? ;传送到P1并输出
04:??????????? RL??? A?????????????? ;左移一位
05:??????????? DJNZ? R0, LOOP??????? ;判断移动次数
06:??????????? JMP? ?START?????????? ;重新设定显示值
07:??????????? END?????????????????? ;程序结束
?
6.4功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。
程序:JS04.ASM
01:?? START: MOV?? R0, #8? ???????;设右移8次
02:????????? MOV?? A,? ;存入开始点亮灯位置
03:??? LOOP:? MOV?? P1, A????????? ;传送到P1并输出
04:?????????? ACALL DELAY????????? ;调延时子程序????????
05:?????????? RR??? A????????????? ;右移一位
06:?????????? DJNZ? R0, LOOP?????? ;判断移动次数
07:?????????? JMP?? START????????? ;重新设定显示值
08:?? DELAY:? MOV? R5,#50????????? ;
09:? DLY1:?? MOV? R6,#100???????? ;
10:?? DLY2:?? MOV? R7,#100???????? ;
11:?????????? DJNZ R7,$??????????? ;???????????????????
12:?????????? DJNZ R6,DLY2???????? ;
13:?????????? DJNZ R5,DLY1???????? ;
14:?????????? RET????????????????? ;子程序返回
15:????????? END????????????????? ;程序结束
?
6.5功能说明:单片机P1端口接8只LED,每次点亮一只,先把右边的第一只点亮,0.5秒后点亮右数的第二只灯,第一只熄灭,再过0.5秒点亮右数的第三只灯,第二只熄灭,…亮灯按此顺序由右向左移动。当亮灯移到左侧后,开始与上述反方向移动,即亮灯由左向右移动,重复循环。
程序:JS05.ASM
01:? START:?? MOV?? R0, #8? ??;设左移8次
02:?????????? MOV?? A,#0FEH ??;存入开始亮灯位置
03:? LOOP:??? MOV?? P1, A??? ?;传送到P1并输出 ??
04:?????????? ACALL DELAY???? ;调延时子程序
05:?????????? RL??? A???????? ;左移一位
06:?????????? DJNZ? R0, LOOP? ;判断移动次数?????
07:?????????? MOV?? R1, #8??? ;设右移8次???????????
08;?? LOOP1:? RR??? A???????? ;右移一位?????????
显示全部