当前位置:首页 >> 其它课程 >> 手把手教你学51单片机(C语言)

手把手教你学51单片机(C语言)


第一讲
Proteus的使用 ? Keil c51的安装与使用 ? 在Proteus上运行第一个程序
?

第二讲
学单片机需要什么基础? ? 什么是单片机、单片机能做什么、怎么开 始学习单片机。 ? 学单片机需要的一些预备知识 ? C51基础知识。
?

什么是单片机?
将CPU芯片、

存储器芯片、I/O接口芯片和 简单的I/O设备(小键盘、LED显示器)等 装配在一块印刷电路板上,再配上监控程 序(固化在ROM中),就构成了一台单板 微型计算机(简称单板机)。

单板机的I/O设备简单,软件资源 少,使用不方便。早期主要用于 微型计算机原理的教学及简单的 测控系统,现在已很少使用。

◆单片机 在一片集成电路芯片上集成微处理器、存储器、 I/O接口电路,从而构成了单芯片微型计算机,即 单片机。 Intel公司推出了MCS-51系列单片机: 集成 8位CPU、4K字节ROM、128字节RAM、4 个8位并口、1个全双工串行口、2个16位定时/计 数器。寻址范围64K,并有控制功能较强的布尔处 理器。

单片机能做什么
?

凡是与控制或简单计算有关的电子设备都 可以用单片机来实现,再根据具体实际情 况选择不同性能的单片机,如: atmel,stc,pic,avr,凌阳,80C51,arm等

? ? ? ? ?

智能仪器仪表:数字示波器、数字信号源、数字万 用表、感应电流表等。 消费类电子产品:洗衣机、电冰箱、空调机、电视 机、微波炉、手机、IC卡、汽车电子设备等。 通讯方面:调制解调器、程控交换技术、手机、小 灵通等。 武器装备:飞机、军舰、坦克、导弹、航天飞机、 鱼雷制导、智能武器等。 等等…..

怎么开始学习?
实践第一。 ? 补充必要的理论知识,即缺什么补什么。 ? 做工程项目积累经验。(可在网络上搜集 题目,也可自己有什么想法大胆的去试验)
?

预备知识
? 电平特性

? 2进制与16进制的表示及转换
? 二进制数的逻辑运算 ? 8051单片机介绍 ? C51基础知识

关于电平特性
? ?

?

数字电路中只有两种电平:高和低 (本课程中)定义单片机为TTL电平: 高 +5V 低 0V RS232电平:计算机的串口 高 -12V 低+12V 所以计算机与单片机之间通讯时需要加电平转 换芯片max232(实验板上左下角)。

二进制
数字电路中的两种电平特性决定了它 0 0 6 110 1 1 7 111 2 10 8 1000 3 11 9 1001 4 100 10 1010 5 101 11 1011
?

十六进制
是二进制的简短表示形式。 十进制中的0-15分别表示为十六进制的0、1、2、 3、4、5、6、7、8、9、A、B、C、D、E、F ? 熟练掌握二进制与十六进制之间的转换。 规律:一般把四个二进制数放在一起转换成一个 十六进制数,转换时先把二进制数转换成十进制 数,再把十进制数转换成十六进制数。
?

如:0001B -> 1 -> 1H B表示为二进制,H为十六进制 1001B -> 9 -> 9H 1010B -> 10 -> AH 0010 1100 -> 44 -> 2CH

二进制数的逻辑运算
1. “与”运算? ? “与”运算是实现“必须都有, 否则 就没有”这种逻辑关系的一种运算。 运算 符为“· ”, 其运算规则如下:? ? 0· 0=0, 0· 0=0, 1=1· 1· 1=1?
?

2. “或”运算?
“或”运算是实现“只要其中之一有, 就有” 这种逻辑关系的一种运算, 其运算符为“+”。 “或”运算规则如下:? ? 0+0=0, 0+1=1+0=1, 1+1=1?
?

3. “非”运算
“非”运算是实现“求反”这种逻辑的一种运 算,如变量A的“非”运算记作 其运算规则如下: 。

“异或”运算是实现“必须不同, 否则就没有” 这种逻辑的一种运算, 运算符为“?”。其 运算规则是:

4. “异或”运算?

80C51系列介绍
80C51是MCS-51系列中的一个典型品种;其它厂商以8051 为基核开发出的CMOS工艺单片机产品统称为80C51系 列。当前常用的80C51系列单片机主要产品有: ? ﹡ Intel的:80C31、80C51、87C51,80C32、80C52、 87C52等; ? ﹡ ATMEL的:89C51、89C52、89C2051等; ? ﹡ Philips、华邦、Dallas 、STC ? Siemens(Infineon)等公司的许多产品 。

80C51的引脚封装
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 VSS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP ALE/PROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 RST P3.0/RXD P3.1/TXD XTAL2 XTAL1 P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 GND 1 2 3 4 5 6 7 8 9 10 20 19 18 17 16 15 14 13 12 11 VCC P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1/AIN1 P1.0/AIN0 P3.7

80C51/89C51

注:类似的还有Philips公司的 87LPC64,20引脚 8XC748/750/(751),24引脚 8X749(752),28引脚 8XC754,28引脚 等等

89C2051

P3第二功能各引脚功能定义:
?

?
? ?

?
? ? ?

P3.0:RXD串行口输入 P3.1:TXD串行口输出 P3.2:INT0外部中断0输入 P3.3:INT1外部中断1输入 P3.4:T0定时器0外部输入 P3.5:T1定时器1外部输入 P3.6:WR外部写控制 P3.7:RD外部读控制

总线(BUS)是计算机各部件之间传送信息 的公共通道。微机中有内部总线和外部总 线两类。内部总线是CPU内部之间的连线。 外部总线是指CPU与其它部件之间的连线。 外部总线有三种: 数据总线DB(Data Bus), 地址总线 AB(Address Bus)和 控制总线 CBControl Bus)。

?

?

? ?

?

