




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片及应用技术第1页,课件共25页,创作于2023年2月一、将下列数分别转换为二进制、十六进制、BCD数。1、124.625=(1111100.101)B=(7C.A)H=(000100100100.011000100101)BCD2、45279.25=(1011000011011111.01)B=(B0DF.4)H=(01000101001001111001.00100101)BCD二、用原码、补码表示下列十进制数1、(127)原=011111111B,(127)补=011111111B2、(-63)原=10111111B,(-63)补=11000001B三、运算下列带符号数,并判断是否溢出1、11000001+11110000=(10110001)没溢出2、11001001+10000001=(01001010)溢出第2页,课件共25页,创作于2023年2月1、MCS-51单片机的信号有何功能?在使用8031时信号引脚应如何处理?答:引脚为访问程序存储器控制信号。(1)当引脚接成高电平时,CPU首先从片内程序存储器0000H字节单元开始取指令执行程序。当指令地址寄存器PC中的内容超过0FFFH后,就自动转向片外扩展的程序存储器中取指令执行。(2)当引脚接成低电平时,复位后CPU直接从片外ROM的0000H字节单元开始取指令执行,这时芯片内部0000H~0FFFH的4KB单元被忽略不用。使用8031时,由于其内部没有程序存储器,必须使用外部扩展程序存储器,它的引脚应该接成低电平,CPU直接从片外扩展的EPROM中取指令执行。第3页,课件共25页,创作于2023年2月2、内部RAM低128单元划分为哪3个主要部分?说明各部分的使用特点。答:内部RAM低128B单元,按功能特点划分为3个不同的区,分别如下:(1)工作寄存器区:地址范围为00H~1FH的32B存储器单元,分为4个组,每组有8个字节单元,定名为R0~R7。通过改变程序状态字特殊功能寄存器PSW中RS1、RS0两位的内容,每组工作寄存器均可选作CPU的当前工作寄存器组。(2)位寻址区:地址为20H~2FH的16个字节单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。(3)一般数据存储区:地址范围为30H~7FH的区域,可用于原始数据及运算结果的存储。堆栈一般开在此区。第4页,课件共25页,创作于2023年2月3、堆栈的作用是什么?堆栈示器(SP)的作用是什么?在程序设计时,为什么要对SP重新赋值?答:堆栈的主要作用是暂时存放数据和地址,通常用来保护断点和现场。SP始终存放堆栈顶部字节单元的地址(栈顶指针)。进行堆栈操作有两种方式,一种叫数据压入(PUSH)堆栈,另一种叫数据弹出(POP)堆栈。数据压栈时,SP首先自动加1,然后数据压入SP内容指示的字节单元中;而数据出栈时,SP内容指示的字节单元中的数据弹出,然后SP自动减1,这样SP始终指向堆栈顶部字节单元。系统复位后,SP初始化为07H,使得堆栈事实上由08H开始。因为08H~1FH单元为工作寄存器区,20H~2FH为位寻址区。在程序设计中很可能要用到这些区,所以用户在编程时要对堆栈指针SP重新赋值,最好把SP初值设为2FH或更大值。第5页,课件共25页,创作于2023年2月9、什么是拍节、状态、指令周期和机器周期?若单片机外接12MHz晶振,试分别计算拍节、状态和机器周期
答:拍节:振荡脉冲的周期,为最小的时序单位状态(周期)
:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。机器周期:MCS-51规定机器周期包含12个拍节;指令周期:执行一条指令所需要的时间;12MHz晶振,
状态S=2P=2*0.088=0.1666μs机器周期=0.08812=1μs第6页,课件共25页,创作于2023年2月5、程序计数器(PC)有哪些特点?程序计数器PC存放着下一条将要从程序存储器中取出的指令的地址。程序计数器PC的数据长度决定了程序存储器可以直接寻址的范围。程序计数器PC不可寻址,即不能对其赋值,其内容变化方式有:1)自动加1,此为最基本的变化方式。2)执行条件或无条件转移指令时,其内容由转移指令直接修改,改变原程序执行方向。3)执行调用指令或响应中断时,PC的内容变化过程如下:PC的当前值,即下一条将要执行的指令的地址送入堆栈,加以保护;将子程序的入口地址或者中断矢量地址送入PC,改变原程序执行方向,执行子程序或中断服务程序;子程序或中断服务程序执行完毕,遇到返回指令RET或RETI时,将栈顶的内容送到PC中,程序又返回到原来的地方,继续执行主程序。第7页,课件共25页,创作于2023年2月若要完成以下数据传送,如何应用80C51指令予以实现?(1)R1的内容传送到R0:MOVA,R1MOVR0,A(2)外部RAM20H单元的内容送入R0:MOVR1,#20HMOVXA,@R1MOVR0,A(3)外部RAM0020H单元内容送内部RAM20H单元:MOVR0,#20HMOVXA,@R0MOV20H,A第8页,课件共25页,创作于2023年2月(4)外部RAM1000H单元内容送内部RAM20H单元:MOVDPTR,#1000HMOVXA,@DPTRMOV20H,A5)外部ROM2000H单元内容送R0:MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOVR0,A第9页,课件共25页,创作于2023年2月(6)外部ROM2000H单元内容送内部RAM20H单元:MOVA,#00HMOVDPTR,#2000HMOVCA,@A+DPTRMOV20H,A(7)外部ROM2000H单元内容送外部RAM0020H单元:MOVA,#00HMOVR0,#20HMOVDPTR,#2000HMOVCA,@A+DPTRMOVX@R0,A
第10页,课件共25页,创作于2023年2月(8)外部RAM2000H单元内容送外部RAM3000H单元:MOVDPTR,#2000HMOVXA,@DPTRMOVDPTR,#3000HMOVX@DPTR,A第11页,课件共25页,创作于2023年2月1、把长度为10H的字符串从内部RAM起始地址为40H的单元输出到外部RAM起始地址为5000H的单元中。MOVR0,#40HMOVDPTR,#5000HMOVR2,#10HLOOP:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR2,LOOPSJMP$第12页,课件共25页,创作于2023年2月2、三字节无符号数相加,被加数在内部RAM的50H、51H、52H单元中,加数在内部RAM的53H、54H、55H单元中,要求把相加之和存放在50H、51H、中52H单元中,进位存放在位寻址区的00H位中。MOVA,50HADDA,53HMOV50H,AMOVA,51HADDCA,54HMOV51H,AMOVA,52HADDCA,55HMOV52H,AMOV00H,C第13页,课件共25页,创作于2023年2月3、拆字。将片内RAM20H单元的内容拆成两段,每段四位。并将它们分别存入21H与22H单元中。 MOVA,20H ANLA,#0FH MOV21H,A MOVA,20H SWAPA ANLA,#0FH MOV22H,A第14页,课件共25页,创作于2023年2月 MOVR0,#INBUFF MOVDPTR,#OUTBUFF MOVR1,#10HLOOP:MOVA,@R0 CLRC SUBBA,#0DH JZLOOP1 MOVA,@R0 MOVX@DPTR,A INCR0 INCDPTR DJNZR1,LOOPLOOP1:SJMP$P97(二):1、把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位于外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车符CR或整个字符串传送完毕。第15页,课件共25页,创作于2023年2月4、MOVDPTR,#buf MOVA,byte MOVR2,#08HLOOP:RRCA MOVR1,A JCLOOP1 MOVA,#30HSJMPLOOP2LOOP1:MOVA,#31HLOOP2:MOVX@DPTR,A MOVA,R1INCDPTR DJNZR2,LOOP SJMP$6 、 MOVR0,#42H MOVR1,#52H MOV40H,#00HLOOP:MOVA,@R0
CLRC SUBBA,@R1 JNZLOOP1 INCR1 INCR0 DJNZ41H,LOOP SJMPLOOP2LOOP1:MOV40H,#0ffHLOOP2:SJMP$第16页,课件共25页,创作于2023年2月1、存放在片内RAM的80H单元中的自变量X是一个无符号数,试编写程序求下面函数的函数值,并存放到片内RAM的81H单元中。X(X≥50)5X(50>X≥20)2X(X<20)Y=MOVA,80HCJNEA,#32H,LOOPJNCDONECJNEA,#14H,LOOP1JCLOOP2RLARLAADDA,80HSJMPDONERLAMOV81H,ASJMPHERELOOP1:LOOP:LOOP2:DONE:第17页,课件共25页,创作于2023年2月2、假定10个数连续存放在外部RAM2000H为首的单元中,使用冒泡法进行降序排序编程。SORT:MOVDPTR,#2000H MOVR7,#09H CLRTR0LOOP:MOVXA,@DPTR MOV2BH,A INCDPTR MOVXA,@DPTRMOV2AH,ACLRCSUBBA,2BHJCNEXT MOVA,2BHMOVX@DPTR,A DECDPL MOVA,2AHMOVX@DPTR,A INCDPTRSETBTR0NEXT:DJNZR7,LOOP JBTR0,SORT第18页,课件共25页,创作于2023年2月3、从内部RAM20H单元开始存放一组带符号数,字节个数存在1FH中。请统计出其中大于0、等于0、和小于0的数的个数,并把统计结果分别存入one、two、three三个单元中。 INCONE AJMPLOOP1NEG: INCTHREE AJMPLOOP1ZERO:INCTWOLOOP1:INCR0 DJNZ1FH,LOOP SJMP$CLRA MOVONE,A MOVTWO,A MOVTHREE,A MOVR0,#20HLOOP:MOVA,@R0 JZZERO JBACC.7,NEG第19页,课件共25页,创作于2023年2月1、单片机晶振频率为6MHz,定时器/计数器1使用工作方式1进行外部事件计数。每计数1000个脉冲后,定时器/计数器1转为定时工作方式,定时10ms后,又转为计数方式,如此循环不止1)工作方式12)计算初值:机器周期2μs定时初值:x=65536-10000/2=60536=EC78H计数初值:x=65536-1000=64536=FC18H3)控制字定时TMOD=10H计数TMOD=50HORG0000H LJMPMAINORG0100HMAIN:CLRTR1 MOVTMOD,#50HMOVTH1,#0FCHMOVTL1,#18HSETBTR1LOOP1:JBCTF1,LOOP2SJMPLOOP1LOOP2:CLRTR1MOVTMOD,#10HMOVTH1,#0ECHMOVTL1,#78HSETBTR1LOOP3:JBCTF1,MAIN SJMPLOOP3第20页,课件共25页,创作于2023年2月2、单片机晶振频率为6MHz,要求每隔100ms,从外部RAM以data开始的数据区传送一个数据到P1口输出,共传送100个数据。要求以两个定时器串行定时方法实现1)工作方式12)计算初值:机器周期2μs定时初值:x=65536-50000/2=40536=9E58H3)控制字定时TMOD=11H MOVTMOD,#11H MOVDPTR,#DATA MOVR1,#64HMAIN:CLRTR1 MOVTH0,#9EHMOVTL0,#58HSETBTR0LOOP1:JBCTF0,LOOP2SJMPLOOP1LOOP2:CLRTR0MOVTH1,#9EHMOVTL1,#58HSETBTR1LOOP3:JBCTF1,LOOP4 SJMPLOOP3LOOP4:MOVXA,@DPTR MOVP1,AINCDPTR DJNZR1,MAIN SJMP$第21页,课件共25页,创作于2023年2月3、以中断方法设计单片机秒、分脉冲发生器。假定P1.0每秒钟产生一个机器周期正脉冲,P1.1每分钟产生一个机器周期正脉冲 ORG0000HLJMPMAINORG000BHLJMPPITOORG0100HMAIN:MOVSP,#60HMOVTMOD,#01HMOV30H,#08HMOVTL0,#0DCHMOVTH0,#0BHSETBEASETBET0SETBTR0MOV73H,#00HSJMP$第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论