流水灯程序设计与调试概要PPT学习教案.pptx
《流水灯程序设计与调试概要PPT学习教案.pptx》由会员分享,可在线阅读,更多相关《流水灯程序设计与调试概要PPT学习教案.pptx(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1流水流水(lishu)灯程序设计与调试概要灯程序设计与调试概要第一页,共87页。2流水灯程序设计流水灯程序设计(chn x sh j)与调与调试试 一、任务说明一、任务说明一、任务说明一、任务说明1 1、要求、要求、要求、要求 P1P1口作为输出口。口作为输出口。口作为输出口。口作为输出口。P1.0P1.0至至至至P1.7P1.7接接接接8 8个发光二极管。要求编写程序实现如下功个发光二极管。要求编写程序实现如下功个发光二极管。要求编写程序实现如下功个发光二极管。要求编写程序实现如下功能:能:能:能:8 8个发光二极管依次亮灭并循环,延时个发光二极管依次亮灭并循环,延时个发光二极管依次
2、亮灭并循环,延时个发光二极管依次亮灭并循环,延时0.10.1秒(已知秒(已知秒(已知秒(已知fosc=12MHzfosc=12MHz)。)。)。)。2 2、重点、重点、重点、重点(zhngdi(zhngdi n)n)1 1、学习、学习、学习、学习P1P1口作为输出口的使用方法。口作为输出口的使用方法。口作为输出口的使用方法。口作为输出口的使用方法。2 2、学习延时程序的设计方法。、学习延时程序的设计方法。、学习延时程序的设计方法。、学习延时程序的设计方法。第1页/共87页第二页,共87页。3二、硬件二、硬件(yn jin)电路电路1、硬件分析 发光二极管采用(ciyng)共阳极连接,P1口某个
3、引脚输出“0”则对应的灯点亮。第2页/共87页第三页,共87页。42 2、软件分析、软件分析、软件分析、软件分析 (1 1)整体任务分析:控制字始终是)整体任务分析:控制字始终是)整体任务分析:控制字始终是)整体任务分析:控制字始终是7 7个个个个“1”“1”和和和和1 1个个个个“0”“0”,“0”“0”的位置每隔的位置每隔的位置每隔的位置每隔0.10.1秒左移秒左移秒左移秒左移1 1位,然后位,然后位,然后位,然后(rnhu)(rnhu)由由由由P1P1口输出控制字点灯。口输出控制字点灯。口输出控制字点灯。口输出控制字点灯。(2 2)程序流程图)程序流程图)程序流程图)程序流程图控制字初值
4、控制字初值0FEH送送A控制字送控制字送p1口点灯口点灯调用延时子程序调用延时子程序将控制字左移一位将控制字左移一位开始开始第3页/共87页第四页,共87页。5涉及涉及(shj)的指令的指令n nMOV类指令类指令(zhlng)n nRL指令指令(zhlng)n nDJNZ延时子程序延时子程序 第4页/共87页第五页,共87页。6(3 3)关于左移运算:可以利用循环左移指令实现)关于左移运算:可以利用循环左移指令实现)关于左移运算:可以利用循环左移指令实现)关于左移运算:可以利用循环左移指令实现 指令性质:逻辑运算指令指令性质:逻辑运算指令指令性质:逻辑运算指令指令性质:逻辑运算指令 指令格式
5、:指令格式:指令格式:指令格式:RL A RL A 注意:操作数只能是累加器。注意:操作数只能是累加器。注意:操作数只能是累加器。注意:操作数只能是累加器。指令说明:执行时累加器指令说明:执行时累加器指令说明:执行时累加器指令说明:执行时累加器A A的存储内容的存储内容的存储内容的存储内容(nirng)(nirng)(8 8位位位位2 2进进进进制数),整体向左移动制数),整体向左移动制数),整体向左移动制数),整体向左移动1 1位(低位移动到相邻的高位),最高位(低位移动到相邻的高位),最高位(低位移动到相邻的高位),最高位(低位移动到相邻的高位),最高位补回到最低位。位补回到最低位。位补回
6、到最低位。位补回到最低位。指令应用:常用于完成快速乘法,每次执行累加器内容指令应用:常用于完成快速乘法,每次执行累加器内容指令应用:常用于完成快速乘法,每次执行累加器内容指令应用:常用于完成快速乘法,每次执行累加器内容(nirng)(nirng)扩大扩大扩大扩大2 2倍。倍。倍。倍。相关指令:相关指令:相关指令:相关指令:RR A;RLC A;RRC ARR A;RLC A;RRC A第5页/共87页第六页,共87页。7延时子程序实例延时子程序实例(shl)n n若单片机的主频为若单片机的主频为若单片机的主频为若单片机的主频为12MHz,12MHz,使用循环转移指令编写使用循环转移指令编写使用
7、循环转移指令编写使用循环转移指令编写(binxi)(binxi)延时延时延时延时20ms20ms的子的子的子的子程序。程序。程序。程序。(双重循环结构双重循环结构双重循环结构双重循环结构)n n一个机器周期:一个机器周期:一个机器周期:一个机器周期:12/12M=1us 12/12M=1us 次数次数次数次数 周期周期周期周期n nDELAY:MOV R6,#0C8H 1 1 DELAY:MOV R6,#0C8H 1 1 n nLOOP2:MOV R7#x 200 1LOOP2:MOV R7#x 200 1n n NOP 200 1 NOP 200 1n nLOOP1:DJNZ R7,LOOP
8、1 200 x 2LOOP1:DJNZ R7,LOOP1 200 x 2n n DJNZ R6,LOOP2 200 2 DJNZ R6,LOOP2 200 2n n RET 1 2 RET 1 2n n200+200+400 x+400+2=20 000200+200+400 x+400+2=20 000n n求出求出求出求出x=48x=48第6页/共87页第七页,共87页。8三、任务实施三、任务实施三、任务实施三、任务实施 步骤步骤步骤步骤1 1:各小组按照:各小组按照:各小组按照:各小组按照(nzho)(nzho)流程图设计各部分程流程图设计各部分程流程图设计各部分程流程图设计各部分程序。
9、序。序。序。步骤步骤步骤步骤2 2:程序汇编无误后,利用:程序汇编无误后,利用:程序汇编无误后,利用:程序汇编无误后,利用ISPISP软件和下载线软件和下载线软件和下载线软件和下载线将目标文件(将目标文件(将目标文件(将目标文件(.HEX.HEX)程序代码写入本组的单片机芯片)程序代码写入本组的单片机芯片)程序代码写入本组的单片机芯片)程序代码写入本组的单片机芯片中。中。中。中。步骤步骤步骤步骤3 3:接通直流电源,启动电路板观察现象,如:接通直流电源,启动电路板观察现象,如:接通直流电源,启动电路板观察现象,如:接通直流电源,启动电路板观察现象,如现象不对则重复步骤现象不对则重复步骤现象不对
10、则重复步骤现象不对则重复步骤1 1、2 2。步骤步骤步骤步骤4 4:现象无误,请求教师检查、评价。:现象无误,请求教师检查、评价。:现象无误,请求教师检查、评价。:现象无误,请求教师检查、评价。步骤步骤步骤步骤5 5:编制项目报告并提交。:编制项目报告并提交。:编制项目报告并提交。:编制项目报告并提交。第7页/共87页第八页,共87页。9四、任务扩展四、任务扩展 思考:若想实现思考:若想实现8个灯累加点亮个灯累加点亮并循环,则程序该如何并循环,则程序该如何(rh)设计设计?第8页/共87页第九页,共87页。10一、任务说明一、任务说明一、任务说明一、任务说明 P1 P1口作为口作为口作为口作为
11、(zuwi)(zuwi)输入、输出口。输入、输出口。输入、输出口。输入、输出口。P1.0P1.0、P1.1P1.1接开接开接开接开关关关关K1K1、K2K2;P1.2P1.2、P1.3P1.3接发光二极管接发光二极管接发光二极管接发光二极管L1L1、L2L2;P1.4P1.4、P1.5P1.5接接接接L5L5、L6L6。K1K1作为作为作为作为(zuwi)(zuwi)左转弯开关,左转弯开关,左转弯开关,左转弯开关,K2K2作为作为作为作为(zuwi)(zuwi)右转弯开关。右转弯开关。右转弯开关。右转弯开关。L1L1、L2L2作为作为作为作为(zuwi)(zuwi)左转弯灯,左转弯灯,左转弯灯
12、,左转弯灯,L5L5、L6L6作为作为作为作为(zuwi)(zuwi)右转弯灯。要求编写程序实现如右转弯灯。要求编写程序实现如右转弯灯。要求编写程序实现如右转弯灯。要求编写程序实现如下功能:向上打下功能:向上打下功能:向上打下功能:向上打K1K1时时时时(K1=1)(K1=1),左转弯灯以一定频率闪,左转弯灯以一定频率闪,左转弯灯以一定频率闪,左转弯灯以一定频率闪烁,向上打烁,向上打烁,向上打烁,向上打K2K2时时时时(K2=1)(K2=1),右转弯灯以一定频率闪烁,右转弯灯以一定频率闪烁,右转弯灯以一定频率闪烁,右转弯灯以一定频率闪烁,两开关同时向上或向下,四灯都灭。两开关同时向上或向下,四
13、灯都灭。两开关同时向上或向下,四灯都灭。两开关同时向上或向下,四灯都灭。灯闪烁一次即可,闪烁时先亮灯闪烁一次即可,闪烁时先亮灯闪烁一次即可,闪烁时先亮灯闪烁一次即可,闪烁时先亮0.5S0.5S再灭再灭再灭再灭0.5S0.5S。转弯转弯(zhun wn)灯控制程序设计与调灯控制程序设计与调试试 第9页/共87页第十页,共87页。11重点:重点:重点:重点:1 1、学习、学习、学习、学习P1P1口既作为口既作为口既作为口既作为(zuwi)(zuwi)输入,又作为输入,又作为输入,又作为输入,又作为(zuwi)(zuwi)输出的使用方法。输出的使用方法。输出的使用方法。输出的使用方法。2 2、学习数
14、据输入、输出程序的设计方法。、学习数据输入、输出程序的设计方法。、学习数据输入、输出程序的设计方法。、学习数据输入、输出程序的设计方法。第10页/共87页第十一页,共87页。12二、任务分析二、任务分析1、硬件分析、硬件分析P1口为准双向口为准双向I/O接口,输出单条接口,输出单条指令完成,输入时应当先向对应指令完成,输入时应当先向对应(duyng)的端口锁存器写入的端口锁存器写入1,然后读入数据。然后读入数据。第11页/共87页第十二页,共87页。132 2、软件说明、软件说明、软件说明、软件说明 (1 1)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯)整体分析:先读入开关的状
15、态,根据开关的四种状态分情况控制灯)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。(2 2)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点)多分支判
16、断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点检测的方式实现分支控制。即读入开关状态后先判断是否为检测的方式实现分支控制。即读入开关状态后先判断是否为检测的方式实现分支控制。即读入开关状态后先判断是否为检测的方式实现分支控制。即读入开关状态后先判断是否为0000,若为,若为,若为,若为0000则灯全灭;则灯全灭;则灯全灭;则灯全灭;若不为若不为若不为若不为0000则判断开关是否为则判断开关是否为则判断开关是否为则判断开关是否为0101,若为,若为,若为,若为0101则左转弯则左转弯则左转弯则左转弯(zhu(zhu n wn)n wn)灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为灯闪烁
17、;若不为0101则判断开关是则判断开关是则判断开关是则判断开关是否为否为否为否为1010,若为,若为,若为,若为1010则右转弯则右转弯则右转弯则右转弯(zhu(zhu n wn)n wn)灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为灯闪烁;若不为1010则必然为则必然为则必然为则必然为1111,灯全灭。,灯全灭。,灯全灭。,灯全灭。K1K0状态状态控灯规律控灯规律控制字控制字00全灭全灭0FFH01左转弯灯闪烁左转弯灯闪烁0F3H,0FFH10右转弯灯闪烁右转弯灯闪烁0CFH,0FFH11全灭全灭0FFH第12页/共87页第十三页,共87页。14(3 3)实现分支)实现分支)实现分支)实现分支
18、(fnzh)(fnzh)判断的关键指令:条件转移指令判断的关键指令:条件转移指令判断的关键指令:条件转移指令判断的关键指令:条件转移指令CJNECJNE指令名称:比较不相等转移。指令名称:比较不相等转移。指令名称:比较不相等转移。指令名称:比较不相等转移。指令格式:指令格式:指令格式:指令格式:CJNE A,#data,rel;CJNE A,#data,rel;若若若若(A)data,(A)data,则跳到标号处执行指令,否则顺序执行。对借位标志有影响:则跳到标号处执行指令,否则顺序执行。对借位标志有影响:则跳到标号处执行指令,否则顺序执行。对借位标志有影响:则跳到标号处执行指令,否则顺序执行
19、。对借位标志有影响:若若若若 (A A)data0 X0Y=Y=100100 X=0 X=0 求求求求出出出出Y Y值值值值,将将将将Y Y值值值值存存存存入入入入(cn(cn r)31Hr)31H单元。单元。单元。单元。X X X0 X0解解解解:根根根根据据据据数数数数据据据据的的的的符符符符号号号号位位位位判判判判别别别别该该该该数数数数的的的的正正正正负负负负,若若若若最最最最高高高高位位位位为为为为0 0,再判别该数是否为,再判别该数是否为,再判别该数是否为,再判别该数是否为0 0。程序流程如图。程序流程如图。程序流程如图。程序流程如图2-22-2所示。所示。所示。所示。参考程序如下
20、:参考程序如下:参考程序如下:参考程序如下:ORGORG 1000H 1000H 第20页/共87页第二十一页,共87页。22 MOV A MOV A,30H30H ;取数;取数 JB ACC.7 JB ACC.7,NEG NEG ;负数,转;负数,转NEG NEG JZ JZ ZER0 ZER0 ;为零,转;为零,转ZER0 ZER0 ADD A ADD A,#02H#02H;为正数,求;为正数,求X+2X+2 AJMP SAVE AJMP SAVE ;转到;转到SAVESAVE,保存,保存(b(b ocn)ocn)数据数据ZER0ZER0:MOV AMOV A,#64H#64H ;数据为零
21、,;数据为零,Y=100 Y=100 AJMP SAVE AJMP SAVE ;转到;转到SAVESAVE,保存,保存(b(b ocn)ocn)数据数据 NEGNEG:DEC DEC A A ;CPL CPLA A ;求;求 X X SAVESAVE:MOV 31HMOV 31H,A A ;保存;保存(b(b ocn)ocn)数据数据 SJMP SJMP ;暂停;暂停 END END第21页/共87页第二十二页,共87页。23A为负数?取数,A(30H)开始结束A=0?YNNA|X|A64HAX+2存数,(31H)A(30H)图2-2 例4.3程序(chngx)流程图第22页/共87页第二十三
22、页,共87页。24多向分支程序设计举例多向分支程序设计举例多向分支程序设计举例多向分支程序设计举例【例【例【例【例4.44.4】根据根据根据根据R0R0的值转向的值转向的值转向的值转向7 7个分支程序。个分支程序。个分支程序。个分支程序。R010R010,转向,转向,转向,转向SUB0SUB0;R020R020,转向,转向,转向,转向SUB1SUB1;R060R060R060,转向,转向,转向,转向SUB6SUB6;解:利用解:利用解:利用解:利用JMP A+DPTR JMP A+DPTR 指令直接指令直接指令直接指令直接(zhji)(zhji)给给给给PCPC赋值,使程序实现转移。程序流程如
23、图赋值,使程序实现转移。程序流程如图赋值,使程序实现转移。程序流程如图赋值,使程序实现转移。程序流程如图2-32-3所所所所示。示。示。示。第23页/共87页第二十四页,共87页。25n nORG 2000HORG 2000Hn nMOV DPTRMOV DPTR,#TAB#TAB;转移;转移(zhu(zhu ny)ny)指令指令表首地址表首地址n n MOV AMOV A,R0R0;取数;取数 n n MOV B MOV B,#10#10 n n DIVDIV AB AB ;A A除以除以1010,商在,商在A A中中 n n CLR C CLR Cn n RLC ARLC A ;A2AA2
24、An n JMP A+DPTRJMP A+DPTR;PC A+DPTRPC A+DPTRn n AJMP SUB0 AJMP SUB0;转移;转移(zhu(zhu ny)ny)指令表指令表n n AJMP SUB1 AJMP SUB1 n n n n AJMP SUB6AJMP SUB6TAB:第24页/共87页第二十五页,共87页。26K=?转SUB0转SUB1转SUB6K=0 K=1 K=6开始图图2-3多向分支多向分支(fnzh)程序流程图程序流程图返回(fnhu)本节第25页/共87页第二十六页,共87页。27交通灯程序设计交通灯程序设计(chn x sh j)与调与调试试 一、任务说
25、明一、任务说明 P1口控制口控制6个灯,红、黄、绿各两个个灯,红、黄、绿各两个(lin),编程实现交通灯控制规律。,编程实现交通灯控制规律。第26页/共87页第二十七页,共87页。28四四红红灯灯亮亮延延时时1秒秒东东西西路路口口绿绿灯灯亮亮,南南北北路路口口红红灯灯亮亮延延时时6秒秒东东西西路路黄黄灯灯闪闪烁烁8次次,南南北北路路口口红红灯灯亮亮每每次次延延时时1秒秒四四红红灯灯亮亮延延时时1秒秒东东西西路路口口红红灯灯亮亮,南南北北路路口口绿绿灯灯亮亮延延时时6秒秒东东西西路路红红灯灯亮亮,南南北北路路口口黄黄灯灯闪闪烁烁8次次每每次次延延时时1秒秒第27页/共87页第二十八页,共87页。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水 程序设计 调试 概要 PPT 学习 教案
限制150内