- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及应用 第15讲 习题及程序设计
习题 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、分支结构程序 程序不再顺序执行,而是根据条件来选择程序流向的程序结构,称为分支结构程序 散转程序的设计 散转程序就是利用散转指令JMP @A+DPTR 实现的多分支结构程序。 例:设有一简易键盘有四个按键,其功能分布如表所示,现要求编写相应的键盘处理程序,其中的键值由其他的处理程序获得,设当按下某个键时,就能在累加器中获得相应的键值。 MOV DPTR ,#TAB CLR C RLC A JMP @A+DPTR TAB:AJMP ADDLABEL AJMP SUBLABEL AJMP MULLABEL AJMP DIVLABEL …… ADDLABEL: SUBLABEL: MULLABEL: DIVLABEL: 2、 循环程序 例1:连续传送数据块 1)直接给出数据块长度的 例:把16个数据从片内RAM以40H为始址的单元中连续传送到片外RAM以2000H为始址的单元中 2)给出数据块长度,且数据块长度存放在一个单元中 外部RAM 从2001H单元开始存放数据块,数据块长度放在2000H单元,现将数据连续传送到内部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开始的负数区。 例2:统计数据块的长度 内部RAM 30H开始的存储区有若干个数据,最后一个数据为字符FFH,统计出数据个数,并将统计结果存入40H单元。 ORG 0100H MAIN: MOV R1,#30H ;R1作为地址指针 CLR A ;累加器A作为计数器 LOOP:CJNE @R1,#0FFH,NEXT;与数据FFH比较 SJMP JSH1 ;找到结束符号,结束循环 NEXT:INC A ;计数器加1 INC R1 ;指针加l SJMP L00P ;循环 JSHl:INC A ;再加入l个字符 MOV 30H,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
文档评论(0)