CPU:由运算和控制逻辑组成,同时还包括中断 系统和部分外部特殊功能寄存器; RAM:用以存放可以读写的数据,如运算的中间 结果、最终结果以及欲显示的数据; ROM:用以存放程序、一些原始数据和表格; I/O口:四个8位并行I/O口,既可用作输入,也可 用作输出; T/C:两个定时/记数器,既可以工作在定时模式, 也可以工作在记数模式;

五个中断源的中断控制系统; ? 一个全双工UART(通用异步接收发送器) 的串行I/O口,用于实现单片机之间或单片 机与微机之间的串行通信; ? 片内振荡器和时钟产生电路,石英晶体和 微调电容需要外接。最高振荡频率取决于 单片机型号及性能。
?

C51知识
?

C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言 的功能。目前,使用C语言进行程序设计已 经成为软件开发的一个主流。用C语言开发 系统可以大大缩短开发周期,明显增强程 序的可读性,便于改进、扩充和移植。而 针对8051的C语言日趋成熟,成为了专业 化的实用高级语言。

C-51的特点
?

C语言作为一种非常方便的语言而得到广泛的支持,很多 硬件开发都用C语言编程,如:各种单片机、DSP、 ARM等. C语言程序本身不依赖于机器硬件系统,基本上不作修改 就可将程序从不同的单片机中移植过来。 C提供了很多数学函数并支持浮点运算,开发效率高,故 可缩短开发时间,增加程序可读性和可维护性。

?

?

?

C-51的数据类型扩充定义
sfr:特殊功能寄存器声明 ? sfr16:sfr的16位数据声明 ? sbit:特殊功能位声明 ? bit:位变量声明 ? 例:sfr SCON = 0X98; ? sfr16 T2 = 0xCC; ? sbit OV = PSW^2;
?

C-51的包含的头文件
通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h ? 常用有:reg51.h reg52.h ? (定义特殊功能寄存器和位寄存器); ? math.h (定义常用数学运算);
?

?
? ?

?
?

C-51的运算符 与C语言基本相同: + - * / (加 减 乘 除) > >= < <= (大于 大于等于 小于 小于等于) == != (测试等于 测试不等于) && || !
>> << &| ^~

?

(逻辑与

逻辑或 逻辑非 )

?

?
?

(位右移 位左移) (按位与 按位或) (按位异或 按位取反)

C-51的基本语句
?

与标准C语言基本相同: 选择语言 循环语言 循环语言 多分支选择语言 循环语言

if while for
? ?

switch/case do-while

中断服务程序
?

函数名()interrupt n using m

{

函数内部实现 ….
}

I/O口定义
sbit beep=P2^3;

单片机主要掌握以下几点
最小系统能够运行起来的必要条件。 1.电源 2.晶振3.复位电路 ? 对单片机任意IO口的随意操作 1.输出控制电平高低2.输出检测电平高低。 ? 定时器:重点掌握最常用的方式2 ? 中断:外部中断、定时器中断、串口中断 ? 串口通信:单片机之间、单片机与计算机间
?

Main 函数
?

格式:void main() 特点:无返回值,无参。 任何一个C程序有且仅有一个main函数,它是整 个程序开始执行的入口。 例:void main() { 总程序从这里开始执行; 其他语句; }

C语言中的基本数据类型
类型 符号 关键字 (signed) int (signed) short (signed) long 无 unsigned int unsigned short int unsigned long int float double char unsigned char 数的表示范围 所占位数 16 -32768~32767 16 -32768~32767 32 16 16 32 32 -2147483648~2147483647 0~65535


整 型

0~65535
0~4294967295 3.4e-38~3.4e38 1.7e-308~1.7e308 -128~127 0~255

有 实 型 有 字 有 符 型 无

64
8 8

? ? ? ? ?

?

C-51与ASM-51相比,有如下优点: 1. 对单片机的指令系统不要求了解,仅要求对 8051 的存贮器结构有初步了解; 2. 寄存器分配、不同存贮器的寻址及数据类型 等细节可由编译器管理; 3. 程序有规范的结构,可分成不同的函数,这 种方式可使程序结构化; 4. 提供的库包含许多标准子程序,具有较强的 数据处理能力; 5. 由于具有方便的模块化编程技术,使已编好 程序可容易地移植;

第三讲
?

Keil软件使用及流水灯设计

简单延时程序 ? 子程序调用 ? 带参数子程序设计 ? C51库函数的方便调用 ? 如何驱动蜂鸣器 ? 如何驱动继电器
?

While语句
?

While (表达式) {语句(内部也可为空)} 特点:先判断表达式,后执行语句。 原则:若表达式不是0,即为真,那么执 行语句。否则跳出while 语句。

For语句及简单延时语句
?

For (表达式1;表达式2;表达式3) { 语句(内部可为空)} 执行过程: 1.求解一次表达式1. 2.求解表达式2,若其值为真(非0 即为真), 则执行for中语句。然后执行第3步。否则结束for 语句,直接跳出,不再执行第3步。 3.求解表达式3. 4.跳到第2步重复执行。

第四讲
数码管是如何显示出字符的 ? 数码管静态显示与动态显示原理
?

显示器及其接口
单片机系统中常用的显示器有: 发光二极管LED(Light Emitting Diode) 显示器、液晶LCD(Liquid Crystal Display) 显示器、CRT显示器等。LED、LCD显示 器有两种显示结构:段显示(7段、米字型 等)和点阵显示(5×8、8×8点阵等)。

g f GND a b a a f e d g b c dp b c d e f g dp a b c d e f g dp

+5V

·

e d GND c dp

(a)

(b)

使用LED显示器时,要注意区分这两种不同的接法。

为了显示数字或字符,必须对数字或字符进行编
码。七段数码管加上一个小数点,共计8段。因

此为LED显示器提供的编码正好是一个字节。TX
实验板用共阴LED显示器,根据电路连接图显示 16进制数的编码已列在下表。

共阴数码管码表
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , ? 0 1 2 3 4 5 ? 0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , ? 6 7 8 9 A B ? 0x39 , 0x5e , 0x79 , 0x71 , 0x00 ? C D E F 无显示
?

