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 /*程序结束*/ 开始 | ↓ | 设置地址指针初值 | ↓ | 修改地址指针 | ↓ ↓Y | a中的数送入p1 | ↓ | R2赋值 | ↓ | 数值移位 |
| END | 流程图: 实验步骤: 1. 在单片机上把线接好; 2. 把程序输入计算机; 3. 接通单片机电源显示C_; 4. 运行程序; 5. 观察小灯点亮过程; 6. 改变程序以改变小灯点亮顺序; 7. 关闭电源把实验器件放回原位。 运行结果:机箱上的小灯依次左循环点亮。 这是我们在实践学习的时候用的一个程序,我试了一下,感觉很有意思,就拿出来大家看看, 大家要是有机会的可以来试验一下,
|