




已阅读5页,还剩69页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及应用,前言:,1.为什么开这门课?2.学好这门课需要的基础知识?3.怎样掌握这门课?4.课程内容。5.要求。,1.为什么开这门课?,(1)专业的需要电气工程及其自动化、电子技术不需要人的干预自动工作、仪表的智能化(2)工作的需要自动化产品、仪器仪表,2.需要的基础知识?,单片机硬件基础、C语言基础3.怎样掌握这门课?程序设计=算法+语言(1)重点:算法-框图(2)兴趣,4.课程内容,(1)概述(2)软件工具(3)C语言基础(4)中断、定时器/计数器、串行口的C语言编程基础(5)键盘/显示、模拟量的C语言编程基础,5.要求,自觉学习快乐学习认真学习,第1章单片机及C51概述,本章内容,SingleChipMicrocomputer,什么是单片机?,单片机主要生产厂家及机型,单片机的应用及发展趋势,单片机的历史及发展概况,单片机C语言的概述,1.什么是单片机,1、微型计算机硬件结构常见的微机外形,微型计算机硬件结构微机硬件组成,显示器,主机,键盘,鼠标,微型计算机硬件结构,内部结构,微型计算机系统,硬件系统构成微机的实体和装置,软件系统与硬件系统共同构成实用的微机系统,两者是相辅相成、缺一不可的。,软件系统微机系统所使用的各种程序的总称,这种计算机系统通常由多块印刷电路板制成:,2、单片微型计算机,CPU,输入出设备,输入出设备,软件系统,+,单片微型计算机系统,硬件系统,单片微型计算机是指集成在一个芯片上的微型计算机,简称单片机单片机实质上就是一个芯片,单片机内部结构示意图,单片机应用系统,单片机应用系统由硬件和软件组成,硬件是应用系统的基础,软件是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可,2.单片机的发展概况,1971年Intel公司制造出第一片微型机芯片4004之后,开始了微型机时代。将微处理器、存储器和外围设备集成到一块芯片上,这就是单片微型计算机(SingleChipMicrocomputer),简称单片机。单片机是应工业测控而诞生的,它的结构与指令功能都是按照工业控制要求设计的,故也叫单片微控制器(SCMSingleChipMicrocontroller),它在控制领域大显身手,装入到各种智能化产品之中,所以又称为嵌入式微控制器(EmbeddedMicrocontroller),也有文献中称为微控制器单元(MCUMicrocontrollerUnit)。,Intel4004和采用4004的计算器,一种8位嵌入式微控制器,C8051F020实验设备,2.1单片机的发展历史(1),第一阶段(1974年-1976年):初级阶段因受工艺技术水平的限制,单片机结构和功能都很简单。例如仙童公司生产的F8单片机,内部仅有8位CPU,64字节RAM和2个并行口,还需一些其他芯片才能组合成一台完整的微型机。第二阶段(1976年-1978年):低性能阶段以美国INTEL公司的MCS-48为代表。该系列单片机内集成有8位CPU、并行I/O接口、一个8位的定时/计数器、片内64或128字节RAM,程序存储空间最大4KB,但无串行通信口,不宜多机使用。,2.1单片机的发展历史(2),第三阶段(1978年-1983年):高性能阶段仍采用8位CPU,但有多级中断功能、串行通信接口、16位的定时/计数器,片内ROM、RAM容量加大,寻址空间范围可达64KB,有的片内还带有A/D转换器接口。生产厂家众多,产品系列也特别多,主要有INTEL公司的MCS-51,MOTOROLA公司的6801和ZILOG公司的Z8等。具有优异的性价比,获得了广泛应用。尤其是MCS-51系列,特别适合于控制应用,在我国教育和经济建设等各个领域大显身手,经久不衰,是我国单片机应用的主流系列。,2.1单片机的发展历史(3),第四阶段(1983年):新一代阶段单片机的含义已发生了根本改变。目前仍然保留单片机这一习惯叫法,但实际是指“Single-chipMicrocontroller”。新一代单片机有如下几方面特点:1CPU仍以8位为主流,并不断完善。另一方面发展了16位、32位的单片机。早期多使用CISC(ComplexInstructionSetComputer)系统结构,近来RISC(ReducedInstructionSetComputer)单片机已大力发展。RISC单片机中,除指令集精简外,一般都用单字长指令和流水线操作方法,大大加快了指令的运行速度。,2.1单片机的发展历史(4),2按片内程序存储器的类型不同分为:ROM型、EPROM型、无ROM(Romless)型和低成本的OTP(OneTimeProgrammableROM)型、E2PROM型。近年来,FlashROM已获得了普遍发展。由于FlashROM可在线多次写入,有些公司称之为MTP(M-TimeProgrammableROM)型。FlashROM的普遍使用,也导致了ISP(In-SystemProgammable)技术的迅速发展。可扩展容量有的已突破64KB,达到2MB以上。片内RAM已有2KB以上的产品,可扩展容量也可达到2MB以上。,2.1单片机的发展历史(5),3产品日趋复杂化、多样化、专用化。在原来微型机结构的基础上,集成嵌入了一些外设与一些外设驱动单元,如通用接口、看门狗(Watchdog)、A/D和D/A、LCD驱动单元、遥控键盘、语音接口、串行总线I2C,甚至通用串行总线USB(UniversalSerialBus)、控制器局域网CAN(ControllerAreaNetwork)等。某些公司把数字信号处理器DSP(DigitalSignalProcessor)也嵌入了单片机内。,2.1单片机的发展历史(6),4.多采用CMOS工艺,出现双时钟、低电压单片机,大大降低了系统功耗。时钟速度大幅提高,有的已达100MHz以上。引脚数过去多为40PIN,现在已向两个方向发展多引脚(100PIN以上)和少引脚(20PIN以下)。封装形式多样化,有DIP、SH-DIP、OFP、SQFP、HQFP、TQFP、PGA、BGA、PLCC等。,3.1综述,自单片机诞生以来的近30年中,单片机已有70多个系列的近500个机种。国际上较有名、影响较大的公司及他们的产品如下所述:Intel公司的MCS48、MCS51、MCS96系列;Motorola公司的6801、6802、6803、6805、68HCll系列产品;Zilog公司的Z8、Super8系列产品;仙童(Fairchild)公司和Mostek公司的F8、3870系列产品;NEC公司的COM87系列产品;Rockwell公司的6500、6501系列产品;Atmel、PHILIPS、LG等公司的51兼容机。,3.单片机主要生产厂家及机型,根据近年来国外实地考察,Intel公司的单片机在市场上占有量为67,其中MCS51系列产品又占54。在我们国内虽然上述各公司的产品均有引进,但由于各种原因,至今在我国所应用的单片机仍然是以MCS48、MCS51、MCS96为主流系列。随着这一系列的深入开发,其主流系列的地位会不断巩固下去。因而我们在此主要介绍Intel公司的单片机系列。,3.2MCS-51系列和AT89系列单片机,MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8951,8032,8052,8752,8952等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。,(1)MCS-51系列,MCS-51系列单片机分类,INTEL公司将MCS-51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。AT89C51-低功耗(CMOS工艺),内含4KB闪存,可在线编程或使用编程器重复编程,与MCS-51指令和引脚完全兼容,且价格较低。,(2)AT89系列,3.3典型的8位单片机产品(1),1Intel公司的单片机其产品有MCS-48、MCS-51和MCS-96三大系列几十个型号的单片机。MCS-51系列单既包括三个基本型号8031(无ROM型)、8051(ROM型)、8751(EPROM型)8051是世界上产量排名第二的著名单片机CPU。2ATMEL公司的单片机ATMAL公司在1994年以E2PROM技术和Intel公司的80C31单片机核心技术进行交换,从而取得80C31核的使用权。先进的Flash技术和80C31核相结合,生产出具有8051结构的Flash型和EEPROM型单片机(尤其是89C51和89C52),3.3典型的8位单片机产品(2),3SiliconLaboratories公司的单片机C8051F系列是一种典型的高性能单片机,完全集成混合信号系统级芯片(SOCSystemofChip),完全兼容MCS-51。采用流水线(pipeline)技术,不再区分时钟周期和机器周期,提高了指令执行效率。具备控制系统所需的模拟和数字外设,包括看门狗、ADC、DAC、电压比较器、电压基准输出、定时器、PWM、定时器捕捉和方波输出等,并具备多种总线接口,包括UART、SPI、SMBUS(与I2C兼容)总线以及CAN总线。C8051F系列单片机采用FlashROM技术,集成JTAG,支持在线编程。,3.3典型的8位单片机产品(3),4.Motorola公司的单片机8位机有68HC05、68HC08和68HC11几种。68HC05是Motorola公司推出的一种采用HCMOS技术的8位单片机,是世界上产量排名第一的著名单片机CPU。5.TOSHIBA公司的单片机具有功能强、可靠性高、价格低等特点,特别适合于空调、电冰箱等家电产品。Philips公司的单片机Philips公司生产8051结构的80C51系列8位单片机、采用8051结构的16位单片机、以68000为核的16位单片机。,3.3典型的8位单片机产品(4),除此以外,著名的单片机厂商还有HITACHI、SIEMENS、NS、三菱、Microchip、Zilog等公司,产品型号众多,并不断有新产品问世。可用于各种不同应用场合和不同的应用需求。如今,凡是读者能想到的行业和领域都能看到单片机的应用例子,科技的发展和社会的需求促使计算机的嵌入式应用在近年来得到迅速发展,并且这种发展的势态将越来越迅猛。,4.单片机的应用及发展趋势,4.1单片机的特点,体积小,重量轻,电源单一,功耗低,功能强,价格低,运行速度快,抗干扰能力强,可靠性高,可以嵌入到电子产品中嵌入式应用系统,4.1单片机的应用(1),1在智能仪表中的应用广泛地应用于电力系统、交通运输工具、计量等各种仪器仪表之中,使仪器仪表智能化。2在机电一体化中的应用机电一体化产品是指集机械技术、微电子技术、自动化技术和计算机技术于体,具有智能化特征的机电产品。3在实时控制中的应用如对工业上各种窑炉的温度、酸度、化学成分的测量和控制。汽车电子中微型控制器的使用越来越多。,4.1单片机的应用(2),4单片机在分布式多机系统中应用分布式多机系统具有功能强、可靠性高的特点。在比较复杂的系统中,都采用分布式多机系统。5单片机在家用电器等消费类领域中的应用目前家用电器几乎都是单片机控制的电脑产品例如:空调、冰箱、洗衣机、微波炉、彩电、音响、家庭报警器、电子宠物、手机、MP3等。,4.2单片机的发展趋势(1),低成本高度集成的单片机片上系统(SOC)重要发展趋势,是寻求应用系统在芯片上的最大化解决方案。因此,专用单片机的发展自然形成了SoC化趋势。8位单片机的市场份额依然领先“让事情尽可能简单”的原则有助于更快地完成系统设计、验证并投入生产,同时减少潜在问题。处器理的多核结构在数字通信和网络中的应用,对处理器提出了更高的要求。为适应这种情况,现在已出现多核结构的处理器。,4.2单片机的发展趋势(2),功耗更低新推出的单片机的功耗越来越小,很多单片机都有多种工作方式,包括等待、暂停、休眠、空闲、节电等工作方式。电压范围更宽扩大电源电压范围以及在较低电压下仍然能工作是现在新推出的单片机的一个特点。6工艺更先进和封装更小现在单片机的封装水平已大大提高,有越来越多的单片机采用了各种贴片封装形式,以满足便携式手持设备的需要。,4.2单片机的发展趋势(3),7开发形式、手段和工具目前借助于JTAG接口构成JTAG调试器,直接从CPU获取调试信息而使得产品的设计简化,从而使得开发工具的价格反而要低于ICE。用高级语言代替汇编语言也渐成趋势,典型的单片机都推出了自己的C编译器。其中KeilC51的编译效率已达到很高水平。RTOS的引入解决了嵌入式软件开发标准化的难题,促进嵌入式开发软件的模块化和可移植化,为软件工程化管理打下基础。,2.单片机应用,工业方面,民用方面,数据处理方面,仪表方面,汽车方面,电讯方面,单片机技术的应用遍布国民经济与人民生活的各个领域,5.单片机的C语言概述,51C语言与单片机编程52C51程序53C51编程举例,5.1C语言与单片机编程一、单片机的C语言的特点,无需了解机器硬件及其指令系统,只需了解51的存储器结构;C51能方便管理寄存器存储器和数据类型等细节问题,但对硬件控制有限,而汇编可以完全控制硬件资源;C51在小应用程序中产生的代码量大,执行速度慢,但在较大的程序代码中效率高;C51程序由若干模块组成,具有良好的模块化结构,便于改进和扩充;C51具有良好的可读性和可维护性,而汇编在大程序开发中开发难度增加,可读性差;C51有丰富的库函数,大大的减少用户的编程量,缩短编程与调试时间,提高软件的开发效率;汇编程序当机型改变时,无法直接移植使用,而C能在不同类型的机器上运行,可移植性好,标准C语言也称ANSIC语言。单片机的C与标准C之间有许多相同的地方,也有其自身的一些特点。不同的嵌入式C语言编译系统之所以与ANSIC语言有不同的地方,这样是由于它们所针对的硬件系统不同,对单片机就称为C51语言,二者不同主要体现在一些几个方面。,库函数:标准C的库函数是按照通用计算机来定义的,而C51的库函数是按照单片机的应用情况来定义的;数据类型:在C51中增加了几种针对单片机的特有数据类型。如单片机包含位操作空间和丰富的位操作指令;变量的存储模式:C51变量的存储模式与51的存储器紧密相关。从数据类型上51有片内、片外程序存储器,片内、片外数据存储器。在片内程序存储器中,又有直接寻址区和间接寻址区,分别为:CODEDATAXDATAIDATA,及根据51单片机特点而设定的PDATA类型。使用不同存储器将会影响程序执行的效率,不同的模式对应不同的硬件系统和不同的编译结果。但标准C对存储模式要求不高。输入/输出:C51的输入/输出是通过51的串口来完成的,输入输出指令执行前必须对串口进行初始化。函数使用:C51中有专门的中断函数,二、单片机的C语言与标准C语言的比较,三、单片机的C语言与汇编语言的比较,在国内,汇编语言在单片机开发过程中是比较流行的开发工具。长期以来对编译效率的偏见及不少程序员对使用汇编开发硬件的习惯性,使得C在很多地方遭到冷落。优秀的程序员写出的汇编程序的确有执行效率高的优点,但汇编的可移植性和可读性差,使得使用其开发出来的产品在维护和功能升级时的确有极大的困难,从而导致整个系统的可靠性和可维护性比较差。而使用C语言进行嵌入式系统的开发,有着汇编不可比拟的优势。,编程调试灵活方便;生成的代码编译效率高;模块化开发;可移植性好;便于项目的维护,【例1-1】将外部数据存储器的000BH和000CH单元的内容相互交换,用汇编语言编写源程序如下:ORG0000HMOVDPTR,#000BHMOVXA,DPTR;将000BH的内容送入AMOVR7,A;暂存000BH的内容INCDPTRMOVXA,DPTR;将000CH的内容读入AMOVDPTR,#000BHMOVXDPTR,AINCDPTRMOVA,R7MOVXDPTR,ASJMP$END,C语言编程:,#include/程序采用绝对地址访问的方法voidmain(void)charc;c=XBYTE11;XBYTE11=XBYTE12;XBYTE12=c;while(1);,上述的C语言反汇编:,0 x0000020013LJMPSTARTUP1(C:0013);跳转0 x000390000BMOVDPTR,#0 x000B0 x0006E0MOVXA,DPTR0 x0007FFMOVR7,A0 x0008A3INCDPTR0 x0009E0MOVXA,DPTR0 x000A90000BMOVDPTR,#0 x000B0 x000DF0MOVXDPTR,A0 x000EA3INCDPTR0 x000FEFMOVA,R70 x0010F0MOVXDPTR,A0 x001180FESJMPC:00110 x0013787FMOVR0,#0 x7F;以下是清零部分0 x0015E4CLRA0 x0016F6MOVR0,A0 x0017D8FDDJNZR0,IDATALOOP(C:0016)0 x0019758107MOVSP(0 x81),#0 x070 x001C020003LJMPmain(C:0003),【例1-2】二进制数转换成十进制数(BCD码),将累加器A中给定的二进制数,转换成3个十进制数(BCD码),并存入Result开始的3个单元。,汇编语言源程序如下:,ResultEQU20HORG0000HLJMPSTARTSTART:MOVSP,#60H;主程序MOVA,#123LCALLBINTOBCDSJMP$BINTOBCD:MOVB,#100;设置转换子程序DIVABMOVResult,A;除以100得百位数MOVA,BMOVB,#10DIVABMOVResult+1,A;余数除以10得十位数MOVResult+2,B;余数为个位数RETEND调试结果:片内RAM20H,21H,22H中的数值分别为01H,02H,03H,C51源程序如下:,voidmain(void)unsignedcharResult3;unsignedcharNumber;Number=123;Result0=Number/100;/除以100得百位Result1=(Number%100)/10;/余数除以10得十位Result2=Number%10;/余数为个位while(1);/等待暂停,【例1-3】二进制数转换成ASCII码程序。,将累加器A中的内容分为两个ASCII码,并存入Result开始的两个单元。,汇编语言源程序如下:,ResultEQU20HORG0000HLJMPSTARTSTART:MOVSP,#40HMOVA,#00011010BLCALLBINTOHEXSJMP$BINTOHEX:MOVDPTR,#ASCIITABMOVB,ASWAPAANLA,#0FH;取A的高4位MOVCA,A+DPTRMOVResult,AMOVA,BANLA,#0FH;取A的低4位MOVCA,A+DPTRMOVResult+1,ARETASCIITAB:DB0123456789ABCDEFEND调试结果:片内RAM07H中的数据为7BH;而08H,09H,0AH中的数据分别为01H,02H,03H,C51源程序如下:,codeunsignedcharASCIITAB16=0123456789ABCDEF;voidmain(void)unsignedcharResult2;unsignedcharNumber;Number=0 x1a;Result0=ASCIITABNumber/16;/高4位Result1=ASCIITABNumber调试结果:片内RAM07H中的数据为1AH;08H,09H中的数据分别为31H,41H,5.2C51程序,本节主要介绍C51程序的结构、规范、注意事项、标识符、关键字等。一、C51的程序结构二、C51编程规范及注意事项三、C51的标识符与关键字,一、C51的程序结构,#include/预处理命令,reg52.h是一个库文件#include/预处理命令,stdio.h是一个库文件voidFunction1(void);/自定义函数声明unsignedintch;voidmain(void)/主函数SCON=0 x50;/scon:模式1,8bit异步串口通信TMOD=0 x20;/tmod:t1为模式2,8bit自动装入TH1=221;/th1:1200bit/s的装入值,16MHzTR1=1;/TR1:T1运行TI=1;/TI:设置为1,以发送第一个字节/以上5条语句是串口调试需要设置的while(ch0);voidmain()unsignedchari,sel;while(1)sel=0 xfe;for(i=0;i0);voidmain
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 位置识别优化-洞察及研究
- 光放大器增益平坦化策略-洞察及研究
- 量子计算对密码协议安全性的影响-洞察及研究
- 量子路由协议优化-洞察及研究
- 供应链管理和物流服务协议
- 频谱效率提升-洞察及研究
- 工业设备安装验收技术规范解读
- 物流仓储优化与配送管理方案
- 从课本人物身上学到的品质写人类议论文作文(10篇)
- 康复科健康宣教内容及实施方案
- 110kV变电站通信系统施工方案与技术要求
- (高清版)DBJ∕T 13-91-2025 《福建省房屋市政工程安全风险分级管控与隐患排查治理标准》
- 多系统联合仿真平台在燃气轮机设计与开发中的应用
- 中班健康:变质食物不能吃
- 工程造价专业成长路径与技能提升
- 1.1坚持改革开放 课件 统编版道德与法治 九年级上册
- 截肢后病人的护理
- 经皮冠脉介入治疗护理
- 2025年智能楼宇管理师考试试卷:楼宇智能化系统集成
- 中国近现代艺术概况
- 2025年广西中考道德与法治试题答案详解讲评课件
评论
0/150
提交评论