LED数码显示方式及电路 静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示方式。 静态显示的特点是每个数码管的段选必须接一个8位数据

线来保持显示的字形码。当送入一次字形码后,显示字
形可一直保持,直到送入新字形码为止。这种方法的优 点是占用CPU时间少,显示便于监测和控制。缺点是硬

件电路比较复杂,成本较高。

动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由

位选线控制是哪一位数码管有效。选亮数码管采用动态
扫描显示。所谓动态扫描显示即轮流向各位数码管送出 字形码和相应的位选,利用发光管的余辉和人眼视觉暂

留作用,使人的感觉好像各位数码管同时都在显示。动
态显示的亮度比静态显示要差一些,所以在选择限流电 阻时应略小于静态显示电路中的。

16 15 14 13 12 11 10

9
R 1K g dp a a b c dp f e g d b c dp DPY 4 -LED g d

5V U1 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 INT1 INT0 T1 T0 1 2 3 4 5 6 7 8 13 12 15 14 31 19 18 9 RD 1 7 W R 16 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 INT1 INT0 T1 T0 EA/ VP X1 X2 R ESET RD WR P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7 VC C GN D RX D TXD ALE/ P PSEN 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 40 20 10 11 30 29 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7

89C52

DPY a f e g d b c dp f e

12

RX D TXD ALE PSEN

C0

C2

C3 9

6

8

C4 P23

P00 11 P01 P02 7 P03 4 P04 2 P05 1 10 P06 P07 5 3
a b c a g d b c dp f e d e f

P00 P01 P02 P03 P04 P05 P06 P07

1 2 3 4 5 6 7 8

LED

P20

P21

P22

第五讲

? 键盘的应用

1、键盘的分类
?

? ?

键盘分编码键盘和非编码键盘。键盘上闭合 键的识别由专用的硬件编码器实现,并产生键编 码号或键值的称为编码键盘,如计算机键盘. 而靠软件编程来识别的称为非编码键盘; 在单片机组成的各种系统中,用的最多的是非编 码键盘。也有用到编码键盘的。

?

非编码键盘有分为:独立键盘和行列式 (又称为矩阵式)键盘。

按键在闭合和断开时,触点会存在 抖动现象:
+5V
无抖动

理想波形 A 实际波形
按下抖动

B 稳定闭合
释放抖动

+5V

有抖动

U1
P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 1 2 3 4 5 6 7 8 13 12 15 14 31 19 18 9 17 16 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 IN T1 IN T0 T1 T0 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7 VCC GND RXD TXD ALE/P PSEN 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 40 20 10 11 30 29

K0

P10
K4

0 4 8 C
P14

K1

1 5 9 D
P15

K2

2 6 A E
P16

K3

3 7 B F
P17

K5

K6

K7

P11 P12 P13
K8

K9

K10

K11

89C52

EA/VP X1 X2 RESET RD WR

K12

K13

K14

K15

第五讲 1602的使用与编程

第七讲 80C51的定时/计数器

80C51的定时/计数器
实现定时功能,比较方便的办法是利用单片机内部 的定时/计数器。也可以采用下面三种方法: ? 软件定时:软件定时不占用硬件资源,但占用了 CPU时间,降低了CPU的利用率。 ? 采用时基电路定时:例如采用555电路,外接必 要的元器件(电阻和电容),即可构成硬件定时 电路。但在硬件连接好以后,定时值与定时范围 不能由软件进行控制和修改,即不可编程。 ? 采用可编程芯片定时:这种定时芯片的定时值及 定时范围很容易用软件来确定和修改,此种芯片 定时功能强,使用灵活。在单片机的定时/计数器 不够用时,可以考虑进行扩展。

定时/计数器的结构和工作原理
? ?

一、定时/计数器的结构 定时/计数器的实质是加1 计数器(16位),由高8 位和低8位两个寄存器组 成。TMOD是定时/计数器 的工作方式寄存器,确定 工作方式和功能;TCON 是控制寄存器,控制T0、 T1的启动和停止及设置溢 出标志。

T1引脚

T0引脚

机器周 期脉冲

TH1

TL1

TH0

TL0

内部总线
GATE TF1 TR1 TF0 TR0 C/T C/T M1 M0 M1 M0

TCON

GATE

TMOD

外部中断相关位

T1方式

T0方式

定时/计数器的工作原理
?

?

加1计数器输入的计数脉冲有两个来源,一个是由系统的时 钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚 输入的外部脉冲源。每来一个脉冲计数器加1,当加到计 数器为全1时,再输入一个脉冲就使计数器回零,且计数 器的溢出使TCON中TF0或TF1置1,向CPU发出中断请 求(定时/计数器中断允许时)。如果定时/计数器工作于 定时模式,则表示定时时间已到;如果工作于计数模式, 则表示计数值已满。 可见,由溢出时计数器的值减去计数初值才是加1计数 器的计数值。

设置为定时器模式时,加1计数器是对内部机器周期 计数(1个机器周期等于12个振荡周期,即计数频 率为晶振频率的1/12)。计数值N乘以机器周期 Tcy就是定时时间t 。

? 设置为计数器模式时,外部事件计数脉冲由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,同时外部中断引脚或也为高电平时,才能 启动定时/计数器工作。即此时定时器的启动多了 一条件。 :定时/计数模式选择位。 =0为定时模 式; =1为计数模式。 M1M0:工作方式设置位。定时/计数器有四种工 作方式,由M1M0进行设置。

控制寄存器TCON

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1 为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的 状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬 件置1或清0的效果一样。 TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1 停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与 停止。 TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。 TR0(TCON.4):T0运行控制位,其功能与TR1类同。

定时/计数器的工作方式
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 TH0 8位 TL0 5位 &
≥1

TMOD T0引脚 1 1 0 0 0 M0 M1 C/T 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0

一、方式0 方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组 成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的 TF0标志,向CPU发出中断请求。

