单片机:在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成单芯片微型计算机,即单片机。MCS-51系列单片机:集成8位CPU、4K字节ROM、128字节RAM、4个8位的并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理。 预备知识:对各种器件有一定的了解 1、电平: 电平特性 :高和低 定义单片机为TTL电平:高+5V(或3.3V取决于单片机的电源) 低+0V RS232(计算机串口的电平)电平:计算机的串口 高-12 低+12V 电平转换芯片max232——用单片机与电脑通信时需要将单片机的电平转换为计算机能够识别的电平才能和电脑进行通信。 2、二进制: 3、二进制的逻辑运算: “与”运算 运算符号“·” 单片机中“&” “或”运算 运算符号“+”单片机中“|” “非”运算 运算符号“”(求反) “异或” 00=0 4、51单片机的系列 、STC 89C2RC40C-PDIP 0721CV4336 STC(公司)89(系列)C52(5-系列2-2*4K=8K 内部存储空间)RC40(运行的工作速度40MHZ)C(商业级或I-工业级 差别在温度范围 )-PD(封装型号PD 双列直插式的)IP0721(07年第21周生产)CV4336(该批的型号) AT89C51(可到55)S(可以串行下载)LV(低电压3V即可) 5引脚封装 8位为一个总线 /后面为第二功能 机器周期 指令周期 理论的基础知识,做工程项目积累经验。 C51知识: C语言用于单片机的编程,方便移植,C提供了很多数学函数效率高。 一个字节占8位,char和int型用的最多 数据类型选择不恰当,可能会导致程序变复杂。 位变量:bit某一数据类型的一位, Sbit OV=PSW^2 表示PSW一个寄存器^2表示第二位 sbit ov 就是把PSW的第二位声明为OV 不标unsignt默认为符号型, Math.h可以直接调用里面的东西, 位右移或位左移 01010010 右移整体移一位 循环左移和循环右移 按位与即 一位一位的与0101和0010 0101 0010 If 选择语句 ;while 循环语言 ; for 语句 循环语言 switch/case 分支选择语言 ; do-while 循环语句言 中断服务程序 I/O口定义 要达到写出程序控制开发板上的东西能够运行,控制单片机的L管脚 自己动手需要硬件材料 杜邦线 排针 方便接线用 Ds12c887可在网站申请 焊锡 KEIL的使用实验板的使用: 发光二极管 3mA的电流通过 压降是1.7V 选择与发光二极管串联的电阻阻值的计算 限流电阻 上拉电阻 下拉电阻 去耦滤波电容 (对电源起到稳压的作用) 电脑USB插口使用的是开关电源(USB是5V电压,但压值不会太稳定) 锁存器(起到扩展的作用) D端 Q端 LE 真值图L表示低; H表示高 Z表示数字电路中的一种高阻状态(介于高低电平的一种状态)。 表示这个管脚只在低电平时芯片才能有效工作,OE低电平有效(相当于芯片的一个控制器) LE即表示锁存器的锁存端 锁存器的作用是在做A/D实验时不让LED灯闪烁。 51单片机上电之后默认是高电平 对某一个口进行操作时必须对这个口进行定义,否则会出现错误。 电亮第一个LED灯 总线操作方法使发光二级管电亮(没有搞懂) 流水灯设计的知识点 单片机闪烁 即让某一个口高低电平不断变换 用到while表达 Keil中的rst是指针返回 操作单片机实际上就是对寄存器进行操作。全空和满的意思。 机器周期和指令周期 开发板的晶振频率为11.0592MHZ,则周期为11.0592分之一秒。 一个机器周期是十二个时钟周期,也就是晶振震动12次才是一个机器周期, C语言中不考虑时序周期 蜂鸣器 此处的“有源蜂鸣器”的“源”并非电源的意思,时是否含有振荡器的意思 压电式蜂鸣器即无源蜂鸣器。 有源蜂鸣器可以通过控制单片机的高低电平,来发声。 蜂鸣器的驱动应用广泛,工作开始或结束时发声,故障时发声等。 无源蜂鸣器器需要一定频率的脉冲才能使它发声 占空比 一个周期内高电平时间比上整个周期时间的比 三极管的作用:放大电路的作用 驱动蜂鸣器只需要让该管脚发出低电平,形成压降后三极管导通,蜂鸣器就会响了 普中开发板是利用ULN2003来代替三极管达到电路放大的作用, ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中,可直接接继电器等负载。 三极管 PNP和NPN当箭头朝里时为PNP否则为NPN。 继电器80C51单片机的管脚——熟记没一个引脚的功能该单片机为40管脚的单片机: 该单片机的1-8为P1口 RST/VPD是复位管脚: 第二功能:当对方单片机上电时启用的是单片机的第二功能,对寄存器进行设置后第二功能被启用 RXD/TXD 作用是串行口输入和输出 INT0/INT1作用是外部中断0/1 T0/T1定时器0/1外部计数输入(加方波可时自动数波的个数) WR/RD外部数据的读写功能 XTAL2/1是晶振的输入端
控制管脚,设计电路,到嵌入式系统等 3太 高电平 低电平 高阻态 数码管显示字符数码管内部是由8个发光二极管组成的。 一个字节是八位 段选:数字中的那一节亮,控制数码管亮什么东西, 位选:一个数字,控制哪一个数码管亮 加上拉电阻的作用是使得电流足够大,使数码管工作。 原理图 锁存器:锁存端是高电平时输入端和输出端是直通的,低电平时输入端和输出端断开,输出端保持原来的值。 锁存端一个下降沿可以把锁存器的值保持在锁存器的输出端 锁存器是一个芯片由单片机控制锁存器,而且只有一个管脚供你控制 P0口一定要加上拉电阻(大约为10K),不加电阻时为 三态,加电阻后上电即为高电平。 第一个数码管显示1
中断系统51单片机只有两级嵌套 RETI是汇编语言中的返回条件,C语言中没有。 通过IT0来控制中断的方式 外部中断低电平触发方式 中断响应的条件: 中断源请求;此中断源中的允许位为1;CPU开中断即EA=1;这三个条件同时满足时CPU才有可能相应 外部中断的触发方式有两种,电平触发和跳沿触发 P3.0口低电平时可以出现中断 注意:外部中断触发方式时 P3.4和3.5计时功能开启, 定时器和计数器的工作原理和结构定时器实质指甲加1计数器,高8位和第八位组成,TMOD是计数器的工作方式寄存器,TCON是控制寄存器,控制T0,T1的启动和停止及设置溢出标志。TMOD寄存器的高四位T1第四位是控制T0,TCON是控制启动和停止。 加1计数器输入的计数脉冲有两个来源,一个是用于定时器时由系统的时钟振荡器输出脉冲经12分频(每12个振动周期定时器加1,12个振荡周期刚好是一个机器周期)后送来;一个是用于计数器时T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。 可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。 设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。 (例如:记50个数的话就是,假设频率为12MHZ那么周期就是1/12:50X1/12X12=t 两个寄存器全部装满可装65535个数65535X1=65ms) 设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ?s。 定时器的控制80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。 一、工作方式寄存器TMOD 工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。其格式如下:
GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。即此时定时器的启动多了一条件。 C/:定时/计数模式选择位;C/=0为定时模式; C/=1为计数模式 M1M0:(重点讲了方式1)
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。
计数与计数初值的关系为:X=216-N TF0=1 低8位能装256个机器周期,高8位都满了的时候,TF0=1此时向CPU发出中断请求,需要在中断程序中写出需要执行的东西。 TH0(表示高8位)=(65535-50000)/256 //对一个数求模,即这个数有几个256除以256后的数取整。 只有高8位加满一次后第八位才能加1次 TL0=(65535-50000)/%256 求余 65536-50000=15536(3CB0)
数码管动态显示
键盘的功能如何消除抖动:加delay函数判断key1是否真为1
A/D和D/A 功放
8位D/A 11111111 输出5V电压;00000000输出0V电压;11110000输出2.5V的电压。 11111111 输出50ma;00000000输出0ma电压;11110000输出25ma T型D/A转换器 简单说就是根据电阻的改变转化电流或者电压的大小。 数字地端与模拟地端 操作时序 :
串行通信原理异步通信与同步通信: 时钟-晶振-一个机器周期是12个晶振周期-发送一个数字- 10个数字是一帧,帧与帧之间任意 无线数传模块 速度 高度
80c51串行口:结构: A表示计时器、串行口寄存器、TXD –P3.1 RXD-P3.0(接受)
没发送完一个字节请求一次中断,每接收一个字节也有一次中断 SUBF(接受,发送都是) S=SBUF
SCON特殊寄存器,用于设置用以设定串行口的工作方式、接收/发送控制以及设置状态标志
SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。 在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。 ●REN,允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。 TB8,在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。 在方式0和方式1中,该位未用。 ●RB8,在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。 T1发送中断标志(方式1) 串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。 RI,接收中断标志位(方式1)串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。
讲解工作方式1:
当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。(TH1和TL1即装初值要求非常准确) T1 溢出率= fosc /{12×[256 -(TH1)]} //即多长时间溢出一次 在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。
以上的Word格式文档51黑下载地址:
单片机学习.docx
(11.32 MB, 下载次数: 22)
|