org 0000h /* 设置程序段起始地址*/
ljmp main
org 000bh
ljmp ctc
org 0030h
main:
mov tmod,#01h /*置地址指针*/
mov th0,#3ch
mov tl0,#0b0h
mov r2,#0ah
setb ea /*ea置1*/
setb et0 /* et0置1*/
setb tr0 /* tr0置1*/
mov a,#01h /*累加器a赋值*/
sjmp $ /*踏步*/
ctc:
mov th0,#3ch /*t0赋初值*/
mov tl0,#0b0h
djnz r2,next /*r2=0?,如果不相等就转移到next*/
mov p1,a /*将a中的数送到p1中*/
mov r2,#0ah /*将r2赋值*/
rl a /*将a中的数值按位左移以一位*/
next: reti /*中断子程序返回到主程序*/
end /*程序结束*/
开始 | |
↓ | |
设置地址指针初值 | |
↓ | |
r2=0? | |
N ↓Y | |
a中的数送入p1 | |
↓ | |
R2赋值 | |
↓ | |
数值移位 | |
| |
END |
流程图:
实验步骤:
1. 在单片机上把线接好;
2. 把程序输入计算机;
3. 接通单片机电源显示C_;
4. 运行程序;
5. 观察小灯点亮过程;
6. 改变程序以改变小灯点亮顺序;
7. 关闭电源把实验器件放回原位。
运行结果:机箱上的小灯依次左循环点亮。