定时器模式时有:N=t/ Tcy ? 计数初值计算的公式为: ? 定时器的初值还可以采用计数个数直接取 补法获得。 ? 计数模式时,计数脉冲是T0引脚上的外部 脉冲。
?

?

?
?

门控位GATE具有特殊的作用。当GATE=0时, 经反相后使 或门输出为1,此时仅由TR0控制与门的开启, 与门输出1 时,控制开关接通,计数开始;当GATE=1时, 由外中断引脚信号控制或门的输出,此时控制与 门的开启由外中断引脚信号和TR0共同控制。当 TR0=1时,外中断引脚信号引脚的高电平启动计 数,外中断引脚信号引脚的低电平停止计数。这 种方式常用来测量外中断引脚上正脉冲的宽度。

方式1
方式1的计数位数是16位,由TL0作为低8位、TH0作为高 8位,组成了16位加1计数器 。
TCON TF1 申请 中断 TR1 TF0 TR0 D7 溢出 1 TH0 8位 TL0 8位 &
≥1

TMOD T0引脚 1 0 M0 M1 C/T 0 机器周期 GATE M0 1 D0 INT0引脚 M1 C/T GATE D7 D0

方式2
?

方式2为自动重装初值的8位计数方式。
TCON TF1 申请 中断 TR1 TF0 TR0 TH0 8位 D0 D7 溢出 1 TL0 &
≥1

TMOD T0引脚 0 1 M0 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0

方式3
方式3只适用于定时/计数器T0,定时器T1处于方 式3时相当于TR1=0,停止计数。
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1

机器周期 TMOD 1 1 M0 M1 C/T 0 机器周期 GATE M0 1 M1 C/T GATE D7 D0

D0

INT0引脚

定时/计数器应用举例
? ? ? ? ?

初始化程序应完成如下工作: 对TMOD赋值,以确定T0和T1的工作方式。 计算初值,并将其写入TH0、TL0或TH1、TL1。 中断方式时,则对IE赋值,开放中断。 使TR0或TR1置位,启动定时/计数器定时或计数。

?

? ? ? ?

?
? ? ?

例 利用定时/计数器T1的方式1,产生10ms的定时,并使P1.0引脚 上输出周期为20ms的方波,采用中断方式,设系统时钟频率为12 MHz。 解:1、计算计数初值X: 由于晶振为12 MHz,所以机器周期Tcy为1 ?s。 所以: N=t/ Tcy =10000/1=10000 X=65536-10000=55536=D8F0H 即应将D8H送入TH0中,F0H送入TL0中 2、求T1的方式控制字TMOD: M1M0=01,GATE=0,C/T=0,可取方式控制字为01H;

第八讲
? 中断系统

MCS-51单片机的中断系统结构
中断响应

中断请求

执行主 程序
断点 继续执行 主程序 执行 中断 处理 程序

中断返回

主程序A

断点

返回

RETI 中断服务程序B

引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。 CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后, 再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功 能的部件称为中断系统(中断机构)。

??

响应

随着计算机技术的应用,人们发现中断技术不仅解 决了快速主机与慢速I/O设备的数据传送问题,而 且还具有如下优点: ? 分时操作。CPU可以分时为多个I/O设备服务, 提高了计算机的利用率; ? 实时响应。CPU能够及时处理应用系统的随机事 件,系统的实时性大大增强; ? 可靠性高。CPU具有处理设备故障及掉电等突发 性事件能力,从而使系统可靠性提高。

80C51中断系统的结构
80C51的中断系统有5个中断源(8052有 6个) ,2个优 先级,可实现二级中断嵌套 。
TCON
IT0 1 0 IE0 1 ET0 1 TF0 IT1 1 0 IE1 1 ET1 1 TF1 0 RI TI ES ≥1 1 PS 0 1 0 PT1 1 0 自 然 优 先 级 中断源 低 级 0 EX1 1 PX1 1 EX0 1

IE
EA 1

IP
PX0 1 0 PT0 1 1

硬件查询
自 然 优 先 级 中断源 高 级

INT0 T0 INT1 T1 RX TX

中断入口

中断入口

SCON

TCON
IT0 1 0 IE0 1 ET0 TF0 IT1 1 0 IE1 1 ET1 1 TF1 1 EX0 1

IE
EA 1

IP
PX0 0 PT0 0 1 1 1

硬件查询
自 然 优 先 级 中断源 1 高 级

INT0 T0 INT1 T1 RX TX

中断入口

EX1

1

PX1 0 PT1 0

1 0 1 0

RI TI

ES ≥1

1

PS

自 然 优 先 级 中断源

低 级

中断入口

SCON

