单片机原理及接口技术!!!电子信息教研室:王晓强Email:wxq@ncepu.edu.cn13810573008教5-D401怎么学好单片机上个世纪80年代以后,微机和单片机的出现,给现代社会带来了巨大的技术变革.对于传统上使用继电器来实现逻辑控制的工业工艺过程,单片机在实现控制上具有极大的优势.另外,从应用和从理解方面来说,单片机的学习是很有趣味的.单片机就是一个工具,是人们日常工作行为的模拟.要利用单片机进行控制,就必须根据实际的需要,了解控制对象的特性,就能设计出有价值的单片机系统.单片机能解决更多的实际问题.单片机的特点和应用(1)体积小,成本低,运用灵活,易于产品化,它能方便地组成各种智能化的控制设备和仪器,做到机电一体化。(2)面向控制,能针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。(3)抗干扰能力强,适用温度范围宽,在各种恶劣的环境下都能可靠地工作,这是其它类型计算机无法比拟的。(4)可以方便地实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高。单片机的应用范围十分广泛,主要的应用领域有:(1)工业控制。单片机可以构成各种工业控制系统、数据采集系统等。如数控机床、自动生产线控制、电机控制、温度控制等。(2)仪器仪表。如智能仪器、医疗器械、数字示波器等。(3)计算机外部设备与智能接口。如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。(4)商用产品。如自动售货机、电子收款机、电子秤等。(5)家用电器。如微波炉、电视机、空调、洗衣机、录像机、音响设备等。讲课之前大三是大学学习中重要也是最复杂的一年.单片机是一面很有用,很有趣味的课程单片机的应用广泛单片机技术不断更新发展,涉及更多领域单片机是科学技术和日常生活的亲密接触理工科学生学习单片机的优势单片机技术与我国建设创新型国家的关系小故事:机械人和机器人CCTV1报道:北京农民吴玉禄和他的”机器人”.吴玉禄把这些机器人看成是自己的孩子,让它们都跟他姓“吴”,并且按照“吴老大、吴老二、吴老三”的顺序一一取了名字。吴玉禄的机器人每个都有个自己的“绝活”:“吴老大”会走正步,“吴老三”可以像蜘蛛侠一样攀岩,“吴老五”能给客人点烟、能端茶倒水,“吴老七”是一个“八脚怪”可以在复杂路面上行走自如,“吴老八”能蹦能跳还能翻跟头。“吴老二十五”是个拉洋车的机器人,它可以拉着吴玉禄出去逛街,是吴玉禄最喜欢的“孩子”。优点:仅仅用了一个电机和电池完成所有的动作,机械装置设计巧妙,2004年参加一个湖南卫视主办的“天下发明之星大赛”,拿一个第一名,奖金一万块。缺点:仅仅是机械上的联动,没有对信号的捕获和处理能力要进行复杂的动作,特别是新的动作的学习,需要有类似大脑的东西进行有效的控制据报道,吴玉禄先生设计了25个具有不同动作的机器人,想象一下,如果有了软件作控制,那么一个机器人就够了.我认为,吴先生的机器人只能是机械人,要实现机械人到机器人的转变,必须要有控制器,吴先生也自我感叹:”芯片和软件的东西是方向,可惜我不懂.”几点建议总体而言,单片机的设计是一个系统级的工作,需要我们对硬件的理解和对数学知识的应用。从某种意义上来说,单片机就是数学和数模电结合的产物.要学习好单片机,我有以下几个建议:数模电理论基础.分析单片机的设计图纸,了解了一般的单片机设计框架之后,自己就能设计简单的系统.数学知识,特别是软件设计的数学知识.做好设计任务的分解,分子系统的设计,具体的算法.多多交流.目前在我国,从事设计单片机的人不下几十万.他们的工作思想不断反映到产品上,网路上,技术杂志和论文上.保持和他们的交流,能够学到很多实际的东西,少走歪路.讲一个故事--单片机是如何在工业上出现的第一天小明大学毕业被分配到电厂工作,他发誓要爱岗敬业.他的岗位是锅炉运行,他对此一无所知.他要做的是监视炉塘温度、压力;汽包温度、压力、液位;各个喷燃器燃料燃烧情况,水管流量(流速×时间),根据需要开关送风机、吸风机(或叫引风机);开关喷燃器;调节风道闸门等工作。他读大学的时候学过点数电和模电的基础,同时因为他很懒,仅仅是有点概念.领导要求:24小时在岗!出了问题走人!小明是个很负责的年轻人,他该怎么办?解决问题的法宝:提出问题分析问题提出思路解决问题第一个层次的分析问题1.提出问题:怎么样我才能干好?2.分析问题:电厂资源丰富,有大量仪表可以使用,领导对技术的革新很支持!3.提出思路:何不用我的数模电知识呢?4.结论(解决问题):用数模电的知识解决本人的生计问题。第二个层次的问题1.分析问题模拟量输入信号:压力,温度,流量,液位注:工业标准仪表的模拟量信号输出为标准的4~20mA,对应不同的量程,可进行线性转换。如:压力表1-2Mpa的量程,当压力值为1.5Mpa时,那么:I[1.5Mpa]=4+16*(2-1.5)/(2-1)=12mA数字量输入信号:开关,有无对应的电气特性是导通和断开数字量输出信号:开关,有无为受控设备提供能源或断开模拟量输出信号:阀门开度,输出电压,输出电流等信号的初步处理信号输入部分信号输出部分温度压力液位流量开关有无4~20mA0-5V±5V±12V±24V比较器(超出设定范围则报警)有信号灯亮无信号灯灭电位器旋钮D/A按钮电键开关4~20mA200VAC±24V导通/断开控制设备开启设备关闭设备控制器简易原理图指令1(01001000)指令2(01100010)指令3(01100110)指令4(01101100)...指令N(01010010)译码电路运算器内存输入输出I/O数据通道选择控制器Clock_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|01001000特殊功能寄存器思考题11.研究一个CPU控制器的模型,这个模型能完成加法,减法和从内存取数的功能和运算.2.研究我们进行运算的过程:取数1,取数2,计算,出结果记下来3.个运算指令:00(加法),01(减法),10(取数),11(出结果)4.编制我的程序:10A,@0001B;取0001B地址的数给A寄存器10R0,@0010B;取0002B地址的数给R0寄存器00A,R0;对A,和R0进行加法运算,结果放到A寄存器11@0011B,A;把加法的结果放到0011B地址里.取数(10)取数(10)加法(00)出数(11)取数(10)减法(01)出数(11)译码电路运算器内存输入输出I/O数据通道选择控制器Clock_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|_| ̄|10特殊功能寄存器10开启取数控制电路10第一章微机基础知识§1.1微处理器、微机和单片机的概念微处理器(Microprocessor)是小型计算机或微型计算机的控制和处理部分。又称中央处理单元CPU(CentralProcessingUnit)。微型计算机(Microcomputer,简称微机C)是具有完整运算及控制功能的计算机。包括微处理器(CPU)存储器接口适配器(输入输出接口电路)输入/输出(I/O)设备。单片机(Single-ChipMicrocomputer)是将微处理器、一定容量RAM和ROM以及I/O口、定时器等电路集成在一块芯片上,构成单片微型计算机。微处理器RAMROMI/O口定时器单片微型计算机简单介绍:RISC和CISCCISC指令集,也称为复杂指令集,英文名是CISC,(ComplexInstructionSetComputer的缩写)。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。精简指令集,计算机CPU的一种设计模式,也被称为RISC(ReducedInstructionSetComputing的缩写)。常见的精简指令集微处理器包括AVR、PIC、ARM、DECAlpha、PA-RISC、SPARC等。(一)、运算器§1.1.1微处理器(机)的组成1、运算器的组成算术逻辑单元(简称ALU)运算器累加器寄存器2、运算器的作用是把传送到微处理器的数据进行运算或逻辑运算。举例ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运算操作是由不同控制线上的信息所确定的。例如:两个数(7和9)相加,在相加之前,操作数9放在累加器中,7放在数据寄存器中,执行两数相加运算的控制线发出“加”操作信号,ALU即把两个数相加并把结果(16)存入累加器,取代累加器前面存放的数9。3、ALU的两个主要的输入来源输入来源数据寄存器累加器4、运算器的两个主要功能(1)执行各种算术运算。(2)执行各种逻辑运算,并进行逻辑测试。如零值测试或两个值的比较。控制器的组成程序计数器指令寄存器指令译码器时序产生器操作控制器1、控制器的组成(二)、控制器2、作用它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作。3、控制器的主要功能对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。从内存中取出一条指令,并指出下一条指令在内存中的位置。(三)、CPU中的主要寄存器1、累加器(A)2、数据寄存器(DR)3、指令寄存器(IR)4、指令译码器(ID)6、地址寄存器(AR)5、程序计数器(PC)1、累加器(A)在算术和逻辑运算时,它具有双重功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。累加器是微处理器中最繁忙的寄存器。2、数据寄存器(DR)数据(缓冲)寄存器(DR)是通过数据总线(DBUS)向存储器(M)和输入/输出设备I/O送(写)或取(读)数据的暂存单元。3、指令寄存器(IR)指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时先把它从内存取到数据寄存器中,然后再传送到指令译码器中。4、指令译码器(ID)指令分为操作码和地址码字段,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向控制器发出具体操作的特定信号。5、程序计数器(PC-programcounter)通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送到PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常是简单的加1操作。6、地址寄存器(AR)地址寄存器用来保存当前CPU所要访问的内存单元或I/O设备的地址。因为内存(I/O设备)和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保存地址信息,直到内存(I/O设备)读/写操作完成为止。一、存储器地址总线、数据总线和若干控制线把存储器和微处理器连接起来。存储器从CPU接收控制信号,以确定存储器执行读/写操作。§1.1.2存储器和输入/输出接口地址总线将8位地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。数据总线用来传送存储器到CPU或CPU到存储器的数据信息。二、I/O接口及外设每个外设与微处理器的连接必须经过接口适配器(I/O接口)。每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。一.二进制、十进制、十六进制1.二进制:是“0”和“1”这样的数、逢2进位。按权展开时权的基数为2。用后缀字母“B”表示。如:1001=1×23+0×22+0×21+1×20=9(十进制数)2.十进制:是“0”—“9”之间的数、逢10进位。按权展开时权的基数为10。用后缀字母“D”表示。如:1135=1×103+1×102+3×101+5×1003.