讲稿《嵌入式系统应用技术》“三”

上传人:mg****85 文档编号:49805773 上传时间:2018-08-03 格式:PPT 页数:98 大小:858KB
返回 下载 相关 举报
讲稿《嵌入式系统应用技术》“三”_第1页
第1页 / 共98页
讲稿《嵌入式系统应用技术》“三”_第2页
第2页 / 共98页
讲稿《嵌入式系统应用技术》“三”_第3页
第3页 / 共98页
讲稿《嵌入式系统应用技术》“三”_第4页
第4页 / 共98页
讲稿《嵌入式系统应用技术》“三”_第5页
第5页 / 共98页
点击查看更多>>
资源描述

《讲稿《嵌入式系统应用技术》“三”》由会员分享,可在线阅读,更多相关《讲稿《嵌入式系统应用技术》“三”(98页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统应用技术三、C8051F310+C51应用实例赵玉昆嵌入式系统应用技术实例n实例1 通用I/O端口n实例2 A/D转换n实例3 温度测量n实例4 定时器及中断n实例5 UART应用n实例6 SMBus应用(24C0X)n实例7 I2C应用(ZLG7290)n实例8 I2C应用(PCF8563T)嵌入式系统应用技术实例1 通用I/O端口n1.1 C8051F310端口的特殊性n1.2 通用I/O端口实例n1.3 提高题嵌入式系统应用技术1.1 C8051F310端口的特殊性nC8051F310有29个 I/O 引脚(P0、P1、P2、P3-5脚)n通过交叉开关可以使引脚分配给数字外设、

2、模拟外设n未分配给的管脚作为通用 I/O(GPIO) (1)端口相关寄存器 (2)I/O 端口初始化 (3)I/O 端口初始化举例嵌入式系统应用技术 (1)端口相关寄存器Pn:端口寄存器 PnMDIN:输入方式1=数字输入,0=模拟输入 PnMDOUT: 输出方式0=开漏输出,1=推挽输出 PnSKIP: 端口跳过0=不跳过,1=跳过 XBR0、XBR1: 交叉开关0=不分配,1=分配数字外设其中n=03 为复位值嵌入式系统应用技术 (2)交叉开关P0.0P2.3管脚,通过交叉开关,分配给GPIO或数字外设 P2.4P3.4管脚,不通过交叉开关,不分配给数字外设。UARTSMBus等P0.07

3、P1.07P2.03交叉开关P0.0脚P2.4脚P3.4脚P2.47P3.04。 。P2.3脚.XBR0,XBR1,PnSKIP嵌入式系统应用技术 (3)I/O 端口初始化n端口 I/O 初始化(教科书P47)1 输入方式(PnMDIN),端口引脚的输入方式(模拟或数 字)。 2 输出方式(PnMDOUT),端口引脚的输出方式(开漏或 推挽)。 3 端口跳过寄存器(PnSKIP),交叉开关跳过的引脚。 4 将引脚分配给要使用的外设。(XBR0、XBR1) 5 使能交叉开关(XBARE =1)。 说明:通用I/O端口(P0.0-P2.3)的初始化要做第1、2、5步。通用I/O端口(P2.4-P3

4、.4)的初始化只要做第1、2步。输入 PnMDIN数字模拟 10 输出 PnMDOU T开漏推挽 001嵌入式系统应用技术 (3)I/O 端口初始化举例例如:C8051F310目标板上的发光管D2接到了P3.3脚, 按钮S2接到了P0.7脚,模拟量接到了P2.4脚。 P3.3做数字输出、 P0.7做数字输入、 P2.4做模拟输入P3MDIN = 0xff;/P3.3做数字输入(默认) P3MDOUT = 0x08;/P3.3推挽输出P0MDIN = 0xff;/P0.7做数字输入(默认)P2MDIN = 0xef;/P2.4做模拟输入嵌入式系统应用技术1.2 通用 I/O 端口应用实例例题:C

5、8051F310目标板上的发光管D2接到了P3.3脚, 按钮S2接到了P0.7脚,模拟量接到了P2.4脚。 要求:松开S2则D2慢闪,按住S2则D2快闪。嵌入式系统应用技术1.2 通用 I/O 端口应用实例(续)#include / C8051F310的SFR定义 sbit LED =P33;/ LED位定义 sbit SW =P07;/ SW位定义 /- 延时 - void delay(unsigned long v) while(-v); /- 主程序 - void main(void) PCA0MD / WDTE = 0 (禁止看门狗) P3MDIN = 0xff;/P3.3做数字输入(

6、默认) P3MDOUT = 0x08; /P3.3推挽输出 P0MDIN = 0xff;/P0.7做数字输入(默认) while(1) LED = !LED;/LED闪烁 delay(SW ? 20000 : 5000);/SW按下则快闪,否则慢闪 嵌入式系统应用技术1.3 提高题(1)按一下S2,D2亮,再按一下S2,D2 灭,依此类推。 (2)按下S2,D2闪亮3次,松开S2,D2 闪亮2次,依此类推。 (3)用C8051F310带动DP-51实验箱,使 8个LED左向、右向流水点亮。嵌入式系统应用技术实例2 A/D转换n2.1 C8051F310的AD转换器简介n2.2 左右对齐的例子n

