ImageVerifierCode 换一换
格式:DOCX , 页数:40 ,大小:472.68KB ,
资源ID:8777490      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8777490.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机应用技术思考与练习参考答案.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机应用技术思考与练习参考答案.docx

1、单片机应用技术思考与练习参考答案思考与练习参考答案项目1:1.什么是单片机,一块完整的单片机芯片有哪些组成部件?答:单片机是单芯片微型计算机SCM(Single-Chip Microcomputer)的简称,它是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口、中断系统、定时器/计时器等部件(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块芯片上构成的一个小而完善的微型计算机系统。2.请把下列十进制数转换为二进制数和十六进制数: 245 47.62 0.356答: 245D=11110101 B

2、=F5 H 47.62=101111.10011110 B=2F.9E H 0.356=0.01011011 B=0.5B H3.请把下列二进制数转换为十进制数和十六进制数: 110100111B 01001100B 1011.1100B答: 110100111B=128 + 127 + 125 + 122 + 121 + 120=423 D110100111B=1A7 H 01001100B= 126 + 123 + 122=76 D01001100B=4C H 1011.1100B=123 + 121 + 120 + 12-1 + 12-2 =11.75 D 1011.1100B=B.C

3、H4.写出下列十进制数在8位二进制数(含符号位)机中的原码、反码和补码: +76 -118 -55答: +76 的原码为 01001100 B, 反码为 01001100 B, 补码为 01001100 B -118的原码为 11110110 B, 反码为 10001001 B, 补码为 10001010 B -55 的原码为 10110111 B, 反码为 11001000 B, 补码为 11001001 B5.写出下列各数的BCD码 : 56 119 2014答: 56=(0101 0110)BCD 119=(0001 0001 1001)BCD 2014=(0010 0000 0001

4、0100)BCD6.MCS-51单片机内部包含哪些主要功能部件,各有什么主要功能?答:MCS-51单片机内部主要包含如下功能部件:1)中央处理器CPU:中央处理器是整个单片机的核心部件,由运算器和控制器组成,主要完成运算和控制功能。2)内部程序存储器和内部数据存储器:程序存储器用于存放已编写好的程序及数据表格,数据存储器用于存放输入、输出数据、中间运算结果。3)并行 I/O口:4组8位的可编程并行I/O(Input/Output)接口(P0、P1、P2、P3),可以实现数据的并行输入、输出。4个并行口既可作为I/O端口使用,又可作为外部扩展电路时的数据总线、地址总线及控制总线。4)串行接口:一

5、个全双工的可编程串行通信接口,以实现单片机与其它设备之间的串行数据传送。5)定时器/计数器:2个16位的定时器/计数器,可实现定时或计数功能。可以通过对系统时钟计数实现定时,也可用于对外部事件的脉冲进行计数。6)中断系统:具备较完善的中断功能,通过硬件改变CPU程序运行的方向,满足一般控制应用的需要。它共有5个中断源:2个外部中断源,3个内部中断源,即两个定时/计数器中断和一个串行口中断。7)时钟电路:内部有时钟电路,为单片机产生时钟脉冲时序,但需要外接晶振和微调电容。8)系统总线:按其传递信息的类型可分为数据总线、地址总线和控制总线,分别用来传输数据、地址和控制信号。7.AT89S51单片机

6、的P0、P1、P2、P3口各有什么用途,使用时应注意什么?答:P0口(0.0P0.7/AD0AD7):一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。作输入/输出口用时,必须外接上拉电阻,它可驱动8个TTL门电路。当访问片外存储器时,用作地址/数据分时复用口线。P1口(P1.0P1.7):一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。P2口(P2.0P2.7/A8A15):一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。当访问片外存储器时,用作高8位地址总线。P3口(P3.0P3.7):一组内部带上拉电阻的8位准双向I/O口。P3口的每一引脚同时还具

7、有专门的第二功能8.AT89S51单片机的存储器从物理结构上可划分为哪几个存储空间?答:AT89S51单片机的存储器在物理结构上有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。但在逻辑上,即从用户的使用角度,89S51有3个存储器地址空间:片内、外统一编址的程序存储器地址空间、片内数据存储器地址空间和片外数据存储器地址空间。9.AT89S51单片机采用何种方式区分片内、外程序存储器和片内、外数据存储器?答:AT89S51单片机在访问3个不同的逻辑空间时,应采用不同形式的指令,以产生不同的存储空间的选通信号。AT 89S51单片机内部有4KB的程序存储器,地址为0

