云龙51单片机教程(PPT课件)作者:王云1.单片机有什么用2.应该学什么样的单片机3.学习单片机需什么基础4.如何学好单片机5.学前准备,单片机学习开发环境的建立第一课初识单片机单片机有什么用?工业控制系统数据采集系统智能化仪器仪表通讯设备......应该学什么样的单片机?在我们这个课程中,我们将选用51系列单片机作为讲解。51单片机同时也是学习,ARM、DSP、FPGA等,高端应用的基础知识。学习单片机要什么基础?1.有信心,有恒心;2.只要撑握最基本的数电模电知识;3.对各种器件的认识大家都是从0开始;4.单片机编程,只要会简单的C语言基础知识。如何学好单片机1.要领:理论与实践并重,实践先行;2.学习总是从模仿开始;3.举一反三;学前准备1.电脑一台2.单片机C语言书一本3.开发板一块51单片机C语言程序设计教程本视频配套书籍:——王云编著课程内容安排基础篇基于单片机最小系统,介绍单片机的基础知识;及单片机C语言基础知识。实战篇以YL-51开发板为平台,逐个讲解开发板上各个模块的使用,把各器件模块讲解清楚。通过实践深化理解数字电路的概念、C语言的基本应用以及C语言如何同实际电路发生联系。提高篇讲解单片机应用的扩展知识,及编程技巧。讲授单片机项目开发的流程及方法。课后作业安装以下两个软件:1、STC-ISP下载软件2、KEIL编程软件第二课点亮一个发光二极管什么是单片机?如何选择单片机?单片机能做什么?单片机指以8051为核心的单片机,统称为MCS51单片机。是在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,简称单片机。MCS51单片机如8031,8751,8032,8052,8752等该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的。1.1什么是单片机?8051是美国INTEL公司,生产的一系列单片机中最早最典型的产品。1.2近年来推出MCS51的主要产品有:﹡ATMEL公司的89C51、89C52系列;﹡Philips公司的80C51、80C52系列;﹡华邦公司的W78C51、W77C51高速低价系列;﹡LG公司的GMS90/97低压高速系列;﹡宏晶公司的STC89C51、STC89C52系列。1.380C51的引脚封装123456789101112131415161718192040393837363534333231302928272625242322211234567891020191817161514131211P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RSTP3.0/RXDP3.1/TXDXTAL2XTAL1P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1GNDVCCP1.7P1.6P1.5P1.4P1.3P1.2P1.1/AIN1P1.0/AIN0P3.7注:类似的还有Philips公司的87LPC64,20引脚8XC748/750/(751),24引脚8X749(752),28引脚8XC754,28引脚等等80C51/89C5189C2051总线型非总线型2.单片机内部资源三大指标1、FLASH(程序存储空间ROM)2、RAM(数据存储器)3、SFR(特殊功能寄存器)单片机内集成了一些常用的I/O接口电路,如并行的I/O端口、串行口、定时器/计数器、中断控制器等,这些I/O接口单元电路,统称为特殊功能寄存器(SFR)。单片机的选择STC89C52:8KFLASH,512字节RAM,32个I/O口,3个定时器,1个UART,8个中断源。SST89E516:64KFLASH,1024字节RAM,32个I/O口,3个定时器,1个UART,10个中断源。支持与KEIL连线进行在线仿真。单片机最小系统特点:用最少的元件组成的单片机工作系统。由四大硬件组成:单片机、电源电路、晶振电路、复位电路。31脚是内部程序存储器和外部程序存储器选择端。为高电平时,访问内部程序存储器;为低电平时,则访问外部程序存储器。点亮一个LED发光二极管发光二极管:通常红色贴片LED:正向压降1.6-2.4V,电流2-20mA。2-5mA亮度有明显变化,5mA以上亮度基本没变化。R≈V/I一般应用取I=3~5mA,则R=?。LED与单片机,成为一个最小的控制单元,实现控制发光二极管的亮灭。特殊功能寄存器声明语法:sfrsfr_name=int_constant例:sfrP0=0x80;sfrSCON=0X98;特殊功能位声明例:sbitCY=PSW^7;sbitLED=P1^0;Main函数格式:voidmain()特点:无返回值,无参。任何一个C程序有且仅有一个main函数,它是整个程序开始执行的入口。例:voidmain(){总程序从这里开始执行;其他语句;}三、建立独立的KEIL工程:1.点亮第一个发光管2.点亮最后一个发光管3.点亮一、三、五、七二、理解单片机单片机最小系统的组成。一、了解发光二极管参数及限流电阻计算方法。作业4.点亮二、四、五、六第三课C51基础知识及流水灯设计电平特性单片机的数制C51的特点C51基础知识C51简介关于电平特性1、数字电路中只有两种电平(本课程中)定义单片机为TTL电平高电平:+5V低电平:0V2、RS232电平:计算机串口高电平:-12V低电平:+12V所以计算机串口与单片机进行通信时,需加电平转换芯片MAX232。单片机的数制1、单片机内部的数制:二进制2、单片机编程常用的数制:十六进制二进制数字电路中的两种电平特性决定了它006110117111210810003119100141001010105101111011十六进制数是二进制的简短表示形式。十进制中的0-15在十六进制数中分别表示为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F熟练掌握二进制与十六进制之间的转换。规律:一般把四个二进制数放在一起转换成一个十六进制数,转换时先把二进制数转换成十进制数,再把十进制数转换成十六进制数。如:0001B→1→1HB表示为二进制,H为十六进制1001B→9→9H1010B→10→AH10011010→154→9AH各种进制的对应关系二进制数的逻辑运算1.与运算与运算是实现“必须有,否则就没有”这种逻辑关系的一种运算。运算符为“·”其运算规则如下:0·0=0;0·1=1·0=0;1·1=12.或运算或运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算,其运算符为“+”“或”运算规则如下:0+0=0;0+1=1+0=1;1+1=13.是“非”运算“非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作“A”其运算规则如下:1=0;0=14.“异或”运算“异或”运算是实现“必须不同,否则就没有”这种逻辑的一种运算。运算符为“⊕”。其运算规则是:0⊕0=0;0⊕1=1⊕0=1;1⊕1=0C51的特点C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。因此,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。C-51的优点:1、对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解。2、寄存器分配,不同存贮器的寻址及数据类型等细节可由编译器管理。3、程序有规范的结构,可分成不同的函数,这种方式可使程序结构化。4、提供的库包含许多标准子程序,具有较强的数据处理能力。5、由于具有方便的模块化编程技术,使已编好程序可容易地移植。C-51的基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127无unsignedchar80~255+-*/(加减乘除)==(大于大于等于小于小于等于)==!=(测试等于测试不等于)&&||!(逻辑与逻辑或逻辑非)(位右移位左移)&|(按位与按位或)^~(按位异或按位取反)C-51的运算符:(与C语言基本相同)C-51的基本语句与标准C语言基本相同:if选择语言switch/case多分支选择语言while循环语言do-while循环语言for循环语言常用的延时方法一.非精确延时方法1.for(i=0;i100;i++);2.i=100;while(i--);二.精确延时方法1.利用库函数_nop_();(需要includeintrins.h)2.利用定时器进行定时(后边的课程进行介绍)流水灯实验8个发光二极管,分别对应单片机I/O口的P1.0到P1.7,8个单片机IO口组成一个字节,在程序编写过程中,可以直接用P1来进行操作。C语言的8位二进制数代表了8个I/O口P1=0XFE;它是二进制11111110的简短表示形式,它分别表示P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0111111101.了解单片机C语言都有哪方面的内容。2.掌握延时语句的用法及运行时间计算。3.用3个LED小灯做一个交通灯的程序。4.根据原理图,独立完成流水灯反方向流动,和全部点亮到一个个熄灭。作业第四课数码管结构及静态显示原理数码管的结构和显示原理数码管静态显示数组的定义及调用子程序调用、带参数子程序设计数码管,根据内部结构,可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点,共计8段。因此我们对它编码时,刚好是用一个字节。abcdegGNDfdpGNDabcefgd·dpabcdefgdpdpgfedcba+5V(a)(b)共阴极共阳极abcdegGNDfdpGNDabcefgd·dpabcdefgdpdpgfedcba+5V(a)(b)共阴极共阳极显示段符号十六进制代码dpgfedcba共阴极0123456789AbCdEF无00000000000000000001111101111011101000111011111011010100010101111110101101101101111001101111111110100011111001111001000101101111110101100x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x710x00共阴数码管真值表数码管的显示方法(2)动态显示。(1)静态显示。——静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是占用I/O口多,增加了电路的复杂性。(1)静态显示。(2)动态显示。——动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就