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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机原理与C51语言程序设计与基础教程课后习题答案.docx

1、单片机原理与C51语言程序设计与基础教程课后习题答案单片机原理与C51语言程序设计与基础教程 课后习题答案习题填空题1一般而言,微型计算机包括 、 、 、 四个基本组成部分。2单片机是一块芯片上的微型计算机。以 为核心的硬件电路称为单片机系统,它属于 地应用范畴。3Atmel 公司生产的CMOS型51系列单片机,具有 内核,用 代替ROM作为程序存储器,4单片机根据工作温度可分为 、 和 三种。民用级的温度范围是0一70,工业级是-4085,军用级是-55-125(不同厂家的划分标推可能不同。5在单片机领域内,ICE的含义是 。选择题1单片机的工作电压一般为 V?A 5V B 3VC 1V D

2、 4V2单片机作为微机的一种,它具有如下 特点:A 具有优异的性能价格比 B 集成度高、体积小、可靠性高C 控制功能强,开发应用方便 D 低电压、低功耗。3民用级单片机的温度范围是: A -4085 B 0一70C -55-125 D 0一504MCS-51系列单片机最多有 个中端源。A 3 B 4 C 5 D 65下列简写名称中不是单片机或单片机系统的是A MCU B SCM C ICE D CPU问答题1单片机常用的应用领域有哪些?2我们如何学习单片机这么技术?3单片机从用途上可分成哪几类?分别由什么用处?填空题1 运算器、控制器、存储器、输入输出接口2 单片机 嵌入式系统3 MCS-51

3、 Flash ROM4 民用级(商业级) 工业级 军用级5在线仿真器选择题1、A 2、ABCD 3、B 4、C 5、D问答题1单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率

4、计,示波器,各种分析仪)。(2)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(3)在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(4)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动

5、通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。(5)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。2首先,大概了解单片机的机构,例如本书的第2章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。 其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于51系列单片机地编程软件是K

6、eil。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。第三,要多结合外围电路,如流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器进行练习,因为,这样可以直观的看到程序运行的结果,当然,我们也可以用proteus这个软件对硬件进行仿真,这样也可以

7、直观的看到结果。在实际学习过程中,可以根据自己的项目需求去选择,从而减少了学习周期。最后,就是结合自己的实际情况,开发一个完全具有个人风格,功能完善的电子产品,尽情享受单片机带来的欢乐和成就感。同时,不必为软件、硬件基础知识不扎实而烦恼,单片机中用到的编程语言很简单,可以说主要是配置一些寄存器,不涉及太复杂的算法和语法,电子元器件也以简单应用居多,本书接下来的几章将主要介绍硬件和软件基础知识,这些对于单片机开发来说基本已经够用了。另一方面,在做单片机实验的过程中会慢慢地积累、一步步地巩固相关的基础知识,在实践中有针对性的学习肯定比纯粹地看书效果更好。所以,完全不必担心你的基础不够扎实。3单片机

