1、单片机原理与 C51 语言程序设计与基础教程 课后习题答案习题填空题1一般而言,微型计算机包括 、 、 、 四个基本组成部分。2单片机是一块芯片上的微型计算机。以 为核心的硬件电路称为单片机系统,它属于 地应用范畴。3Atmel 公司生产的 CMOS 型 51 系列单片机,具有 内核,用 代替 ROM 作为程序存储器,4单片机根据工作温度可分为 、 和 三种。民用级的温度范围是 0一 70,工业级是-4085,军用级是 -55-125(不同厂家的划分标推可能不同。5在单片机领域内,ICE 的含义是 。选择题1单片机的工作电压一般为 V?A 5V B 3VC 1V D 4V2单片机作为微机的一种
2、,它具有如下 特点: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 Flash RO
3、M4 民用级(商业级) 工业级 军用级5在线仿真器选择题1 A2 ABCD3 B4 C 5 D问答题1单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)
4、 。(2)在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(3)在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。(4)在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线
5、通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。(5)单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。2首先,大概了解单片机的机构,例如本书的第 2 章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于 51 系列单片机地编程软件是 Keil。Kei
6、l 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用 51 系列单片机的爱好者来说是十分必要的,如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。第三,要多结合外围电路,如流水灯、数码管、独立键盘、矩阵键盘、AD 或 DA(原理一样) 、液晶、蜂鸣器进行练习,因为,这样可以直观的看到程序运行的结果,当然,我们也可以用 proteus 这个软件对硬件进
7、行仿真,这样也可以直观的看到结果。在实际学习过程中,可以根据自己的项目需求去选择,从而减少了学习周期。最后,就是结合自己的实际情况,开发一个完全具有个人风格,功能完善的电子产品,尽情享受单片机带来的欢乐和成就感。同时,不必为软件、硬件基础知识不扎实而烦恼,单片机中用到的编程语言很简单,可以说主要是配置一些寄存器,不涉及太复杂的算法和语法,电子元器件也以简单应用居多,本书接下来的几章将主要介绍硬件和软件基础知识,这些对于单片机开发来说基本已经够用了。另一方面,在做单片机实验的过程中会慢慢地积累、一步步地巩固相关的基础知识,在实践中有针对性的学习肯定比纯粹地看书效果更好。所以,完全不必担心你的基础
8、不够扎实。3单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如 DVD 控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们通常所用的都是通用型单片机,通用型单片机把所有资源(如 ROM、I/O 等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。第 2 章答案填空题132 4 8 R0R72时钟电路 复位电路3指令寄存器 IR 程序计数器 PC 数据指针 DPTR 堆栈指针 SP4SBUF SCON5低电平 下跳变选择题1ABC2C 按 CPU 查询顺序
9、确定。即 1、 外部中断 0 2、定时中断 0 3、外部中断 1 4、定时中断 1 5、串行中断3A4C5D6C问答题1所谓中断,是指 CPU 在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起 CPU 中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行波暂时中断的程序。中断响应的过程如下:(1) 保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。(2) 寻找中断入口,根据 6 个不一样的中断源所产生的中断,查找 6 个不一样的入口地址。这 6 个中断源的编号和入口地址如表 2.13 所示各中断服务程序入口地址仅间隔
10、 8 字节,编译器在这些地址放入无条件转移指令,跳转到服务程序的实际地址。 。以上工作是由计算机自动完成的,与编程者无关。(3) 执行中断处理程序。(4) 中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。2P0 口既可作一般 I/O 端口使用,又可作地址/ 数据总线使用;P1 口是一个准双向并行口,作通用并行 I/O 口使用;P2 口除了可作为通用 I/O 使用外,还可在 CPU 访问外部存储器时作高八位地址线使用;P3 口是一个多功能口除具有准双向 I/O 功能外,还具有第二功能。3堆栈是一种后进先出(LIFO )的线性表,使用单片机内部 RAM 单元存储一些需要回避的数值数据
11、或地址数据。堆栈好像堆放货物的仓库一样,存取数据时采用“后进先出” (即“先进后出” )的原则。堆栈指针 SP 是用来存放当前堆栈栈顶指向的存储单元地址的一个8 位特殊功能寄存器,地址是 81H。堆栈只有两种操作:入栈和出栈。不论数据是入栈还是出栈,都是对栈顶单元(SP 指向的单元)进行操作的。堆栈是向上生成的。入栈时 SP 内容是增加的,出栈时 SP 的内容是减少的。堆栈区域的大小可用软件对 SP 重新定义初值来改变,但堆栈深度以不超过片内RAM 空间为限。系统复位后,SP 的值为 07H,若不重新定义,则以 07H 单元为栈底,入栈的内容从地址为 08H 单元开始存放。堆栈主要是为子程序调
12、用和中断操作而设立的,常用的功能有两个:保护断点和保护现场。在单片机系统中,既有与子程序调用和中断调用相伴随的自动入栈和出栈,又有堆栈的入栈和出栈指令(PUSH 和 POP) 。此外,堆栈还具有传递参数等功能。第 3 章答案1 立即寻址 寄存器寻址 间接寻址 直接寻址 变址寻址 相对寻址 位寻址2 累加器 A PC DPTR3 00,0,0,0,04 指令5 一 二 三6 转移指令的 PC 值加上它的字节数7 DPH=3CH , DPL=5FH , SP=4FH选择题1 C2 C3 A4 D 问答题1(1) 分析问题:首先必须明确求解问题的意义和任务。对项目背景和要完成的任务进行详细地了解和分
13、析,将一个实际的问题转化为单片机可以处理的问题。(2) 确定算法:根据实际问题的要求和指令系统的特点,决定所采用的计算公式和计算方法。这是正确编程的基础,比程序设计语言本身更为重要。(3) 绘制框图:根据所选定的算法,制定出运算步骤和顺序,把运算过程画成程序框图。这样使程序清晰,结构合理,便于调试。(4) 分配资源:要根据程序区、数据区、暂存区、堆栈区等预计所占空间大小,对片内外存储区进行合理分配并确定每个区域的首地址,便于编程使用。(5) 编写程序:编写程序就是采用汇编语言来实现上面已确定的算法,也即是将由人类自然语言组织的程序框图转化为计算机语言组织的源代码。(6) 仿真调试:利用单片机各
14、种开发工具对所编写的程序进行测试,检验程序是否完成了指定的功能。测试过程要尽可能仔细,保证程序中的各条支路都得到了检验。(7) 软件优化:在完成指定功能的基础上,进行程序优化,以进一步缩短程序量、减少运算时间和节省工作单元。(8) 状态固化:完成前期工作之后,将程序烧录到 EEPROM 等程序存储器上,保证单片机系统每次上电后都能正确运行程序。(9) 文档说明:将程序的功能和使用方法,程序的基本结构和所采用的主要算法以及程序必要说明和注意事项等问题整理成一个文档,不仅便于用户使用,而且便于对程序的维护和扩充。2 (1)bit 位标量:利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。
15、它的值是一个二进制位,不是 0 就是 1,类似一些高级语言中的 Boolean 类型中的 True 和 False。(2) sbit 可寻址位:利用它能定义内部 RAM 中的可寻址位或特殊功能寄存器中的可寻址位。(3) sfr 特殊功能寄存器:利用它能定义 8051 系列单片机内部的所有特殊功能寄存器, (4) sfr16 特殊功能寄存器:sfr16 和 sfr 一样用于操作特殊功能寄存器,所不一样的是它用于操作占两个字节的寄存器,如定时器 T0 和 T1。3变址寻址变址寻址是以某个寄存器的内容为基础,然后在这个基础上再加上地址偏移量,形成真正的操作数地址,需要特别指出的是用来作为基础的寄存器
16、可以是 PC 或是 DPTR,地址偏移量存储在累加器 A 中。相对录址相对寻址主要是针对跳转指令而言的。对于跳转指令,跳转去的目标指令的地址是通过正在执行的指令地址来确定的,一般是采用正在执行的指令地址加上偏移量的方式。即:转移目的地址当前 PC 值相对偏移量 rel。偏移量可以是正也可以是负,偏移量是采用有符号数的存储形式即补码的形式来存储的。位寻址位寻址方式是指将要访问的数据是一个单独的位,指定位数据的方式有:通过位地址、通过字节地址加点及位数、通过寄存器名加点及位数、通过位的名称。41)SP=SP+1=61H (61H)=PC 的低字节=03HSP=SP+1=62H (62H)=PC 的
17、高字节=20H2)PC=3456H3)可以4)2KB2048 Byte562H , 30H , 70H60CBH7交换 A、B 的内容编程题1. MOV A, 45HANL A, #0FHORL A, #0FHMOV 45H, A2. START: MOV R0,#30HMOV R2,#20HLOOP: MOV A,R0CJNE A,#0AAH,NEXTMOV 51H,#01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#00HEXIT: RET3. ORG 0000HLJMP MAIN ;跳转到主程序中MAIN: MOV A, 30HADD A, 40H
18、MOV 40H, A ;最低字节加法并送结果MOV A, 31HADDC A, 41HMOV 41H, A ;第二字节加法并送结果MOV A, 32HADDC A, 42HMOV 42H, A ;第三字节加法并送结果MOV A, 33HADDC A, 43HMOV 43H,A ;第四字节加法并送结果,进位位在 Cy 中END第 4 章填空题1. Serial Window # Serial Window #22编译 链接3Create HEX File4. target Xtal(MHz)5. Small、Compact 、 Large选择题1BD2B3D4B 5.A简答题. 一般来说,一个单
19、片机软件开发的过程是这样的:(1)建立工程;(2)设置工程;(3)建立 C 源文件;(4)编译、连接;(5)调试;(6)运行。2. 程序调试一般用单步执行,全速执行,在线汇编,断点设置等方法。3 Keil 提供了一个集成开发环境( IDE:Integrated Development Environment )uVision,它包括 c 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器。这样在开发应用软件的过程中,编辑、编译、汇编、连接、调试等各阶段都集成在一个环境中,先用编辑器编写程序,接着调用编译器进行编译,连接后即可直接运行。这样避免了过去先用编辑器进行编辑,然后退出编辑状态进行
20、编译,调试后又要调用编辑器的重复过程,因此可以缩短开发周期。4. C51 标签页主要用于设置当前项目进行创建时的 C51 编译器控制命令。其属性设置对话框如图 4.15 所示。一般的应用程序中,此标签页的属性全部采用默认值。本例全部采用默认值。各主要属性的含义简要说明如下:(1) Preprocessor Symbols:用于设定 C51 编译器预处理命令符号,在“Define”处可直接键入需要处理的符号。(2) Code Optimization:用于设置 C51 编译器的代码优化。通过“Level”栏可以设定 0-11级优化级别,其中 10、11 级别只有在复选框“Linker Code
21、Packing”被选中的情况下才能选用;通过“Emphasis”栏可以设定两种优化方式;选中复选框“Global Register Coloring”时将为全局寄存器优化规定一个寄存器文件;选中复选框 “Linker Code Packing”将对生成代码进行跳转优化;选中复选框“Dont use absolute register accesses”将不使用局对寄存器访问;通过“Warning”栏可以设定 0-2 级警告;通过“Bits to round for float”栏可以设定浮点数比较运算时的舍入位数;复选框“Interrupt vectors at”用于设定中断向量基地址。(3)
22、 Include Paths:用于直接输入包含文件的目录地址路径。也可以通过按下该栏右边的按钮,通过弹出的搜寻窗口来确定包含文件的目录地址路径。(4) Misc Controls:用于输入其他各种 C51 的控制命令。(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;
23、int a=8,c;delay(10);void delay() char I;for(i=0;ivoid delay02s(void) /延时子程序unsigned 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-
24、)for(j=20;j0;j-)for(k=n;k0;k-);void main(void)unsigned char a;int t=0; for(;)while(a=0) /自减运算控制P1=a;delay02s(t+);a-; a+; if(t=25500) t=0; /溢出恢复前一值第 6 章填空题1.通过寄存器传递参数 通过固定存储区传递。2编译 链接3R74. SRC .ASM5. 单独设计、调试和管理选择题1C2ABCD3D4D5. AD 上机题3. 模块 1:主程序模块,程序清单如下:#include void delay4ms(void);sbit P2-1=P21;void
25、 main(void) uchar i;for(;) P2_1=0;delay4ms();P2_1=1;delay4ms();模块 2:C 语言延时模块,调用了汇编延时模块,程序如下:#include#define uchar unsigned charsbit P2-0=P20;delaylms(uchar x); /* 定义延时 1ms 函数(模块三) */ void delay4ms(void)P2-0=0;delaylms(2);/* 调汇编函数(模块三) */P2-0=1;delaylms(2);/* 调汇编函数(模块三)* 模块 3:汇编延时模块,程序如下:PUBLIC _DELAY1MS ;DELAY1MS 为其他模块调用
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。