上机作业二调试方法

发布 2022-09-05 10:22:28 阅读 1766

实验报告二(上机实验作业二)

题目:流水灯控制。

内容:1. 把八个发光led的正极经电阻接至p2口,led的负极接地;

2. 把三个按钮开关的一端分别接至p3.7、p3.6、p3.5端口,另一端接地;

3. 编程实现控制,按一下模式键改变流水方式、按增减键改变流水的速度。

例题1:试编写控制使p2口连接的8个接地的发光led灯每隔200ms轮流点亮一个的子程序。

设fosc=6mhz,要求画出流程图。

算法步骤:第1步点亮第一个led

第2步延时200ms开始。

第3步判别是第八个led则转到第1步。

第4步点亮下一个ledt': span', c': k', r': r_6'},

第5步转到第2步

进一步细化: [

第1步 1.1 k00000001b

1.2 p2kt': span', c': 延时', r': r_7'},

第2步 2.1 延时200ms

第3步 3.1 判别(k=10000000b)则转到第一步y k=80h

第4步 4.1 k左移一位n

4.2 p2kt': span', c': k', r': r_6'},

第5步 5.1 转到第2.1步。

程序: [k equ 20h

org 0000h

m1: mov k, #01h ; 00000001b

mov p2, k

m2: lcall delay200

jbk.7, m1 ; 判k=10000000b

mov a, k ; k左移1位。

rlamov k, a

mov p2, a

sjmp m2

delay200: mov r1, #200 ; 延时200ms

de1: mov r2, #

de2: djnz r2, de2 ; 4μs *250=1ms

djnz r1, de1

retend

例题2:试编写控制程序使p2口连接的8个接地的发光led灯逐个循环点亮的程序,mcu连接一个按键,每按一下可以改变逐个点亮led灯的速度(比如:从50~250ms,每次加50ms)。

设fosc=6mhz.

算法步骤:第1步点亮第一个led

第2步延时200ms开始。

第3步判别是第八个led则转到第1步。

第4步点亮下一个ledt': span', c': k', r': r_5'},

第5步转到第2步

进一步细化t': span', c': p2', r': r_5'},

第1步 1.1 k00000001b

1.2 p2kt': span', c': 延时', r': r_6'},

第2步 2.1 延时tms

2.2 判别按键按下?n, 转到3.1键按下 y [,

2.3 延时tt+50msn

第3步 3.1 判别(k=10000000b)则转到1.1y k=80h

第4步 4.1 k左移一位n

4.2 p2kt': span', c': k', r': r_3'},

第5步 5.1 转到第2.1步。

程序: [k equ 20h

t equ 21h

org 0000h

mov t, #

m1: mov k, #01h ; 00000001b

mov p2, k

m2: lcall delay200

setb p3.6

jbp3.6, m3 ; 无键按下。

mov a, #50 ; 有键按下。

add a, ttt+50ms

mov t, a

m3: jbk.7, m1 ; 判k=10000000b

mov a, k ; k左移1位。

rlamov k, a

mov p2, a

sjmp m2

delay200: mov r1, t ; 延时tms

de1: mov r2, #

de2: djnz r2, de2 ; 4μs *250=1ms

djnz r1, de1

retend

例题3:在题目1的基础上,mcu连接一个按钮到p3.7,每按一下可以改变led灯轮流点亮的方式。

(比如:从左到右、从右到左、左右来回、左右同时交叉)。设fosc=6mhz,要求画出流程图。

算法步骤:第1步判别s≠0转到第4步主程序。

第2步调用显示方式0

第3步转到第1步nnn

第4步判别s≠1转到第7步s=0s=1s=2

第5步调用显示方式1yyy

第6步转到第1步显示方式0 显示方式1 显示方式2

第7步判别s≠2转到第1步。

第8步调用显示方式2

第9步转到第1步。

显示方式的算法步骤:

第1步点亮第一个led

第2步延时200ms显示方式0

第3步判别是第八个led则返回主程序。

第4步点亮下一个ledt': span', c': k', r': r_7'},

第5步转到第2步

进一步细化t': span', c': p2', r': r_7'},

第1步 1.1 k00000001b

1.2 p2kt': span', c': 延时', r': r_8'},

第2步 2.1 延时tms

2.2 判别按键按下?n, 转到2.4键按下 y [,

2.3 tt+50msn

2.4 判别按键按下?n, 转到3.1

2.5 s s+1键按下 y [,

2.6 判别s=3?n, 转到3.1nn

2.7 s 0y k=80h s=3

2.8 返回主程序y

第3步 3.1 判别(k=10000000b)则转到2.8ret [,

第4步 4.1 k左移一位。

4.2 p2kt': span', c': p2', r': r_8'},

第5步 5.1 转到第2.1步。

ret程序调试方法:

第一步:输入例题1的程序,编译无误后,运行程序进行调试,直至得到正确的结果:从上到下轮流点亮led灯。

第二步:在例题1程序调试正确后,插入例题2的指令(红色的指令),编译无误后,运行程序进行调试,直至得到正确的结果:

从上到下轮流点亮led灯,当按下按钮时,显示的速度要会变化。

数值方法上机作业

1 列主元素消去法求解线性方程 include include define n 20 using namespace std void load float a n n int m int main 将列最大数防在对角线上 for p 0 p cout cout for k i 1 k l k i...

计算方法上机作业

计算方法上机报告。姓名 学号 班级 上课班级 1 算法思想。2 算法结构。3 matlab源程序。clear 清除工作空间变量。clc 清除命令窗口命令。m input 请输入有效数字的位数m输入有效数字的位数。s 0for n 0 50 t 1 16 n 4 8 n 1 2 8 n 4 1 8 n...

计算方法上机作业

表2 新算法迭代结果1 初值 0,精度ep 初始选择因子p 修正因子 0.1,最大迭代次数n 0,局部修正次数m分别取1,2,3次,f 49881192646492934000000000000.000000 表3 新算法迭代法结果2 初值 0,精度ep 初始选择因子p 修正因子 0.05,最大迭代...