8、从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们通常所用的都是通用型单片机,通用型单片机把所有资源(如ROM、I/O等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。第2章答案 填空题132 4 8 R0R7 2时钟电路 复位电路3指令寄存器IR 程序计数器PC 数据指针DPTR 堆栈指针SP4SBUF SCON 5低电平 下跳变选择题1ABC2C 按CPU查询顺序确定。即1、 外部中断0 2、定时中

9、断0 3、外部中断1 4、定时中断1 5、串行中断3A 4C 5D 6C问答题1所谓中断,是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。中断响应的过程如下:(1) 保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。(2) 寻找中断入口,根据6个不一样的中断源所产生的中断,查找6个不一样的入口地址。这6个中断源的编号和入口地址如表2.13所示各中断服务程序入口地址仅间隔8字节,编译器在这些地址放入无条件转移指令,跳转到服务程序的实际

10、地址。以上工作是由计算机自动完成的,与编程者无关。(3) 执行中断处理程序。(4) 中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。2P0口既可作一般I/O端口使用,又可作地址/数据总线使用;P1口是一个准双向并行口,作通用并行I/O口使用;P2口除了可作为通用I/O使用外,还可在CPU访问外部存储器时作高八位地址线使用;P3口是一个多功能口除具有准双向I/O功能外,还具有第二功能。3堆栈是一种后进先出(LIFO)的线性表,使用单片机内部RAM单元存储一些需要回避的数值数据或地址数据。堆栈好像堆放货物的仓库一样,存取数据时采用“后进先出”(即“先进后出”)的原则。堆栈指针SP是用

11、来存放当前堆栈栈顶指向的存储单元地址的一个8位特殊功能寄存器,地址是81H。堆栈只有两种操作:入栈和出栈。不论数据是入栈还是出栈,都是对栈顶单元(SP指向的单元)进行操作的。堆栈是向上生成的。入栈时SP内容是增加的,出栈时SP的内容是减少的。堆栈区域的大小可用软件对SP重新定义初值来改变,但堆栈深度以不超过片内RAM空间为限。系统复位后,SP的值为07H,若不重新定义,则以07H单元为栈底,入栈的内容从地址为08H单元开始存放。堆栈主要是为子程序调用和中断操作而设立的,常用的功能有两个:保护断点和保护现场。在单片机系统中,既有与子程序调用和中断调用相伴随的自动入栈和出栈,又有堆栈的入栈和出栈指

12、令(PUSH和POP)。此外,堆栈还具有传递参数等功能。第3章 答案1 立即寻址 寄存器寻址 间接寻址 直接寻址 变址寻址 相对寻址 位寻址2 累加器A PC DPTR3 00,0,0,0,0 4 指令 5 一 二 三6 转移指令的PC值加上它的字节数7 DPH=3CH , DPL=5FH , SP=4FH选择题 CCADC问答题1(1) 分析问题:首先必须明确求解问题的意义和任务。对项目背景和要完成的任务进行详细地了解和分析,将一个实际的问题转化为单片机可以处理的问题。(2) 确定算法:根据实际问题的要求和指令系统的特点,决定所采用的计算公式和计算方法。这是正确编程的基础,比程序设计语言本身

13、更为重要。(3) 绘制框图:根据所选定的算法,制定出运算步骤和顺序,把运算过程画成程序框图。这样使程序清晰,结构合理,便于调试。(4) 分配资源:要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。(5) 编写程序:编写程序就是采用汇编语言来实现上面已确定的算法,也即是将由人类自然语言组织的程序框图转化为计算机语言组织的源代码。(6) 仿真调试:利用单片机各种开发工具对所编写的程序进行测试,检验程序是否完成了指定的功能。测试过程要尽可能仔细,保证程序中的各条支路都得到了检验。(7) 软件优化:在完成指定功能的基础上,进行程序优

14、化,以进一步缩短程序量、减少运算时间和节省工作单元。(8) 状态固化:完成前期工作之后,将程序烧录到EEPROM等程序存储器上,保证单片机系统每次上电后都能正确运行程序。(9) 文档说明:将程序的功能和使用方法,程序的基本结构和所采用的主要算法以及程序必要说明和注意事项等问题整理成一个文档,不仅便于用户使用,而且便于对程序的维护和扩充。2(1)bit位标量:利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是 0 就是 1,类似一些高级语言中的 Boolean 类型中的 True 和 False。(2) sbit可寻址位:利用它能定义内部 RAM 中的可寻址位

15、或特殊功能寄存器中的可寻址位。(3) sfr特殊功能寄存器:利用它能定义 8051系列单片机内部的所有特殊功能寄存器, (4) sfr16特殊功能寄存器:sfr16和 sfr 一样用于操作特殊功能寄存器,所不一样的是它用于操作占两个字节的寄存器,如定时器T0和T1。3变址寻址变址寻址是以某个寄存器的内容为基础,然后在这个基础上再加上地址偏移量,形成真正的操作数地址,需要特别指出的是用来作为基础的寄存器可以是PC或是DPTR,地址偏移量存储在累加器A中。相对录址相对寻址主要是针对跳转指令而言的。对于跳转指令,跳转去的目标指令的地址是通过正在执行的指令地址来确定的,一般是采用正在执行的指令地址加上

16、偏移量的方式。即:转移目的地址当前PC值相对偏移量rel。偏移量可以是正也可以是负,偏移量是采用有符号数的存储形式即补码的形式来存储的。位寻址位寻址方式是指将要访问的数据是一个单独的位,指定位数据的方式有:通过位地址、通过字节地址加点及位数、通过寄存器名加点及位数、通过位的名称。41)SP=SP+1=61H (61H)=PC的低字节=03H SP=SP+1=62H (62H)=PC的高字节=20H2)PC=3456H 3)可以 4)2KB2048 Byte562H , 30H , 70H 60CBH 7交换A、B的内容编程题1. MOV A, 45H ANL A, #0FH ORL A, #0