8、000H0FFFH。片外16位地址线最多可扩展空间达64KB,地址为0000HFFFFH,两者是统一编址的。则地址范围为0000H0FFFH是在片内存储器还是片外存储器,取决于单片机外围引脚EA的状态。如果EA 接高电平(即EA =1),89S51的程序计数器PC在0000H0FFFH范围内(即前4KB地址)时是执行片内ROM的程序,当寻址范围在1000HFFFFH时,则读取片外ROM的指令数据;如果EA接低电平(即EA=0),则不管地址大小,一律读取外部程序存储器指令。使用片内和片外数据存储器时采用不同的指令加以区别。在访问片内数据存储器时,可使用MOV指令;要访问片外数据存储器可使用MOV

9、X指令。10.开机复位后,CPU使用的是哪组工作寄存器,它们的地址是什么,CPU如何改变当前工作寄存器组?答:开机复位后,CPU自动选中第0组工作寄存器,它们的地址是00H07H。如要改变当前工作寄存器组必须重新设置程序状态字PSW中RS1、RS0两位的状态。11.程序状态字寄存器PSW的作用是什么,常用状态标志位有哪些?答:程序状态字寄存器PSW是一个可编程的8位特殊功能寄存器,用于存储指令执行后的相关状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则可通过指令设置。常用状态标志位有:CY进位标志位、AC辅助进位标志位(半进位标志位)、F0用户标志位、RS1、R

10、S0工作寄存器组选择位、OV溢出标志位、P奇偶校验位。12.什么是堆栈,有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值? 答:堆栈是存储区中一个主要用来暂存数据和地址的特殊区域,操作时按“先进后出”的原则存放数据,其生成方向由低地址到高地址,通常在中断或调用子程序时用于保护现场和断点地址。堆栈指针SP是一个8位特殊功能寄存器,用以指示堆栈顶部在片内RAM中的位置。系统复位后,SP的初始值为07H。由于08H1FH单元为工作寄存器区13,20H2FH单元为位寻址区,所以在程序设计时一般将SP的初值改变至片内RAM的高地址区(30H以上)。13.当晶振频率为12MHZ时,AT89S51

11、单片机的状态周期、机器周期、指令周期各是多少微秒,ALE引脚输出频率是多少?答:石英晶体振荡器的频率为fOSC=12MHz,则状态周期 = 2 时钟周期 = 0.167s机器周期 = 12 时钟周期 = 1s指令周期 = (14)机器周期 = 1s4sALE引脚输出频率为1/6时钟频率,即:1/612MHZ=2 MHZ14.单片机的复位电路有哪几种,复位后单片机的初始状态如何?答:要实现复位操作,只需在89S51单片机的RST引脚上施加24个振荡周期以上的高电平信号就可以了。单片机的复位电路有两种形式:上电复位和按钮复位。当单片机进行复位操作后,各寄存器的内容被初始化。复位后除SP、P0P3及

12、SBUF外,其余各寄存器值均为0。PC=0000H代表单片机从地址为0处开始执行程序。端口P0P3为FFH表明所有端口锁存器均被置“1”,可进行输入/输出数据的操作。SP为07H, SBUF状态不定。15.AT89S51单片机有几种低耗方式,如何实现?答:AT89S51单片机有两种低功耗方式:待机(或称空闲)方式和掉电(或称停机)保护方式,这两种方式可通过电源控制寄存器PCON中有关位IDL(D0位)和PD(D1位)来控制。如果使用一条指令使寄存器PCON的IDL位为1,则AT89S51即进入待机方式,IDL置“0”,单片机即退出待机状态。寄存器PCON的PD位控制单片机进入掉电保护方式。当单

13、片机在检测到电源故障时,除进行信息保护外,还应把PCON的PD位置1,使之进入掉电保护方式,此时内部RAM单元的内容被保存,单片机一切工作都停止硬件复位或外部中断INT0、INT1可终止掉电保护方式。16.Proteus中电路连线的方式有几种?答:Proteus中电路连线的方式有两种。最常用的连线方式是:系统默认的自动捕捉功能打开,只要将光标放在需要连线的元器件引脚附近,就会自动捕捉到引脚,单击第一个对象的连接点,拖动鼠标到另一个对象的连接点处单击即可自动生成连线。在拖动过程中需要拐弯时单击鼠标左键即可。也可采用网络标号进行连线:在第一个连接点处放置一个输入终端INPUT,在另一个连接点处放置

