单片机原理及应用 第15讲 习题及程序设计

上传人:我** 文档编号:117867933 上传时间:2019-12-11 格式:PPT 页数:23 大小:116.50KB
返回 下载 相关 举报
单片机原理及应用 第15讲 习题及程序设计_第1页
第1页 / 共23页
单片机原理及应用 第15讲 习题及程序设计_第2页
第2页 / 共23页
单片机原理及应用 第15讲 习题及程序设计_第3页
第3页 / 共23页
单片机原理及应用 第15讲 习题及程序设计_第4页
第4页 / 共23页
单片机原理及应用 第15讲 习题及程序设计_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机原理及应用 第15讲 习题及程序设计》由会员分享,可在线阅读,更多相关《单片机原理及应用 第15讲 习题及程序设计(23页珍藏版)》请在金锄头文库上搜索。

1、习题 1、某单片机应用系统,需要扩展8个外 部中断源,怎样扩展?画出电路图 2、如果单片机的振荡频率为12MHz,要 求定时器T0工作在方式0,分别实现 50ms、10ms、5ms的定时时间,那么怎 样设置TH0及TL0 3、如果单片机的振荡频率为12MHz,要 求定时器T0工作在方式1,分别实现 50ms、10ms、5ms的定时时间,那么怎 样设置TH0及TL0 4、如果单片机的振荡频率为12MHz,试 用单片机的定时方式产生频率为50KHz 的等宽矩形方波,怎样编程 程序设计 MCS-51单片机的汇编语言程序结构主要 有三种:顺序结构程序、分支结构程序 、循环结构程序 1、分支结构程序 程

2、序不再顺序执行,而是根据条件来选 择程序流向的程序结构,称为分支结构 程序 分支程序可根据要求无条件或条件地改变程序执 行流向。编写分支程序主要在于正确使用转移指 令。分支程序有:单分支结构、双分支结构、多 分支结构 条件成立? 下条指令 程序段A 单分支结构 Y N 条件成立? 程序段B YN 程序段A 双分支结构 K=? 程序段n n 0 程序段1 多分支结构 程序段0 1 散转程序的设计 散转程序就是利用散转指令JMP A+DPTR 实现的多分支结构程序。 例:设有一简易键盘有四个按键,其功能分布 如表所示,现要求编写相应的键盘处理程序, 其中的键值由其他的处理程序获得,设当按下 某个键

3、时,就能在累加器中获得相应的键值。 按键名键值处理该按键的 子程序 加00HADDLABEL 减01HSUBLABEL 乘02HMULLABEL 除03HDIVLABEL MOV DPTR ,#TAB CLR C RLC A JMP A+DPTR TAB:AJMP ADDLABEL AJMP SUBLABEL AJMP MULLABEL AJMP DIVLABEL ADDLABEL: SUBLABEL: MULLABEL: DIVLABEL: 2、 循环程序 循环程序一般由以下三部分组成: 初始化部分 循环体部分-处理部分、修改部分、控制部分 结束部分 其结构一般有两种: 先进入处理部分,再控

4、制循环 至少执行一次循环体 先控制循环,再进入处理部分 循环体是否执行,取决于判断结果。 开始 设置循环初值 循环处理 循环修改 结束处理 结束 循环结束? 开始 设置循环初值 循环处理 循环修改 结束处理 结束 循环结束? N Y Y N 循环控制的一般方法: v 循环次数已知:利用循环次数控制 v 循环次数未知:利用结束标志控制 例1:连续传送数据块 1)直接给出数据块长度的 例:把16个数据从片内RAM以40H为始 址的单元中连续传送到片外RAM以 2000H为始址的单元中 2)给出数据块长度,且数据块长度存放 在一个单元中 外部RAM 从2001H单元开始存放数据块 ,数据块长度放在2

5、000H单元,现将数据 连续传送到内部RAM以30H为起始地址 的区域中。 ORG 0100H MOV DPTR,#2000H MOVX A, DPTR MOV R1,A INC DPTR MOV R0,#30H LOOP: MOVX A,DPTR MOV R0,A INC DPTR INC R0 DJNZ R1,LOOP END 3)没有给出数据块长度,但给出了数据 块结束标志 例:已知外部RAM以2000H开始有一个 数据缓冲区,该缓冲区中数据以回车符 (ASCII码为0DH)为结束标志,试编一 程序把正数送入片内RAM以30H开始的 正数区,把负数送入片内RAM以50H开 始的负数区。

6、内部RAM 30H开始的存储区有若干个数据 ,最后一个数据为字符FFH,统计出数据 个数,并将统计结果存入40H单元。 例2:统计数据块的长度 ORG 0100H MAIN: MOV R1,#30H;R1作为地址指针 CLR A;累加器A作为计数器 LOOP:CJNER1,#0FFH,NEXT;与数据FFH比较 SJMPJSH1;找到结束符号,结束循环 NEXT:INC A;计数器加1 INC R1;指针加l SJMP L00P;循环 JSHl:INC A ;再加入l个字符 MOV30H,A;存结果 END 3、查表程序 例:已知R0低四位有一个十六进制数(0 -F中的一个),请编程把它转换成ASCII 码并送入R0 ORG 0400H MOV A, R0 ANL A,#0FH MOV DPTR,#TAB MOVC A, A+DPTR MOV R0, A SJMP $ TAB:DB 0,1,2,3,4,5,6,7,8,9 DB A,B,C,D,E,F END ORG 0400H MOV A, R0 ANL A, #0FH ADD A, #03H MOVC A, A+PC MOV R0, A SJMP $ TAB:DB 0,1,2,3,4,5,6,7,8,9 DB A,B,C,D,E,F END

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号