17、FH MOV 45H, A2. START: MOV R0,#30H MOV R2,#20H LOOP: MOV A,R0 CJNE A,#0AAH,NEXT MOV 51H,#01H LJMP EXIT NEXT: INC R0 DJNZ R2,LOOP MOV 51H,#00H EXIT: RET3. ORG 0000HLJMP MAIN ;跳转到主程序中MAIN: MOV A, 30H ADD A, 40H MOV 40H, A ;最低字节加法并送结果 MOV A, 31H ADDC A, 41H MOV 41H, A ;第二字节加法并送结果MOV A, 32H ADDC A, 42H

18、MOV 42H, A ;第三字节加法并送结果 MOV A, 33H ADDC A, 43H MOV 43H,A ;第四字节加法并送结果,进位位在Cy中 END第4章填空题1. Serial Window # Serial Window #2 2编译 链接3Create HEX File 4. target Xtal(MHz) 5. Small、Compact 、 Large选择题1BD 2B 3D 4B 5.A简答题. 一般来说,一个单片机软件开发的过程是这样的: (1)建立工程;(2)设置工程;(3)建立C源文件;(4)编译、连接;(5)调试;(6)运行。2. 程序调试一般用单步执行,全速执

19、行,在线汇编,断点设置等方法。3 Keil提供了一个集成开发环境(IDE:Integrated Development Environment )uVision,它包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器。这样在开发应用软件的过程中,编辑、编译、汇编、连接、调试等各阶段都集成在一个环境中,先用编辑器编写程序,接着调用编译器进行编译,连接后即可直接运行。这样避免了过去先用编辑器进行编辑,然后退出编辑状态进行编译,调试后又要调用编辑器的重复过程,因此可以缩短开发周期。4. C51标签页主要用于设置当前项目进行创建时的C51编译器控制命令。其属性设置对话框如图4.15所示。一般

20、的应用程序中,此标签页的属性全部采用默认值。本例全部采用默认值。各主要属性的含义简要说明如下:(1) Preprocessor Symbols:用于设定C51编译器预处理命令符号,在“Define”处可直接键入需要处理的符号。(2) Code Optimization:用于设置C51编译器的代码优化。通过“Level”栏可以设定0-11级优化级别,其中10、11级别只有在复选框“Linker Code Packing”被选中的情况下才能选用;通过“Emphasis”栏可以设定两种优化方式;选中复选框“Global Register Coloring”时将为全局寄存器优化规定一个寄存器文件;选中

21、复选框“Linker Code Packing”将对生成代码进行跳转优化;选中复选框“Dont use absolute register accesses”将不使用局对寄存器访问;通过“Warning”栏可以设定0-2级警告;通过“Bits to round for float”栏可以设定浮点数比较运算时的舍入位数;复选框“Interrupt vectors at”用于设定中断向量基地址。(3) Include Paths:用于直接输入包含文件的目录地址路径。也可以通过按下该栏右边的按钮,通过弹出的搜寻窗口来确定包含文件的目录地址路径。(4) Misc Controls:用于输入其他各种C5