(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿 有效。当CPU检测到P3.2引脚上出现有效的中断信号时, 中断标志IE0(TCON.1)置1,向CPU申请中断。

TCON
IT0 1 0 IE0 1 ET0 TF0 IT1 1 0 IE1 1 ET1 1 TF1 1 EX0 1

IE
EA 1

IP
PX0 0 PT0 0 1 1 1

硬件查询
自 然 优 先 级 中断源 1 高 级

INT0 T0 INT1 T1 RX TX

中断入口

EX1

1

PX1 0 PT1 0

1 0 1 0

RI TI

ES ≥1

1

PS

自 然 优 先 级 中断源

低 级

中断入口

SCON

(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下 降沿有效。当CPU检测到P3.3引脚上出现有效的中断 信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。

TF0(TCON.5),片内定时/计数器T0溢出中断请 求标志。当定时/计数器T0发生溢出时,置位TF0, 并向CPU申请中断。 TF1(TCON.7),片内定时/计数器T1溢出中断请 求标志。当定时/计数器T1发生溢出时,置位TF1, 并向CPU申请中断。 RI(SCON.0)或TI(SCON.1),串行口中断请 求标志。当串行口接收完一帧串行数据时置位RI 或当串行口发送完一帧串行数据时置位TI,向 CPU申请中断。

TCON的中断标志

IT0(TCON.0),外部中断0触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 IE0(TCON.1),外部中断0中断请求标志位。 IT1(TCON.2),外部中断1触发方式控制位。 IE1(TCON.3),外部中断1中断请求标志位。 TF0(TCON.5),定时/计数器T0溢出中断请求标志位。 TF1(TCON.7),定时/计数器T1溢出中断请求标志位。

80C51中断的控制
一、中断允许控制
CPU对中断系统所有中断以及某个中断 源的开放和屏蔽是由中断允许寄存器IE控 制的。

EX0(IE.0),外部中断0允许位; ? ET0(IE.1),定时/计数器T0中断允许位; ? EX1(IE.2),外部中断0允许位; ? ET1(IE.3),定时/计数器T1中断允许位; ? ES(IE.4),串行口中断允许位; ? EA (IE.7), CPU中断允许(总允许)位。
?

中断优先级控制
80C51单片机有两个中断优先级,即可实现 二级中断服务嵌套。每个中断源的中断优 先级都是由中断优先级寄存器IP中的相应 位的状态来规定的 。

PX0(IP.0),外部中断0优先级设定位; PT0(IP.1),定时/计数器T0优先级设定位; PX1(IP.2),外部中断0优先级设定位; PT1(IP.3),定时/计数器T1优先级设定位; PS (IP.4),串行口优先级设定位; PT2 (IP.5) ,定时/计数器T2优先级设定位。

同一优先级中的中断申请不止一个时,则有中断优先 权排队问题。同一优先级的中断优先权排队,由中 断系统硬件确定的自然优先级形成,其排列如所示:

80C51单片机的中断优先级有 三条原则:
CPU同时接收到几个中断时,首先响应优 先级别最高的中断请求。 ? 正在进行的中断过程不能被新的同级或低 优先级的中断请求所中断。 ? 正在进行的低优先级中断服务,能被高优 先级中断请求所中断。
?

?

为了实现上述后两条原则,中断系统内部 设有两个用户不能寻址的优先级状态触发 器。其中一个置1,表示正在响应高优先级 的中断,它将阻断后来所有的中断请求; 另一个置1,表示正在响应低优先级中断, 它将阻断后来所有的低优先级中断请求。

80C51单片机中断处理过程
?

中断响应条件和时间

? 中断响应条件

中断源有中断请求; ? 此中断源的中断允许位为1; ? CPU开中断(即EA=1)。 以上三条同时满足时,CPU才有可能响应中 断。
?

第九讲
计算机串行通信基础 ? 80C51的串行口 单片机串行口编程应用举例
?

计算机串行通信基础
随着多微机系统的广泛应用和计算机网络 技术的普及,计算机的通信功能愈来愈显 得重要。计算机通信是指计算机与外部设 备或计算机与计算机之间的信息交换。 ? 通信有并行通信和串行通信两种方式。在 多微机系统以及现代测控系统中信息的交 换多采用串行通信方式。
?

计算机通信是将计算机技术和通信技术的 相结合,完成计算机与外部设备或计算机 与计算机之间的信息交换 。可以分为两大 类:并行通信与串行通信。 ? 并行通信通常是将数据字节的各位用多条 数据线同时进行传送
?

8位同时传送 接 收 设 备 询问 应答

1 0 1 0 1 1 0 0

发 送 设 备

并行通信控制简单、传输速度快;由于传输线较 多,长距离传送时成本高且接收方的各位同时接 收存在困难。

串行通信是将数据字节分成一位一位的形式在一 条传输线上逐个地传送。
接 收 设 备
D0 D7

8位顺次传送

发 送 设 备

串行通信的特点:传输线少,长距离传送时成本 低,且可以利用电话网等现成的设备,但数据的 传送控制比并行通信复杂。

串行通信的基本概念
?

异步通信与同步通信

1、异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。 为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。

间隙任意 接 收 10100100 1 设 备
0 10100100 1 0 11100110 1

发 送 0 11100110 设 备

异步通信是以字符(构成的帧)为单位 进行传输,字符与字符之间的间隙 (时间间隔)是任意的,但每个字符 中的各位是以固定的时间传送的,即 字符之间不一定有“位间隔”的整数 倍的关系,但同一字符内的各位之间 的距离均为“位间隔”的整数倍。

异步通信的数据格式 :
?

异步通信的特点:不要求收发双方时钟的严 格一致,实现容易,设备开销较小,但每个 字符要附加2~3位用于起止位,各帧之间还 有间隔,因此传输效率不高。
一个字符帧 空 闲 起 始 位 数据位 校 验 位 停 止 位 空 闲
下一字符 起始位

LSB

MSB

串行通信的错误校验
1、奇偶校验 在发送数据时,数据位尾随的1位为奇偶校 验位(1或0)。奇校验时,数据中“1”的 个数与校验位“1”的个数之和应为奇数; 偶校验时,数据中“1”的个数与校验位“1” 的个数之和应为偶数。接收字符时,对“1” 的个数进行校验,若发现不一致,则说明 传输数据过程中出现了差错。

? ?

代码和校验 代码和校验是发送方将所发数据块求和(或各字 节异或),产生一个字节的校验字符(校验和) 附加到数据块末尾。接收方接收数据同时对数据 块(除校验字节外)求和(或各字节异或),将 所得的结果与发送方的“校验和”进行比较,相 符则无差错,否则即认为传送过程中出现了差错。

循环冗余校验
这种校验是通过某种数学运算实现有效信息 与校验位之间的循环校验,常用于对磁盘 信息的传输、存储区的完整性校验等。这 种校验方法纠错能力强,广泛应用于同步 通信中。

传输速率与传输距离
1、传输速率
比特率是每秒钟传输二进制代码的位数,单 位是:位/秒(bps)。如每秒钟传送240 个字符,而每个字符格式包含10位(1个起 始位、1个停止位、8个数据位),这时的比 特率为: 10位×240个/秒 = 2400 bps

传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的最 大距离与传输速率及传输线的电气特性有 关。当传输线使用每0.3m(约1英尺)有 50PF电容的非平衡屏蔽双绞线时,传输距 离随传输速率的增加而减小。当比特率超 过1000 bps 时,最大传输距离迅速下降, 如9600 bps 时最大距离下降到只有76m (约250英尺)。

串行通信接口标准
RS-232C接口 RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标 准。RS-232C定义了数据终端设备(DTE)与数据通信设备 (DCE)之间的物理接口标准。 1、机械特性 RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排 列位置都有明确的定义。(阳头)
1 13 1 5

14

25

6

9

功能特性

RS-232C电平与TTL电平转换 驱动电路
MC1488
-12V
1 2 4 3

MC1489
+12V
2 1 6 5 14 3

+5V

TTL 电平

5 9 10 12 13

8

RS232 电平

RS232 电平

4 9 10

6

TTL 电平

8

11

12 13 11

7

7

采用RS-232C接口存在的问题
1、传输距离短,传输速率低 ? RS-232C总线标准受电容允许值的约束, 使用时传输距离一般不要超过15米(线路 条件好时也不超过几十米)。最高传送速 率为20Kbps。
?

1、传输距离短,传输速率低 ? RS-232C总线标准受电容允许值的约束, 使用时传输距离一般不要超过15米(线路 条件好时也不超过几十米)。最高传送速 率为20Kbps。
?

2、有电平偏移 ? RS-232C总线标准要求收发双方共地。 通信距离较大时,收发双方的地电位差别 较大,在信号地上将有比较大的地电流并 产生压降。
?

抗干扰能力差 ? RS-232C在电平转换时采用单端输入 输出,在传输过程中当干扰和噪声混在正 常的信号中。为了提高信噪比,RS-232C 总线标准不得不采用比较大的电压摆幅。
?

RS-422A接口
SN75174 +5V SN75175 TTL 电平 +5V
双向需4条线

TTL 电平

SN75175

SN75174

RS-422A输出驱动器为双端平衡驱动器。如果其中一条线为逻 辑“1”状态,另一条线就为逻辑“0”,比采用单端不平衡驱 动对电压的放大倍数大一倍。差分电路能从地线干扰中拾取 有效信号,差分接收器可以分辨200mV以上电位差。若传输 过程中混入了干扰和噪声,由于差分放大器的作用,可使干 扰和噪声相互抵消。因此可以避免或大大减弱地线干扰和电 磁干扰的影响。RS-422A传输速率(90Kbps)时,传输距 离可达1200米。

RS-485接口
TTL 电平

双向仅需2条线

TTL 电平

RS-485是RS-422A的变型:RS-422A用于全双工,而RS-485则用于 半双工。RS-485是一种多发送器标准,在通信线路上最多可以使用32 对差分驱动器/接收器。如果在一个网络中连接的设备超过32个,还可 以使用中继器。 RS-485的信号传输采用两线间的电压来表示逻辑1和逻辑0。由于 发送方需要两根传输线,接收方也需要两根传输线。传输线采用差动 信道,所以它的干扰抑制性极好,又因为它的阻抗低,无接地问题, 所以传输距离可达1200米,传输速率可达1Mbps。

RS-485是一点对多点的通信接口,一般采用双绞 线的结构。普通的PC机一般不带RS485接口, 因此要使用RS-232C/RS-485转换器。对于单片 机可以通过芯片MAX485来完成TTL/RS-485的 电平转换。在计算机和单片机组成的RS-485通 信系统中,下位机由单片机系统组成,上位机为 普通的PC机,负责监视下位机的运行状态,并 对其状态信息进行集中处理,以图文方式显示下 位机的工作状态以及工业现场被控设备的工作状 况。系统中各节点(包括上位机)的识别是通过 设置不同的站地址来实现的。

80C51的串行口
?

80C51串行口的结构
TXD SBUF
TH1 TL1 1

控制门 发送控制器
÷16

TI

去串口中断
≥1

A
T1溢出率

÷2

0 SMOD

接收控制器 移位寄存器

RI

RXD SBUF

有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收 器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错 误。

80C51串行口的控制寄存器
?

SCON 是一个特殊功能寄存器,用以设定串行口的工作 方式、接收/发送控制以及设置状态标志:

SM0和SM1为工作方式选择位, 可选择四种工作方式:

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是接收到的停止 位。

?

?

TI,发送中断标志位。在方式0时,当串行发送 第8位数据结束时,或在其它方式,串行发送停 止位的开始时,由内部硬件使TI置1,向CPU发 中断申请。在中断服务程序中,必须用软件将其 清0,取消此中断申请。 ●RI,接收中断标志位。在方式0时,当串行接 收第8位数据结束时,或在其它方式,串行接收 停止位的中间时,由内部硬件使RI置1,向CPU 发中断申请。也必须在中断服务程序中,用软件 将其清0,取消此中断申请。

PCON中只有一位SMOD 与串行口工作有关 :

SMOD(PCON.7) 波特率倍增位。在串 行口方式1、方式2、方式3时,波特率与 SMOD有关,当SMOD=1时,波特率提高 一倍。复位时,SMOD=0。

80C51串行口的工作方式
?
?

?

一、方式0 方式0时,串行口为同步移位寄存器的输入输出方式。 主要用于扩展并行输入或输出口。数据由RXD(P3.0) 引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。 发送和接收均为8位数据,低位在先,高位在后。波特率 固定为fosc/12。 1、方式0输出
写入SBUF RXD(数据) TXD(移位脉冲) TI(中断标志)
D0 D1 D2 D3 D4 D5 D6 D7

方式0输入
REN=1 RI=0 RXD(数据输入) D0 D1 D2 D3 D4 D5 D6 D7

TXD(移位脉冲)

方式1
方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚, 传送一帧数据的格式如图所示。其中1位起始位,8位数据位,1位停止位。

空 闲

起 始 位 D0 LSB

1帧共10位 数据位8位 D7 MSB

停 止 位

空 闲

写入SBUF

方式1输出

TXD TI(中断标志)

起始

D0

D1

D2

D3

D4

D5

D6

D7

停止位

方式1输入
RXD 位采样脉冲 RI(中断标志) 起始
D0 D1 D2 D3 D4 D5 D6 D7

停止位

用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平, 检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入 输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据 从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控 制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1) 时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位) 进入RB8,并置RI=1,向CPU请求中断。

