已阅读5页,还剩93页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统应用技术,三、C8051F310+C51应用实例赵玉昆,实例,实例1通用I/O端口实例2A/D转换实例3温度测量实例4定时器及中断实例5UART应用实例6SMBus应用(24C0X)实例7I2C应用(ZLG7290)实例8I2C应用(PCF8563T),实例1通用I/O端口,1.1C8051F310端口的特殊性1.2通用I/O端口实例1.3提高题,1.1C8051F310端口的特殊性,C8051F310有29个I/O引脚(P0、P1、P2、P3-5脚)通过交叉开关可以使引脚分配给数字外设、模拟外设未分配给的管脚作为通用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.07P1.07P2.03,交叉开关,P0.0脚,P2.4脚,P3.4脚,P2.47P3.04,。,P2.3脚,.,.,XBR0,XBR1,PnSKIP,.,(3)I/O端口初始化,端口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)的初始化只要做第1、2步。,(3)I/O端口初始化举例,例如:C8051F310目标板上的发光管D2接到了P3.3脚,按钮S2接到了P0.7脚,模拟量接到了P2.4脚。P3.3做数字输出、P0.7做数字输入、P2.4做模拟输入P3MDIN=0 xff;/P3.3做数字输入(默认)P3MDOUT=0 x08;/P3.3推挽输出P0MDIN=0 xff;/P0.7做数字输入(默认)P2MDIN=0 xef;/P2.4做模拟输入,1.2通用I/O端口应用实例,例题:C8051F310目标板上的发光管D2接到了P3.3脚,按钮S2接到了P0.7脚,模拟量接到了P2.4脚。要求:松开S2则D2慢闪,按住S2则D2快闪。,1.2通用I/O端口应用实例(续),#include/C8051F310的SFR定义sbitLED=P33;/LED位定义sbitSW=P07;/SW位定义/-延时-voiddelay(unsignedlongv)while(-v);/-主程序-voidmain(void)PCA0MD/SW按下则快闪,否则慢闪,1.3提高题,(1)按一下S2,D2亮,再按一下S2,D2灭,依此类推。(2)按下S2,D2闪亮3次,松开S2,D2闪亮2次,依此类推。(3)用C8051F310带动DP-51实验箱,使8个LED左向、右向流水点亮。,实例2A/D转换,2.1C8051F310的AD转换器简介2.2左右对齐的例子2.3ADC相关寄存器2.4ADC输入引脚配置2.5A/D转换实例2.6提高题,10位ADC原理框图,除P0口,2.1C8051F310的AD转换器简介,10位逐次逼近型ADC,最高采样率200kspsAMX0P:正输入:23选1:P1.0P3.4、温度传感器、VDDAMX0N:负输入:22选1:P1.0P3.4、GND单端方式:GND作为负输入,其余为差分方式(略)。ADC0H、ADC0L:转换结果AD0LJST位:决定转换结果左对齐或右对齐Justified输入范围:0VREF*1023/1024AD值与输入电压(VIN)的关系:,AD值=()*1024,2.2左右对齐的例子,单端方式时左、右对齐的例子,2.3电压基准VREF,REF0CN:电压基准控制寄存器REFSL:0=选择外部电压基准(来自P0.0脚)1=或内部电压基准(VDD)TEMPE:1=允许内部温度传感器工作BIASE:1=内部偏压发生器工作(使用ADC时该位必须为1),2.3ADC相关寄存器,AMUX0P:ADC正输入通道选择寄存器AMX0P(正端选择):可选P1.0P3.4、温度传感器、VDDAMUX0N:ADC负输入通道选择寄存器AMX0N(负端选择):可选P1.0P3.4、GND,2.3ADC相关寄存器(续1),ADC0CF:配置寄存器每次AD转换约需11个AD时钟脉冲AD0SC(选择AD时钟):复位后,AD时钟=系统时钟/32AD0LJST(左对齐):0=右对齐最低采样率=24.5MHz/32/11=70ksps最高采样率200ksps,此时AD0SC=?11,AD时钟频率=,2.3ADC相关寄存器(续2),ADC0CN:控制寄存器地址=0 xE8,可位寻址AD0EN(ADC允许):1=允许ADCAD0TM(跟踪方式):0=正常方式,一直跟踪AD0INT(结束标志):1=AD转换结束AD0BUSY(忙标志):若AD0CM000,AD0BUSY置1则启动AD转换AD0CM(启动方式):000=向AD0BUSY写1时启动AD转换,2.4ADC输入引脚配置,注意:作为ADC输入的引脚应:配置为模拟输入(PnMDIN对应位置0),使交叉开关跳过(如果是P0.0-P2.3,PnSKIP对应位置1)。,2.5A/D转换实例,例题:按图在C8051F310目标板的J6上接一个电位器,要求:向P2.5输出高电平(=VDD),从P2.4读入模拟电压。当输入电压小于VDD一半时,发光管D2慢闪,否则快闪。,2.5A/D转换实例(续1),#include/C8051F310的SFR定义sbitLED=P33;/LED位定义sbitP25=P25;/P2.5位定义bitbKuai;/快慢标志/-延时-voiddelay(unsignedlongv)while(-v);/-初始化-voidFirst(void)PCA0MD/允许ADC0,2.5A/D转换实例(续2),/-主程序-voidmain(void)unsignedintad;/AD转换结果First();/初始化P25=1;/向电位器送出+3.3V电压while(1)AD0BUSY=1;/启动ADC0while(!AD0INT);/等待AD转换结束AD0INT=0;/清除AD转换结束标志LED=!LED;/LED闪烁delay(bKuai?5000:20000);/快慢闪ad=ADC0H*256+ADC0L;/读取AD值bKuai=(ad512);/决定快慢,2.6提高题,(1)用电位器改变输入电压,电压越高,D2闪烁越快,直至全亮;电压越低,D2闪烁越慢,直至全暗。(2)用C8051F310带动DP-51实验箱,使8个LED流水点亮。当电压大于2/3满量程,LED左向流动,当电压1/32/3满量程,LED闪烁,当电压小于1/3满量程,LED右向流动。,实例3温度测量,3.1片内温度传感器简介3.2温度测量实例3.3提高题,3.1片内温度传感器简介,要使用内部温度传感器,REF0CN.2(TEMPE)必须置1。正端输入AMX0P=0 x1E,选择温度传感器负端输入AMX0N=0 x1F,选择GND温度传感器的传输函数:mV温度=3.35*(温度)+897mV,AD值=()*1024,当Vref=VDD=3.3V时,1-3.35mV-3.35/3300*1024=1.04AD值,3.2温度测量实例,例题:利用C8051F310目标板,编程测量环境温度。当温度较低(如低于20)时,发光管D2慢闪,否则快闪。解:Vref=VDD=3.3V20的mV温度=3.35*20+897=964mV20的AD值=964/3300*1024=351,3.2温度测量实例(续1),#include/C8051F310的SFR定义sbitLED=P33;/LED位定义bitbKuai;/快慢标志/-延时-voiddelay(unsignedlongv)while(-v);/-初始化-voidFirst(void)PCA0MD/允许ADC0,3.2温度测量实例(续2),/-主程序-voidmain(void)unsignedintad;/AD转换结果First();/初始化while(1)AD0BUSY=1;/启动ADC0while(!AD0INT);/等待AD转换结束AD0INT=0;/清除AD转换结束标志LED=!LED;/LED闪烁delay(bKuai?5000:20000);/快慢闪ad=ADC0H*256+ADC0L;/读取AD值bKuai=(ad351);/决定快慢,根据实际情况修改,3.3提高题,(1)用手指给C8051F310加温,温度越高D2闪烁越快。(2)用C8051F310带动DP-51实验箱,使8个LED流水点亮。温度越高,流动越快。,实例4定时器及中断,4.1定时器的时钟4.2定时器的相关寄存器4.3定时器的初值4.4定时器中断实例4.5提高题,4.1定时器的时钟,内部振荡频率=24.5MHz,系统时钟=24.5MHz/振荡器分频T0时钟=系统时钟/定时器分频,4.2定时器的相关寄存器,内部振荡频率=24.5MHz,系统时钟=24.5MHz/振荡器分频OSCICN:内部振荡器控制寄存器IOSCEN:1=内部振荡器使能。IFRDY:内部振荡器就绪标志。1=就绪IFCN:内部振荡器到SYSCLK的分频位缺省分频数为8。系统时钟=24.5/8=3.0625MHz,4.2定时器相关的寄存器(续1),T0时钟=系统时钟/定时器分频CKCON:时钟控制寄存器T1M:类似于T0M。T0M:0=T0时钟由分频位(SCA)决定。1=T0时钟为系统时钟SCA:T0、T1分频位,4.3定时器的初值,例如:振荡器分频=1,T0分频=12,求定时10ms的初值=?振荡器分频=1:OSCICN|=0 x03;SYSCLK=24.5MHzT0分频=12(默认):CKCON=0 x00;T0时钟=24.5/12=2.0417MHz10ms计数=10000(us)*2.0417(次/us)=20417T0初值=65536-20417,4.4定时器中断实例,例题:用定时器及中断功能,构造C8051F310应用程序框架,具有1ms、10ms、100ms、1s函数调用。利用程序框架,编制发光管D2每秒亮100ms的程序。,4.4定时器中断实例(续1),#include/C8051F310的SFR定义/T0时钟=24.5/12=2.0417MHz,10ms计数=10000(us)*2.0417(次/us)=20417#defineT0_VAL(65536-20417)/T0初值sbitLED=P33;/LED位定义bitb10ms;/10ms标志unsignedcharCnt10ms;/-初始化-voidFirst(void)PCA0MD,4.4定时器中断实例(续2),/-10ms处理-voiddo_10ms(void)/-100ms处理-voiddo_100ms(void)/-1s处理-voiddo_1s(void)LED=!LED;/LED亮1秒、暗1秒,4.4定时器中断实例(续3),/-主程序-voidmain(void)First();/初始化while(1)if(b10ms)b10ms=0;do_10ms();if(Cnt10ms%10=0)do_100ms();if(+Cnt10ms=100)Cnt10ms=0;do_1s();,4.4定时器中断实例(续4),/-定时中断10ms-voidT0_Int(void)interrupt1TH0=T0_VAL/256;TL0=T0_VAL%256;b10ms=1;注意:中断函数定义函数名任意,加上interrptn修饰,n为中断号,T0中断为1号中断。中断函数的入口参数、出口参数均为void。,4.4定时器中断实例(续5),要实现LED每秒亮100ms的效果,只要每秒点亮LED,每100ms熄灭LED即可。/-100ms处理-voiddo_100ms(void)LED=0;/熄灭LED/-1s处理-voiddo_1s(void)LED=1;/点亮LED,4.5提高题,(1)用DP-51实验箱,使LED1以1秒闪烁,LED2以2秒闪烁,LED2LED8流水点亮。,实例5UART应用,5.1交叉开关5.2交叉开关相关的寄存器5.3波特率5.4UART应用实例5.5UART应用实例b5.6提高题,数字交叉开关原理框图,5.1交叉开关,P0.0P2.3管脚,通过交叉开关,分配给GPIO或数字外设,UARTSMBus等,P0.07P1.07P2.03,交叉开关,P0.0脚,P2.4脚,P3.4脚,P2.47P3.04,。,P2.3脚,.,.,XBR0,XBR1,PnSKIP,.,5.1交叉开关(续1),交叉开关:优先权交叉开关译码器某些数字资源(如UART、SMBus等)需要引脚,交叉开关为其分配引脚。从P0.0到P2.3按顺序分配(UART0总是使用P0.4和P0.5)。PnSKIP中被置1的那些位,将被跳过。如用于VREF、模拟输入、晶振或GPIO的引脚。,5.1交叉开关(续2),没有引脚被跳过(PnSKIP=0 x00)的交叉开关优先权译码表,5.1交叉开关(续3),晶体引脚被跳过的交叉开关优先权译码表,5.2交叉开关相关的寄存器,XBR0:交叉开关寄存器0SMB0E:SMBusI/O使能位,1=连到端口引脚。URT0E:UARTI/O使能位,1=连到端口引脚。其他省略位:其他数字外设使能。XBR1:交叉开关寄存器1XBARE:交叉开关使能位。要使用交叉开关,应使XBARE=1。其他省略位:其他数字外设使能。,5.3波特率,使用内部振荡器时的波特率,内部振荡24.5MHz,OSCICN:IFCN,振荡器分频,定时器分频,CKCON:T1M、SCA,T1时钟,系统时钟,T1定时溢出,溢出,T1:方式2,波特率,2,T1时钟,5.3波特率(续1),UART0波特率公式:波特率=2例:振荡器分频=1,T1分频=12,波特率=9600,求T1的初值=?解:振荡器分频=1:OSCICN|=0 x03;SYSCLK=24.5MHzT1分频=12(默认):CKCON=0 x00;T1时钟=24.5/12=2.0417MHz波特率=9600T1计数值=2041700/9600/2=106T1初值=256106=150,RS-232,5.4UART应用实例,例题:C8051F310通过串口发送一些信息。通过电脑运行的串口调试软件显示这些信息。,5.4UART应用实例(续1),#include/C8051F310的SFR定义#include/可以使用printf等函数#defineT0_VAL(65536-20417)/T0初值sbitLED=P33;/LED位定义bitb10ms;/10ms标志unsignedcharCnt10ms;/-初始化-voidFirst(void)PCA0MD,5.4UART应用实例(续2),/-UART初始化-voidUART_init(void)OSCICN|=0 x03;/SYSCLK=24.5MhzXBR0=0 x01;/交叉开关0:允许UARTXBR1=0 x40;/交叉开关1:允许XBARSCON0=0 x10;/SCON0:8位,允许接收,TH1=(256-106);/波特率=9600TL1=TH1;TR1=1;/启动Timer1TI0=1;/TI发送完成,5.4UART应用实例(续3),/-10ms处理-voiddo_10ms(void)/-100ms处理-voiddo_100ms(void)/-1s处理-voiddo_1s(void)LED=!LED;/LED闪烁printf(“rnHello”);/向串口输出字符串,5.4UART应用实例(续4),/-主程序-voidmain(void)UART_init();/UART初始化First();/初始化while(1)if(b10ms)b10ms=0;do_10ms();if(Cnt10ms%10=0)do_100ms();if(+Cnt10ms=100)Cnt10ms=0;do_1s();,5.4UART应用实例(续5),/-定时中断10ms-voidT0_Int(void)interrupt1TH0=T0_VAL/256;TL0=T0_VAL%256;b10ms=1;由于系统函数printf()占用资源比较多,建议自己编写简单的字符串输出函数Fs_Str()。,5.5UART应用实例b,不使用printf函数,自己构建Fs_Str函数:/-串口发送1字节-voidFs_1Byte(unsignedcharv)SBUF0=v;while(!TI0);TI0=0;/-串口发送code字符串-voidFs_Str(unsignedcharcode*Str)while(*Str)Fs_1Byte(*Str+);去掉头文件#include在使用printf(“rnHello);的地方,改为Fs_Str(rnHello);,5.4UART应用实例(续5),无printf、Fs_Str函数时,资源占用:ProgramSize:data=20.1xdata=0code=125用printf函数时,资源占用:ProgramSize:data=41.2xdata=0code=1183推算,printf需要资源:data=41.2-20.1=21.1,code=1183-125=1058用自建Fs_Str函数,资源占用:ProgramSize:data=23.1xdata=0code=194推算,Fs_Str函数需要资源:data=23.1-20.1=3,code=194-125=69,5.6提高题,(1)试将上述例题中的波特率改为4800。(2)通过串口,将温度值每秒一次发送到电脑。(3)通过串口,发送以下信息:按一次S2,将C8051F310内部RAM的00H7FH单元的内容发送到电脑显示。,实例6SMBus应用(24C0X),6.1SMBus规范6.224C0X简介6.3I2C底层程序6.4I2C测试程序(24C0X)6.5提高题(24C0X),6.1SMBus规范,SMBus与I2C兼容用2根导线传递双向信号:SDA:串行数据SCL:串行时钟典型SMBus连接:,6.1SMBus规范(续1),SMBus规定:SCL=0时,SDA可以变化;SCL=1时,SDA的变化有特殊定义。开始位:SCL=1时,SDA的下跳变。停止位:SCL=1时,SDA的上跳变。数据1:SCL=1时,SDA的1。数据0:SCL=1时,SDA的0。应答ACK:即数据0。应答NACK:即数据1。,6.1SMBus规范(续2),主器件:发开始位、停止位,发SCL。通常由MCU担任。从器件:听从主器件指挥。通常为各种外围功能芯片。可以有1个主器件,多个从器件。每个从器件有从地址SLA,最低位为读写位,0=写,1=读。例如:I2C接口E2PROM芯片24C0X的从地址为1010000X,(0 xA0)I2C接口键盘及LED驱动ZLG7290的从地址为0111000X,(0 x70)I2C接口日历芯片PCF8563的从地址为1010001X,(0 xA2)主、从器件都可以发送、接收。接收者负责返回应答信号ACK或NACK一次通讯过程由1个开始位、若干数据字节+应答、1个停止位组成,6.224C0X简介,24C01A/02A/04A1K/2K/4K位的电擦除PROM。使用标准2线串行接口I2C。同一总线中最多可连接8个24C01/02或4个24C04。有硬件写保护功能。,6.3I2C底层程序,例题:以F310为主器件,24C02为从器件为例,编制I2C底层程序和测试程序。,6.3I2C底层程序(续1),/-口位地址定义-sbitSDA=P00;sbitSCK=P01;/-发送1个开始位-voidStart(void)SDA=1;SCK=1;SDA=0;SCK=0;SDA=1;/释放SDA/-发送1个停止位-voidStop(void)SDA=0;SCK=1;SDA=1;,6.3I2C底层程序(续2),bitbACK;/-发出1个NACK,也用于读入ACK-bitTestACK()SDA=1;SCK=1;bACK=SDA;SCK=0;return(bACK);/-发出1个ACK-voidI2C_ACK(void)SDA=0;SCK=1;SCK=0;SDA=1;,6.3I2C底层程序(续3),/-输出8位。入口v=发送的数据-voidOut8Bit(ucharv)uchari;for(i=0;i8;i+)SDA=(bit)(v/发送SDA=1,以接收ACK,6.3I2C底层程序(续4),/-输入8位。入口:fACK=发送的ACK,返回:接收的数据-ucharIn8Bit(bitfACK)uchari,v=0;for(i=0;i8;i+)SCK=1;/发1个时钟v=v1;v=v|(uchar)(SDA);/读SDASCK=0;if(fACK)I2C_ACK();/发ACKelseTestACK();/发NACKreturn(v);,6.3I2C底层程序(续5),MCU写出1字节到E2PROM:,6.3I2C底层程序(续6),/-写出1个字节。入口Addr=8位地址,v=数据-voidI2C_Wr1By(ucharAddr,ucharv)Start();/发送1个开始位Out8Bit(0 xa0);/发出器件slave地址,24系列为1010XXX0写Out8Bit(Addr);/发送存储单元地址Out8Bit(v);/发送写数据Stop();/发送1个停止位ACKPol();/ACK轮询,检查写完成/-ACK轮询,等待写完成。-voidACKPol(void)bACK=1;while(bACK)/取EE的ACKStart();/发送1个开始位Out8Bit(0 xa0);/发写命令,如果器件忙,bACK=1Stop();/发送1个停止位,6.3I2C底层程序(续7),MCU从E2PROM读入1字节:,6.3I2C底层程序(续8),/-读入1个字节。入口Addr=8位地址,返回读入数据-ucharI2C_Rd1By(ucharAddr)ucharv;Start();/发送1个开始位Out8Bit(0 xa0);/发出器件slave地址,24系列为1010XXX0写Out8Bit(Addr);/发送存储单元地址Start();/再发送1个重启动命令Out8Bit(0 xa1);/发出器件slave地址,24系列为1010XXX1读v=In8Bit(0);/读入1字节数据,发NACK,告诉器件要结束了Stop();/发送1个停止位return(v);,6.4I2C测试程序(24C0X),#include/C8051F310的SFR定义/-初始化-voidFirst(void)PCA0MD,6.5提高题(24C0X),(1)通过串口读取24C0X:键入“D0”,显示24C0X的00H0FH单元的内容,键入“D1”,显示24C0X的10H1FH单元的内容,依此类推。(2)通过串口读写24C0X:键入一个字符串,以回车结束,保存到24C0X。断电重新启动后,显示一次24C0X中保存的字符串。,实例7I2C应用(ZLG7290),7.1ZLG7290简介7.2F310与ZLG7290的连接7.3ZLG7290的驱动7.4ZLG7290测试程序7.5提高题(ZLG7290),7.1ZLG7290简介,特点LED/键盘驱动芯片I2C串行接口,写:0 x70;读:0 x71可驱动8位共阴数码管和64个按键。可控扫描位数,可控任一数码管闪烁。无需外接元件驱动LED。提供键盘中断。可检测键的连击次数。,7.2F310与ZLG7290的连接,C8051F310与ZLG7290连接示意图,7.3ZLG7290的驱动,ZLG7290速度较慢,I2C驱动中要加延时例如:voidnop(ucharn)for(;n!=-1;n-);/*发送1个启动命令*/voidStart(void)SDA=1;nop(1);SCK=1;nop(1);SDA=0;nop(1);SCK=0;nop(1);SDA=1;nop(1);,7.3ZLG7290的驱动(续1),ZLG7290显示通讯接口:从地址=0 x70内部有寄存器0 x000 x17,7、8号是命令接口在第w个位置处显示v的方法是,连续向7、8号寄存器写入:DP=1:小数点亮Flash=1:闪烁最右边数码管的位置w=0显示值v=0F例如:在第7个位置处显示3:向7、8号送0 x67、0 x03,7.3ZLG7290的驱动(续2),连续写出n个字节的函数:/入口sla=从地址,Addr=8位地址,*s=指向数据,n=数据个数voidI2C_WrnBy(ucharsla,ucharAddr,uchardata*s,ucharn)uchari;Start();/发送1个开始位Out8Bit(sla);/发出器件slave地址,ZLG7290为0 x70Out8Bit(Addr);/发送存储单元地址for(i=0;in;i+)/连续n次Out8Bit(*s+);/发送写数据Stop();/发送1个停止位,7.3ZLG7290的驱动(续3),zlg7290显示命令(在第w位,显示v):#defineZLG7290_sla0 x70/ZLG7290的从地址=0 x70voidZLG7290_Disp(ucharw,ucharv)ucharData2;Data0=0 x60+w;Data1=v;I2C_WrnBy(ZLG7290_sla,0 x07,Data,2);Delay(10);例如:在第7个位置处显示3:ZLG7290_Disp(7,3);,7.3ZLG7290的驱动(续4),ZLG7290键盘通讯接口:当有按键时,ZLG7290发出INT=01号寄存器为键值寄存器,0=无键,116=键值。读键程序:sbitKEY_INT=P12;ucharkey;if(KEY_INT=0)key=I2C_Rd1By(ZLG7290_sla,1);/从1号寄存器读入键值ZLG7290_Disp(0,key);/在第0位处,显示键值,7.3ZLG7290的驱动(续4),ZLG7290的复位:初始化时做一次,向RST发出一个负脉冲,延时一段时间,等待ZLG7290完成复位。复位函数:sbitZLG_RST=P13;/ZLG_RST管脚要上拉1K电阻,抗干扰/-zlg7290复位-voidZLG7290_reset(void)ZLG_RST=0;Delay(1);ZLG_RST=1;Delay(200);,7.4ZLG7290测试程序,先在数码管上显示“76543210”,然后,每按一键,在第0位置处显示键值。voidmain(void)uchari,key;First();/初始化ZLG7290_reset();for(i=0;i8;i+)ZLG7290_Disp(i,i);/在第i位处,显示i值while(1)if(KEY_INT=0)key=I2C_Rd1By(ZLG7290_sla,1);/从1号寄存器读入键值ZLG7290_Disp(0,key);/在第0位处,显示键值,7.5提高题(ZLG7290),(1)在右边3个数码管上显示一个0255的计数值,每0.1秒增1。(2)在上题基础上,增加以下功能:当按过1号键,每0.1秒增1;按过2号键,每0.1秒减1。,实例8I2C应用(PCF8563T),8.1PCF8563T简介8.2F310与PCF8563T的连接8.3PCF8563T的驱动8.4PCF8563T测试程序8.5提高题(PCF8563T),8.1PCF8563T简介,特点实时时钟日历芯片,I2C串行接口,写:0 xA2;读:0 xA3可编程时钟输出,报警和定时器.,8.2F310与PCF8563T的连接,C8051F310与PCF8563T连接示意图,8.3PCF8563T的驱动,PCF8563T显示通讯接口:从地址=0 xA2内部有16个寄存器0 x000 x0F0、1号是控制寄存器,初始化为0即可第28号是日历时间,BCD码格式例如:10秒=0 x10,8.3PCF8563T的驱
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋季国家管网集团华中公司高校毕业生招聘考试参考题库(浓缩500题)附答案详解(b卷)
- 2026年大庆市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解参考
- 2026国网陕西省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题附答案详解(综合题)
- 2026秋季国家管网集团浙江省天然气管网有限公司高校毕业生招聘笔试备考试题(浓缩500题)及答案详解(名师系列)
- 2026国网宁夏高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题附答案详解(模拟题)
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试备考试题(浓缩500题)附参考答案详解(a卷)
- 2026秋季国家管网集团浙江省天然气管网有限公司高校毕业生招聘笔试模拟试题(浓缩500题)带答案详解ab卷
- 2025国网黑龙江省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题附答案详解
- 2026秋季国家管网集团福建公司高校毕业生招聘笔试备考题库(浓缩500题)附答案详解(巩固)
- 2026国家管网集团广西公司秋季高校毕业生招聘笔试备考试题(浓缩500题)附答案详解(综合题)
- 2025年山东省招聘社区工作者考前冲刺卷(附答案)
- 消毒和隔离技术知识培训课件
- 2025采编实务考试真题及答案
- 摄影师基础知识培训课程
- 安全阀动作相关题库及答案解析
- 2024北森图形推理题
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 医疗耗材配送服务方案
- 植物生理学(全套PPT课件)
- 医生出诊登记表
- GB 16993-2021 防止船舶封闭处所缺氧危险作业安全规程
评论
0/150
提交评论