22、1的控制命令。(5) Compiler control string:用于显示所有已设定的C51编译器控制命令。第5章填空题1. sfr sbit2. 顺序,选择,循环3. 74. 25. 重用(再用)选择题1. C2. A3. B4. C5. A6. B7. C上机题1. 在delay(10)后加一个分号,main函数少一个,程序如下:# include main() a=c; int a=8,c; delay(10); void delay() char I; for(i=0;i=255;i+);2.#include void delay02s(void) /延时子程序 unsigned

23、char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-); void main(void) unsigned char a; for(;) P1=0FH; /将值送到P1口 delay02s(); P1=P1; delay02s(); 3. #include void delay02s(int n) /延时子程序 unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=n;k0;k-); void main(void) unsigned char a; int t=0;

24、 for(;) while(a=0) /自减运算控制 P1=a; delay02s(t+); a-; a+; if(t=25500) t=0; /溢出恢复前一值 第6章填空题1.通过寄存器传递参数 通过固定存储区传递。2编译 链接3R74. SRC .ASM5. 单独设计、调试和管理选择题1C 2ABCD 3D 4D 5. AD 上机题3. 模块1:主程序模块,程序清单如下:#include void delay4ms(void); sbit P2-1=P21; void main(void) uchar i; for(;) P2_1=0;delay4ms(); P2_1=1;delay4ms

25、();模块2:C语言延时模块,调用了汇编延时模块,程序如下: #include #define uchar unsigned char sbit P2-0=P20; delaylms(uchar x); /* 定义延时1ms函数(模块三) */ void delay4ms(void) P2-0=0; delaylms(2);/* 调汇编函数(模块三) */ P2-0=1; delaylms(2);/* 调汇编函数(模块三)* 模块3:汇编延时模块,程序如下:PUBLIC _DELAY1MS ;DELAY1MS为其他模块调用 DE SEGMENT CODE ;定义DE段为再定位程序段 RSEG

26、DE ;选择DE为当前段 _DELAY1MS: NOP DELA: MOV R1,#0F8H ;延时 LOP1: NOP NOP DJNZ R1,LOP1 DJNZ R7,DELA ;R7为C程序传递过来的参数(x=2) EXIT: RET END 第7章 填空题1.reg51.h reg5.h2. 定时/计数器2中断3. C/位4.0013H5. PC、PC、中断向量选择题1.A2.C3.D4.D5.C上机题1. #include stdio.hsfr P1=0x90;main() int i; P1=0xf0; while(1) P1=P1; for(i=0;i5000;i+); 2. #

27、 includereg51.hint0() interrpt 0 P1=P110x01; main() P1=-xfe; EA=1;EX0=1;IT0=1;3. #include reg51.hsbit p3_2=P32;main() unsinged char *P,i; int a; P=0x50; TMOD=0x09; TL0=0;TH0=0; while(P3_2=1); T00=1; while(P3_2=0); while(P3_2=1); TR0=0; i=TH0; a=i*256+TL0; for(;a!=0;) *P=a%10; a=a/10; P+; *P=a; 第8章填空

28、题1. 数据 控制 地址22n 2n384. P2 P05.线选法 译码法 选择题1A 2CD 3B 4C 5. B上机题1. #include reg51.h#include absacc.h#define COM8255 XBYTE0X7FFF#define A8255 XBYTE0X7FFFmain() unsigned int ; COM8255=0X80; A8255=0XF3; while(1) COM8255=0X0; for(j=0;j=10000;j+); COM8255=0X01; for(j=0;j=10000;j+); 2.参考实验8-23. #include absa

29、cc.h#include reg51.h#define uchar unsigned char#define uint unsigned int#define COM8253 XBYTE0X8003#define C1 XBYTE0X8000#define C2 XBYTE0X8001#define C3 XBYTE0X8002#define SNUM 1sbit P1_7=P17;uchar it =20;uchar sn=SNUM;uint idata BUF82533;void usto() TMOD=TMOD&0XF0+0X01; TH0=0X4C;TL0=0X81; TR0=1;ET0=1;EA=1; p1_7=1;void toi(void) interrupt 1

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

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