方式2和方式3
方式2或方式3时为11位数据的异步通信口。TXD为数据 发送引脚,RXD为数据接收引脚 。
1帧共11位 空 闲 起 始 位 D0 LSB 数据位9位 D7 MSB 停 止 位 空 闲

RB8/TB8

方式2和方式3时起始位1位,数据9位(含1位附加的第9位,发送时为 SCON中的TB8,接收时为RB8),停止位1位,一帧数据为11位。方 式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器 T1的溢出率决定。

波特率的计算 在串行通信中,收发双方对发送或接收数据的速率要有约定。通过软 件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波 特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的 溢出率来决定。 串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源 不同,所以,各种方式的波特率计算公式也不相同。 方式0的波特率 = fosc/12 方式2的波特率 =(2SMOD/64)· fosc 方式1的波特率 =(2SMOD/32)· (T1溢出率) 方式3的波特率 =(2SMOD/32)· (T1溢出率)

?

? ?

当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时 器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于 TH1中的计数值。 T1 溢出率 = fosc /{12×[256 -(TH1)]} 在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选 用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。

串行口工作之前,应对其进行初始化,主要是设置 产生波特率的定时器1、串行口控制和中断控制。 具体步骤如下:
? ?

?
?

确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器);

串行口在中断方式工作时,要进行中断设置(编程 IE、IP寄存器)。