14、一个输出终端OUTPUT,利用对象的编辑属性方法对两个终端进行标号(也可以用普通导线加网络标号),两个终端的标号(Label)必须一致。17.Proteus中删除一个元件可以采用几种方式?答:Proteus中删除一个元件的方式有好三种:鼠标左键单击选中元件,按键盘上的delete键可以删除;右键单击元件,在对话框中选择“Delete Object”也可以删除元件;右键双击元件也可进行删除。18.如何用Proteus进行软件和硬件的仿真调试?答:在Proteus中绘出电路,用汇编语言编写程序,在WAVE6000中编译得到HEX文件,或者用C51编写程序,在KEIL中编译得到HEX文件,然后在Pr

15、oteus中双击单片机,在弹出的对话框中的Program File 选项里关联到该HEX文件,最后在运行即可进行软件和硬件的仿真调试。19.使用Keil和Proteus进行联合调试时,还需要安装什么驱动?需要在两个软件中分别怎样设置?答:使用Keil和Proteus进行联合调试时,还需要安装vdmagdi.exe,这个文件是KEIL与Proteus联调的驱动程序,运行后,软件所需的设置全帮你设置好。需要在两个软件中分别进行如下设置:打开Keil,新建工程,编写源程序,并把这个程序文件加入工程中。如图1所示。图1 Keil uVision界面 右键单击Project窗口的Target 1,在弹出

16、的对话框中单击“Options for Target Target1,弹出选项设置对话框,如图2所示。图2 选项设置对话框打开Output选项卡,勾选 选项卡,在中可选择输出HEX文件的路径及文件名。然后打开Debug选项卡,如图3所示。在使用仿真器这个地方选图3 Debug选项卡择Proteus VSM Simulator,。4、打开ISIS,打开任务2中建好的电路图,点击Debug菜单,如图4所示。图4 Debug菜单勾选Use Remote Debug Monitor选项。至此,完成了联合调试所需的全部参数设定,ISIS中无需让MCU关联HEX文件。接下来就可以实现联合调试了。20.用C

17、51编程将单片机内部RAM30H单元的数据和40H单元的数据相乘,结果存入外部RAM1000H单元。答:C51编程如下:void main(void) char data *p1, *p2;char xdata *p3;p1=0x30;p2=0x40;p3=0x1000;*p3=(*p1) * (*p2);21.用C51编程将外部RAM2025H单元的内容传送到内部RAM 20H25H单元。答:C51编程如下:void main(void) char xdata *p1;char data *p2;p1=0x20;p2=0x20;while (p1=0x25)*p2= *p1;p1+;p2+;

18、22.用Proteus设计一个8位led流水的硬件电路,画出其原理图,并用汇编或c51编写源程序,然后在proteus中进行软硬件仿真调试。答:硬件电路见下图。 P1口接8个发光二极管D1- D8 构成流水灯结构,C3、R1、R2构成上电复位电路,C1、C2和X1构成晶振电路 8位LED流水灯硬件电路先向P1口送一个01H的初值,只让P1.0管脚上所接的LED亮,其它LED灭,延时一段时间后,将送出的数据左移,再从P1口送出,这样周而复始,就可实现亮点流动。C51源程序如下:#include void delay02s(void) unsigned char i,j,k; /*定义无符号字符型

19、 变量i,j,k ,局部变量说明*/ for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-); void main(void) /*主函数*/ unsigned char m = 0; P1=0x01; while(1) delay02s(); /*调用函数delay02s()*/ P1=P1 1; m+;if(m=0x08)P1=0x01;m=0; 仿真调试1)在Proteus中按照图1-16搭接好电路;2)在 Keil C51软件中编辑上述C51源程序,并进行编译,得到目标(HEX格式)文件;3)与Proteus原理图进行联合仿真调试,同时通过Pr

20、oteus原理图观察程序运行结果。23.用Proteus设计一个8位8段led动态显示的硬件电路,画出其原理图,并用汇编或c51编写源程序,然后在keil中进行联合调试。 解:硬件电路如下:参考程序为:#includetypedef unsigned char u8;u8 code Numbercode=0xA4,0xC0,0xF9,0x99,0xC0,0x99,0xC0,0x82;/*延时tms*/void Delay()u8 i,j;for(i=0;i0;i-)for(j=125;j0;j-);void main()while(1)u8 i=0;P3=0x01;for(i=0;i8;i+)

21、P2=Numbercodei;Delay();P2=0xFF;P3=1;项目2:1、编写程序,把外部RAM 2000H-20FFH的区域内的数据逐个搬到从1000H单元开始的区域。解: void main(void)int ;char xdata *x;char xdata *y;x=0x2000;y=0x1000;for(i=0;i0) *y = x;if(x0) *y =x+5;if(x=0)*y=0x20;汇编程序: ORG 0000HAJMP START ORG 0100H START: MOV A,30H JZ LP2 JNB Acc.7,LP1 ADD A,#05H MOV 30H