7、2.3 ADC相关寄存器n2.4 ADC 输入引脚配置n2.5 A/D转换实例n2.6 提高题嵌入式系统应用技术n10位ADC原理框图 除P0口嵌入式系统应用技术2.1 C8051F310的AD转换器简介n10 位逐次逼近型 ADC, 最高采样率200kspsnAMX0P:正输入:23 选 1:P1.0P3.4、温度传感 器、VDDnAMX0N:负输入:22 选 1:P1.0P3.4、GNDn单端方式:GND作为负输入,其余为差分方式 (略)。nADC0H、ADC0L:转换结果nAD0LJST 位:决定转换结果左对齐或右对齐Justifiedn输入范围: 0 VREF*1023/1024nAD

8、值与输入电压( VIN)的关系:VIN VREFAD值 = ( ) * 1024嵌入式系统应用技术2.2 左右对齐的例子n单端方式时左、右对齐的例子右对齐左对齐 满量程16进 制0x03FF 0xFFC0 2进制0000 0011 1111 1111 1111 1111 1100 0000 半量程16进 制0x0200 0x8000 2进制0000 0010 0000 0000 1000 0000 0000 0000嵌入式系统应用技术2.3 电压基准VREFnREF0CN: 电压基准控制寄存器REFSL:0=选择外部电压基准(来自P0.0脚)1=或内部电压基准(VDD) TEMPE:1=允许内

9、部温度传感器工作 BIASE:1=内部偏压发生器工作(使用 ADC 时该位必须为1) D7D6D5D4D3D2D1D0复位值 - -REFS LTEMP EBIASE -00000000嵌入式系统应用技术2.3 ADC相关寄存器AMUX0P:ADC 正输入通道选择寄存器AMX0P(正端选择):可选P1.0P3.4、温度传感 器、VDDAMUX0N:ADC 负输入通道选择寄存器AMX0N(负端选择):可选P1.0P3.4、GNDD7D6D5D4D3D2D1D0复位值 -AMX0P00000000D7D6D5D4D3D2D1D0复位值 -AMX0N00000000嵌入式系统应用技术2.3 ADC相

10、关寄存器(续1)ADC0CF:配置寄存器每次AD转换约需11个AD时钟脉冲nAD0SC(选择AD时钟):复位后,AD时钟=系统时钟/32nAD0LJST(左对齐) :0=右对齐最低采样率 = 24.5MHz / 32 / 11 = 70ksps 最高采样率200ksps,此时AD0SC = ?11系统时钟 频率 AD0SC + 1AD时钟频率=D7D6D5D4D3D2D1D0复位值AD0SCAD0LJST -11111000嵌入式系统应用技术2.3 ADC相关寄存器(续2)ADC0CN:控制寄存器 地址=0xE8,可位寻址nAD0EN(ADC允许):1=允许ADCnAD0TM(跟踪方式) :0