第十讲
D/A的工作原理 ? D/A的编程
?

D/A转换器及其与单片机接口
?

T型电阻网络D/A转换器
I VREF
I7 I7 R I6 2R 1 0 I6 R I5 2R 1 0 I5 R I4 2R 1 0 I4 R I3 2R 1 0


I3 R I2 2R 1 0 I2 R I1 2R 1 0 I1 R I0 2R 1 0 I0

2R 1 Rfb IO1 IO2

2R

0

+

VO

D7

D6

D5

D4

D3

D2

D1

D0

D/A转换器的主要性能指标
? ? ?

1、分辨率 分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输 出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。 分辨率与输入数字量的位数有确定的关系,可以表示成FS / 。FS表 示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC 时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为 5V/4096=1.22mV。显然,位数越多分辨率就越高。
2、线性度 线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏 差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差 在满刻度的±1%以内。

? ?

3、绝对精度和相对精度 绝对精度(简称精度)是指在整个刻度范围内, 任一输入数码所对应的模拟量实际输出值与理论 值之间的最大误差。绝对精度是由DAC的增益误 差(当输入数码为全1时,实际输出值与理想输 出值之差)、零点误差(数码输入为全0时, DAC的非零输出值)、非线性误差和噪声等引起 的。绝对精度(即最大误差)应小于1个LSB。

? 相对精度与绝对精度表示同一含义,用最 大误差相对于满刻度的百分比表示。
4、建立时间 建立时间是指输入的数字量发生满刻度变化时,输出模拟 信号达到满刻度值的±1/2LSB所需的时间。是描述D/A转 换速率的一个动态指标。 电流输出型DAC的建立时间短。电压输出型DAC的建立时 间主要决定于运算放大器的响应时间。根据建立时间的长 短,可以将DAC分成超高速(<1μS)、高速(10~1μS)、 中速(100~10μS)、低速(≥100μS)几档。

DAC0832内部结构及引脚
DI7~DI0 VREF
输入 锁存器 DAC 寄存器 D/A 转换器

IOUT2 IOUT1

ILE & CS & WR1

LE1 &

LE2 Rfb
AGND

VCC WR2 XFER

DAC0832与80C51单片机的接口
1、单缓冲工作方式
此方式适用于只有一路模拟量输出,或有几路模拟量输 出但并不要求同步的系统。

P2.7

CS XFER DI0 DI7

DAC0832

80C51
P0 WR VSS

VCC ILE Rfb IOUT1 IOUT2

+5V 1kΩ 1MΩ

WR1 WR2 DGND

+

VO

双极性模拟输出电压
+5V
DI0

2R

2R

VREF

DAC0832

偏移码

DI7

Rfb IOUT1 IOUT2
AGND

A1 +

R

VD

A2 +

VOUT

DGND

双缓冲工作方式
多路D/A转换输出,如果要求同步进行,就应 该采用双缓冲器同步方式 。
P2.7 P0 WR
XFER DI0 DI7 WR1 WR2

DAC0832(1)

P2.5

CS

+5V VCC ILE ILE VCC

80C51

XFER DI0 DI7 WR1 WR2

DAC0832(2)

P2.6

CS

直通工作方式
?

当DAC0832芯片的片选信号、写信号、及 传送控制信号的引脚全部接地,允许输入 锁存信号ILE引脚接+5V时,DAC0832芯 片就处于直通工作方式,数字量一旦输入, 就直接进入DAC寄存器,进行D/A转换。

第十一讲
A/D的工作原理 ? A/D的编程
?

逐次逼近式ADC的转换原理
VN

VIN

D/A转换器

VREF D7 D6 D5 D4 D3 D2 D1 D0 OE

START 控制 逻辑 EOC N位寄存器

锁 存 缓 存 器

双积分式ADC的转换原理
标准电压 - + 比较器 计 数 器 控制逻辑 T T1 T2 积分器输出

VIN

时钟

t

A/D转换器的主要技术指标
1、分辨率 ? ADC的分辨率是指使输出数字量变化一个 相邻数码所需输入模拟电压的变化量。常 用二进制的位数表示。例如12位ADC的分 辨率就是12位,或者说分辨率为满刻度FS 的1/ 。一个10V满刻度的12位ADC能分 辨输入电压变化最小值是10V×1/ =2.4mV。
?

量化误差
?

ADC把模拟量变为数字量,用数字量近似表示模 拟量,这个过程称为量化。量化误差是ADC的有 限位数对模拟量进行量化而引起的误差。实际上, 要准确表示模拟量,ADC的位数需很大甚至无穷 大。一个分辨率有限的ADC的阶梯状转换特性曲 线与具有无限分辨率的ADC转换特性曲线(直线) 之间的最大偏差即是量化误差。

