采用单片机控制,使仪器仪表数字化、智能化、小型化,其功能比采用电子或数字电路的仪器仪表更为强大。例如,精密测量设备(功率表、示波器、各种子系统等)。 (2)在工业控制中的应用 单片机可用来组成各种控制系统和数据采集系统。例如,工厂流水线的智能管理,电梯的智能控制,各种报警系统,以及与计算机联网,组成二次控制系统等。 (3)在家用电器中的应用 可以说,现在绝大多数家用电器都采用单片机控制,从电饭锅、洗衣机、冰箱、空调、彩电、其他音视频设备,到电子称重设备,种类繁多,无处不在。 (4)在计算机网络与通信中的应用 现代的单片机一般都带有通讯接口,可以很方便地与计算机相连接,单片机可以与计算机进行数据通讯,为计算机网络与通信设备之间的应用提供了极好的物质条件。 目前,大多数通讯设备都已实现了单片机的智能控制,从移动电话、电话机、小型程控交换机、楼宇自控通信呼叫系统、列车无线通信,到日常工作中随处可见的手机、集群移动通信、无线对讲机等等。 (5)单片机在医疗设备领域的应用 单片机在医疗设备中的应用也十分广泛,如医用的呼吸机、各种分析仪、监护仪、超声诊断设备以及床位呼叫系统等等。此外,单片机在工商、金融、科研、教育、国防、航空航天等领域都有着广泛的用途。
2、首先需要对单片机的结构有一个大概的了解,比如本书第一章主要讲了单片机的内部结构和资源,在对单片机的内部结构有了初步的了解之后,读者可以通过做简单的例题练习,加深对单片机的理解。其次,要有大量的例题练习。其实对于单片机来说,最主要的还是软件设计,也就是编程。目前最流行的51系列单片机编程软件是keil。keil通过一个集成开发环境(uvision)组合在一起,提供了包括编译器、宏汇编器、连接器、库管理和功能强大的仿真调试器等完整的开发解决方案。对于使用51系列单片机的爱好者来说,掌握这个软件的使用是非常有必要的。如果你使用语言编程,那么Keil几乎是你最好的选择,即使你不使用语言,只使用汇编语言编程,其方便易用的集成环境和功能强大的软件仿真调试工具,也会让你事半功倍。 第三,要多练习外围电路,比如跑灯、数码管、独立键盘、矩阵键盘、ADD(原理一样)、液晶、蜂鸣器等,因为可以直观的看到程序运行的结果。当然,我们也可以用Proteus这个软件来模拟硬件,这样也可以直观的看到结果。在实际的学习过程中,大家可以根据自己的项目需求来选择,从而减少学习周期。最后就是结合自己的实际情况,开发出一款完全属于个人风格、功能齐全的电子产品,享受单片机带来的快乐和成就感。
同时,也不用担心自己基础不扎实。单片机使用的编程语言很简单,可以说主要是配置一些寄存器,不涉及太复杂的算法和语法。对电子元件大多都是简单的应用。本书后面几章主要会介绍硬件和软件的基础知识,对于单片机开发来说,基本够用了。另一方面,在做单片机实验的过程中,你会慢慢积累、一步步巩固相关的基础知识。在实践中有针对性的学习,肯定比单纯的看书要好。所以,完全不用担心自己基础不扎实。 3、单片机可以分为专用单片机和通用单片机两大类。专用单片机是为某一特定用途而设计的,比如DVD控制器、数码相机控制芯片等。在使用量不大的情况下,设计制造这种专用芯片的成本很高,设计制造周期也很长。 我们通常使用的是通用单片机,它把所有的资源(等)提供给用户。如今生产通用单片机的厂家不下几十家,种类多达几百种。 填空答案 1.3 2.时钟电路 复位电路 3.指令寄存器 IR 程序计数器 PC 数据指针 DPTR 堆栈指针 SP 4.SBuf SCON 多选题 1.ABC 2.CPU查询顺序是确定的。即外部中断 14、定时中断、串行中断 3.A 4.C 问答 1.所谓中断,是指CPU在正常运行程序时,因内部/外部事件或者程序预先安排的事件而中断正在运行的程序,切换到为这些内部/外部事件或预先安排的事件服务的程序,服务完成后再返回执行被暂时中断的程序。
中断响应过程如下:保护断点,即保存下一条要执行的指令的地址,也就是把这个地址送入堆栈。各个中断源的编号和入口地址如表2.13所示,各个中断服务程序的入口地址只以字节为单位分开,编译器把无条件转移指令放在这些地址处,并跳转到服务程序的实际地址,以上工作由计算机自动完成,与程序员无关,也与执行中断处理程序无关。 2.P0口既可作通用端口,又可作地址/数据总线;P1口为准双向并行口,作通用并行口使用;P2口既可作通用端口,也可作为CPU访问外部存储器时的高八位地址线;P3口为多功能端口,除具有准双向功能外,还具有第二种功能。 3、堆栈是一种后进先出(LIFO)的线性表,利用单片机内部的RAM元件来存放一些数值数据或需要避让的地址数据。堆栈就好比是堆放货物的仓库,在存取数据时采用“后进先出”、“先进后出”的原则。堆栈指针sp是一个一位特殊功能寄存器,用来存放当前堆栈顶部指向的存储单元的地址,地址为81h。堆栈只有两种操作:压入和弹出,无论数据是压入还是弹出,都是对堆栈顶部单元(sp指向的单元)进行操作。堆栈是向上产生的,压入堆栈时sp的内容增加,弹出时sp的内容减少。可以通过软件重新定义sp的初值来改变堆栈区域的大小,但堆栈深度受限于片内RAM空间。
系统复位后,sp07h若不重新定义的话,将以07h单元作为栈底,压入堆栈的内容从08h单元开始存放。 堆栈主要为子程序调用和中断操作而设立,有保护断点和保护现场两种常见功能。 在单片机系统中,既有与子程序调用和中断调用相关的自动入栈和出栈指令(push pop),也有堆栈的压栈和出栈指令(push pop)。此外,堆栈还有传递参数等功能。 立即寻址 寄存器寻址 间接寻址 直接寻址 变量寻址 相对寻址 pcdptr300H,0,0,0,0 转移指令 pc值加其字节数 sp=4fh 选择题 ccadc 问答题 题型分析:首先要明确解题意义和任务。 详细了解和分析项目背景和所要完成的任务,把一个实际问题转化为单片机能够处理的问题。确定算法:根据实际问题的要求和指令系统的特点,确定所要采用的计算公式和计算方法。这是正确编程的基础,比编程语言本身更重要。绘制程序框图:根据选定的算法,制定出运算步骤和顺序,把运算过程画成程序流程图,这样可以使程序清晰,结构良好,便于调试。分配资源:根据对程序区、数据区、暂存区、堆栈区等所占用空间的估计,合理分配内外部存储区域并确定各区域首地址,以方便编程。
编程:编程就是用汇编语言来实现上面确定的算法,也就是把用人类自然语言组织的程序流程图转换成用计算机语言组织的源代码。仿真调试:利用各种单片机开发工具对编写好的程序进行测试,以验证程序是否完成了规定的功能。测试过程应尽量仔细,确保程序中所有分支都经过测试。软件优化:在完成规定功能的基础上,进行程序优化,进一步缩短程序体积,减少计算时间,节省工作单元。状态固化:在完成前期工作后,将程序烧录到eeprom等程序存储器中,确保单片机系统每次上电时程序都能正确运行。文档描述:将程序功能和使用方法、程序的基本结构和所用到的主要算法以及程序必要的说明和注意事项等整理成文档,不仅方便用户使用,而且方便程序的维护和扩展。 2、(1)位标量:可以用来定义位标量,但不能定义位指针或位数组。其值为二进制位,要么是1,要么是0,类似某些高级语言中boolean类型的真值。 sbit 可寻址位:可以用来定义内部RAM中可寻址的位,也可以定义特殊功能寄存器中可寻址的位。 sfr 特殊功能寄存器:可以用来定义8051系列单片机中所有特殊功能寄存器。 sfr16 特殊功能寄存器:sfr16和sfr一样用来操作特殊功能寄存器,但用来操作占用两个字节的寄存器,如定时器t0 t1。
3、位移寻址位移寻址是根据某个寄存器的内容,然后在此基础上加上地址偏移量,形成真正的操作数地址。需要指出的是,作为依据的寄存器可以是pc或者dptr,地址偏移量保存在累加器中。相对寻址主要针对跳转指令。对于跳转指令,要跳转到的目标指令的地址由正在执行的指令地址决定,一般采用正在执行的指令地址加上偏移量。即:转移目的地址=当前pc值+相对偏移量rel。偏移量可为正数或负数,偏移量以有符号数的形式存储,即补码形式。位寻址位寻址是指要访问的数据是单个的位。指定位数据的方式有:按位地址、按字节地址加点号、按寄存器名加点号、按位名。 4. 1)sp = sp + 1 = 61h sp = sp + 1 = 62h (61h) = pc的低字节 = 03h (62h) = pc的高字节 = 20h 2)pc = 3456h 3)是 4)2kb = 2048字节 5. 62h的内容 编程问题 1. mov 45hanl #0fhorl #0fhmov 45h, 2. start: loop: mov r0, #30h mov mov cjne mov ljmp inc djnz mov ret