11、=正常方式,一直跟踪 nAD0INT(结束标志) :1=AD转换结束nAD0BUSY(忙标志):若 AD0CM000,AD0BUSY置1则启动AD转换nAD0CM(启动方式):000=向AD0BUSY 写1时启动AD转换 D7D6D5D4D3D2D1D0复位值AD0EN AD0TM AD0INT AD0BUSY 略 AD0CM 00000000写入1AD0BUSY转换结束启动方式0:嵌入式系统应用技术2.4 ADC 输入引脚配置注意: 作为 ADC 输入的引脚应:n配置为模拟输入( PnMDIN对应位置 0 ),n使交叉开关跳过(如果是P0.0-P2.3,PnSKIP对应位置 1 ) 。嵌入式

12、系统应用技术2.5 A/D转换实例例题:按图在C8051F310目标板的J6上接一个电位器, 要求:向P2.5输出高电平(=VDD),从P2.4读入模拟电 压。当输入电压小于VDD一半时,发光管D2慢闪,否则快 闪。C8051F310目标板J6: P2.4P2.5P0.0嵌入式系统应用技术2.5 A/D转换实例(续1)#include / C8051F310的SFR定义 sbit LED=P33;/ LED位定义 sbit P25=P25;/ P2.5位定义 bitbKuai;/ 快慢标志 /- 延时 - void delay(unsigned long v) while(-v); /- 初始

13、化 - void First(void) PCA0MD / WDTE = 0 (禁止看门狗) P3MDOUT = 0x08; / LED=P3.3推挽输出 P2MDOUT = 0x20; / P2.5推挽输出,给电位器供电 P2MDIN = 0x10; / P2.4模拟输入 AMX0P = 0x0c;/ 正输入=P2.4 AMX0N = 0x1f;/ 负输入=GND ADC0CF = 0xf8;/ 右对齐(默认) ADC0CN = 0x00;/ 向 AD0BUSY 写 1 时启动 ADC0 转换(默认) REF0CN = 0x0a;/ VDD作VREF,开偏压 AD0EN = 1;/ 允许 A

14、DC0 嵌入式系统应用技术2.5 A/D转换实例(续2)/- 主程序 - void main(void) unsigned int ad;/ AD转换结果 First ();/ 初始化 P25 = 1;/ 向电位器送出+3.3V电压 while(1) AD0BUSY = 1;/ 启动 ADC0 while(!AD0INT);/ 等待AD转换结束 AD0INT = 0;/ 清除AD转换结束标志 LED = !LED;/ LED闪烁 delay(bKuai ? 5000 : 20000);/ 快慢闪 ad = ADC0H*256 + ADC0L;/ 读取AD值 bKuai = (ad 512);/

15、 决定快慢 嵌入式系统应用技术2.6 提高题(1)用电位器改变输入电压,电压越高, D2闪烁越快,直至全亮;电压越低,D2闪 烁越慢,直至全暗。 (2)用C8051F310带动DP-51实验箱,使 8个LED流水点亮。 当电压大于2/3满量程,LED左向流动, 当电压1/32/3满量程,LED闪烁, 当电压小于1/3满量程,LED右向流动。嵌入式系统应用技术实例3 温度测量n3.1 片内温度传感器简介n3.2 温度测量实例n3.3 提高题嵌入式系统应用技术3.1 片内温度传感器简介n要使用内部温度传感器,REF0CN.2(TEMPE)必须置1。n正端输入 AMX0P=0x1E,选择温度传感器n负端输入 AMX0N=0x1F,选择GNDn温度传感器的传输函数 :mV温度=3.35*(温度)+897mVVINVREFAD值 = ( ) * 1024当Vref = VDD = 3.3V时,1 - 3.35mV- 3.35/3300*1024=1.04 AD值嵌入式系统应用技术3.2 温度测量实例例题:利用C8051F310目标板,编程测量环境温度

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号