偏移误差
?

偏移误差是指输入信号为零时,输出信号 不为零的值,所以有时又称为零值误差。 假定ADC没有非线性误差,则其转换特性 曲线各阶梯中点的连线必定是直线,这条 直线与横轴相交点所对应的输入电压值就 是偏移误差。

满刻度误差 ? 满刻度误差又称为增益误差。ADC的满刻 度误差是指满刻度输出数码所对应的实际 输入电压与理想输入电压之差。
?

线性度 ? 线性度有时又称为非线性度,它是指转换 器实际的转换特性与理想直线的最大偏差。
?

绝对精度
在一个转换器中,任何数码所对应的实际模拟量 输入与理论模拟输入之差的最大值,称为绝对精 度。对于ADC而言,可以在每一个阶梯的水平 中点进行测量,它包括了所有的误差。

转换速率 ? ADC的转换速率是能够重复进行数据转换 的速度,即每秒转换的次数。而完成一次 A/D转换所需的时间(包括稳定时间), 则是转换速率的倒数。
?

第十二讲
单总线的原理 ? 数字温度传感器DS18B20的使用方法与编 程
?

第十三讲
? I2C串行总线的组成及工作原理

I2C串行总线的组成及工作原理
I2C串行总线的组成及工作原理

?

I2C串行总线概述
I2C总线是PHLIPS公司推出的一种串行总线,是具备多主机系统所需的 包括总线裁决和高低速器件同步功能的高性能串行总线。

I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。

? I2C总线通过上拉电阻接正电源。当总线空闲时,

两根线均为高电平。连到总线上的任一器件输出 的低电平,都将使总线的信号变低,即各器件的 SDA及SCL都是线“与”关系。

每个接到I2C总线上的器件都有唯一的地址。主机与其它 器件间的数据传送可以是由主机发送数据到其它器件,这时 主机即为发送器。由总线上接收数据的器件则为接收器。

在多主机系统中,可能同时有几个主机企图启动总线传送 数据。为了避免混乱, I2C总线要通过总线仲裁,以决定由 哪一台主机控制总线。 在80C51单片机应用系统的串行总线扩展中,我们经常 遇到的是以80C51单片机为主机,其它接口器件为从机的单 主机情况。

I2C总线的数据传送
数据位的有效性规定 I2C总线进行数据传送时,时钟信号为高电平期间,数据 线上的数据必须保持稳定,只有在时钟线上的信号为低 电平期间,数据线上的高电平或低电平状态才允许变化。

起始和终止信号
?

SCL线为高电平期间,SDA线由高电平向低电 平的变化表示起始信号;SCL线为高电平期间, SDA线由低电平向高电平的变化表示终止信号。

起始和终止信号都是由主机发出的,在起始信 号产生后,总线就处于被占用的状态;在终止信号 产生后,总线就处于空闲状态。

连接到I2C总线上的器件,若具有I2C总线的硬件 接口,则很容易检测到起始和终止信号。
接收器件收到一个完整的数据字节后,有可能需要 完成一些其它工作,如处理内部中断服务等,可能 无法立刻接收下一个字节,这时接收器件可以将 SCL线拉成低电平,从而使主机处于等待状态。直 到接收器件准备好接收下一个字节时,再释放SCL 线使之为高电平,从而使数据传送可以继续进行。


更多相关文档:

51单片机c语言教程全集

51单片机c语言教程全集_电子/电路_工程科技_专业资料。单片机 c 语言教程全集 ...已把编译好的文件烧到了芯片上,如果购买或自制了带串行 口输出元件的学习...

教你学单片机

(1小时学会C语言51单片机... 22页 1下载券 十天学会单片机实例100 192页 1下载券 手把手教你学单片机14-0... 10页 免费 手把手教你学单片机-005 9页 免费...

51单片机C语言入门教程详细解说

51单片机C语言入门教程详细解说_计算机软件及应用_IT...首先, 你必须有学习单片机的热情, 不是说今天去...(二) 说了这么多了,相信你也看了很多资料了,手...

51单片机好学1602全过程C语言编程

51单片机好学1602全过程C语言编程_信息与通信_工程科技_专业资料。阿拉教你轻松学 51 系列(作者:就抽精品)发布: 2010-2-05 16:03 | 作者: tiankai | 来源:...

跟我学51单片机C语言程序设计

跟我学51单片机C语言程序设计_理学_高等教育_教育专区。跟我学51单片机C语言跟我学单片机系列教程 51 单片机 C 语言程序设计前言单片机以其价格低廉、功能强大、体积...

初学单片机万能模板51单片机C语言程序

初学单片机万能模板51单片机C语言程序 暂无评价|0人阅读|0次下载|举报文档 #include...登录百度文库,专享文档复制特权,财富值每天免费拿!现在就登录>> 你可能喜欢...

(1小时学会C语言51单片机)C语言入门教程

(1小时学会C语言51单片机)C语言入门教程_电脑基础...首先, 你必须有学习单片机的热情, 不是说今天去...(二) 说了这么多了,相信你也看了很多资料了,手...

51单片机的用法

51单片机C语言编程入门以及... 83页 免费 MCS-51单片机外程序存储器... 2页 1财富值 慧净原创《手把手教你学51... 1页 2财富值 MCS_51单片机外程序存储...

单片机教程,51单片机C语言学习

单片机教程,51单片机C语言学习_IT/计算机_专业资料。单片机教程,51单片机C语言学习...或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过 ...

(1小时学会C语言51单片机)C语言入门教程

(1 小时学会 C 语言 51 单片机)C 语言入门教程 相信很多爱好电子的朋友,对...呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来...
更多相关标签:
单片机51 c语言教程 | 80c51单片机c语言教程 | 手把手教你学单片机 | 手把手教你单片机 pdf | 手把手教你单片机 | 手把手学单片机 | 手把手教单片机 | 手把手单片机 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com