单片机实验一
实验原理图(a)如上
实验程序清单如下:
ORG
LOOP:
DELAY: MOV
D1:
D2:
延时分析:
在51单片机中DJNZ指令是双周期指令,MOV是单周期指令,RET是双周期指令。
其中在每次LCALL中MOV
每执行一次DELAY时MOV
指令MOV
DJNZ两条指令一共执行了(65025+255)×4=261120μs;
RET 指令执行一次,用时4μs;
所以延时时间大概为(2+510+261120+4)μs=261636μs,大约为262ms。
硬件实验时,P32一直微微地闪烁,而P35则一直微弱地亮着。
实验任务二: 通过改变延时程序改变二极管闪烁速度
延时程序如下:
DELAY: MOV
D1:
D2:
延时分析:
DJNZ两条指令一共执行了(32640+128)×4=131072μs。
所以延时时间大概为(2+256+131072) μs=131330μs,约为131ms。
当延时时间为改成R0的值时的一半,理论上上述实验中的发光二极管闪烁的速度将会比改变之前的快一倍。但是在实体验的观察中,二极管的闪烁速度并没有快了一倍。这可能是个人的感观所致吧!
实验任务三:教材P108例4.9.8 实现8个LED的亮点流动
实验原理图如(a)所示
实验程序清单如下:
LOOP:
DELAY: MOV
D1:
D2:
程序分析:
实验心得:
实验遇到的问题是实验电路板与软件的连接。第一次插入接口时,LSIM总是找不到串口,连接不成功。经重启电脑后打开软件,重新检测并插入接口,才顺利查找到串口并连接成功。
由于实验之前在自己的电脑上利用住仿真软件实现过,对其基本操作已经熟悉,所以实验进行得还是比较顺利的。本实验主要是延时分析,利用延时子程序来改变二极管的闪烁速度;理论上的东西和实践上是有那么一点差距的,通过这个实验我明白了。
评论