22、,ASJMP LL LP1: MOV 30H,A SJMP LL LP2: MOV 30H,#20H LL: SJMP $ END5、编程将内部RAM 30H到4FH共32个连续单元清0。解: ORG 0000H AJMP START ORG 0100HSTART: MOV R0,#20H ;循环计数器赋初值 MOV R1,#30H ;地址指针赋初值LOOP:MOV R1,#00H ;清0 RAM单元 INC R1 ;修改地址指针 DJNZ R0,LOOP ;循环控制 SJMP ;循环结束 END 6、编程求出内部RAM 30H单元中的数据中“0”的个数,并将结果存入31H单元。7、设单片机的

23、晶振频率=6MHz,试编写延时10ms的延时程序。解: ORG 0100HDELAY: MOV R1,#50DL1: MOV R7,#49DL: DJNZ R7,$DJNZ R1,DL1RET8、从内部RAM 30H单元开始存放一组无符号数,其数据个数存放在21H单元中。试编写程序,求出这组无符号数中的最小数,并将其存入20H单元中。解: ORG 0100H BLOCK DATA 30H LEN DATA 21HFMIN: MOV DPTR,#BLOCK ;数据块首址送DPTR DEC LEN ;长度减1 MOVX A,DPTR ;取数至ALOOP: CLR C ;C清零 MOV B,A ;暂

24、存于B INC DPTR ;修改指针 MOVX A,DPTR ;取数至A SUBB A,B ;比较两数JNC LOOP1 ;若B小则跳转 ADD A,B ;若A小则恢复A SJMP LOOP2LOOP1:MOV A,B ;将较小数存入ALOOP2:DJNZ LEN,LOOP ;未完,重复比较 MOV 20H,A ;存最小数 END9、编程查找内部RAM 20H到40H单元中出现0FFH的次数,并将结果存入41H单元中。解: ORG 0100HMOV R0,#20HMOV R1,#21HMOV R7,#00HLOOP: MOV A,R0 CJNE A,#0FFH,NEXT INC R7NEXT:

25、 INC R0 DJNZ R1,LOOP MOV 41H,R7 END10、设有100个有符号数,连续存放在以2000H为首地址的外部RAM中。试编程统计其中正数、负数、零的个数,并将结果分别放到片内RAM 20H、21H、22H三个单元中。解:参考第4题。11、在20H和21H两个单元中各有一个8位数,试编程求出两数的平方和。要求用子程序方法实现求平方,结果存放在22H和23H两个单元。解: 参考两个数都是09的程序 ORG 0100HMAIN: MOV SP,#50H ;设堆栈指针 MOV A,21H ;取a值 ACALL SQR ;求a2 MOV 20H,A ;a2 值暂存于20H MO

26、V A,22H ;取b值 ACALL SQR ;求b2ADD A,20H ;求a2+b2 MOV 20H,A ;结果存于20H单元 SJMP $ ORG 0150HSQR: MOV DPTR,#TAB ;修正A值 MOVC A,A+DPTR ;查平方表 RETTAB: DB 0,1,4,9,16,25 ;平方表 DB 36,49,64,81 END12、89S51单片机内部有几个定时器计数器?和定时器相关的特殊功能寄存器有哪些?答:有两个16位的定时器/计数器,和定时器相关的特殊功能寄存器有TMOD和TCON。13、89S51单片机的定时器计数器有哪几种工作方式?各有什么特点?答:参见下表14

27、、定时器计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制?答:定时器计数器用作定时方式时,定时时间与初值和机器周期有关;作计数时,最高的外部计数脉冲的频率不能超过振荡频率的1/24,并且要求外部计数脉冲的高电平和低电平的持续时间不能小于一个机器周期。 15、在89S51单片机中,已知时钟频率为 12 MHZ,请编程使P10和 P11分别输出周期为2ms和 500us的方波。解:用定时器1方式1定时,设初值为x,则(216-x)*1us=250,x=65286=FF06H 汇编源程序如下: ORG 0000H AJMP START ORG 0100HSTART: MOV 50H, #04H ;定时 1ms循环次数 MOV TMOD, #10H ;设定时器 1为方式 1 MOV TH1, #0FFH ;赋初值 MOV TL1, #06H SETB TR1 ;启动T1 L2: JBC TF1,L1 ;查询计数溢出 SJMP L2 L1: MOV TH1, #3CH MOV TL1, #0B0H CPL P1.1 ;到250us将P1.1取反 DJN

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1