
下拉菜单值写入数据库
VLOOKUP函数 在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值。
这里所说的“数组”,可以理解为表格中的一个区域。
数组的列序号:数组的“首列”,就是这个区域的第一纵列,此列右边依次为第2列、3列……。
假定某数组区域为B2:E10,那么,B2:B10为第1列、C2:C10为第2列……。
语法: VLOOKUP(查找值,区域,列序号,逻辑值) “查找值”:为需要在数组第一列中查找的数值,它可以是数值、引用或文字符串。
“区域”:数组所在的区域,如“B2:E10”,也可以使用对区域或区域名称的引用,例如数据库或数据清单。
“列序号”:即希望区域(数组)中待返回的匹配值的列序号,为1时,返回第一列中的数值,为2时,返回第二列中的数值,以此类推;若列序号小于1,函数VLOOKUP 返回错误值 #VALUE!;如果大于区域的列数,函数VLOOKUP返回错误值 #REF!。
“逻辑值”:为TRUE或FALSE。
它指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。
如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值;如果“逻辑值”为FALSE,函数 VLOOKUP 将返回精确匹配值。
如果找不到,则返回错误值 #N\\\/A。
如果“查找值”为文本时,“逻辑值”一般应为 FALSE 。
另外: ·如果“查找值”小于“区域”第一列中的最小数值,函数 VLOOKUP 返回错误值 #N\\\/A。
·如果函数 VLOOKUP 找不到“查找值” 且“逻辑值”为 FALSE,函数 VLOOKUP 返回错误值 #N\\\/A。
下面举例说明VLOOKUP函数的使用方法。
假设在Sheet1中存放小麦、水稻、玉米、花生等若干农产品的销售单价: A B 1 农产品名称 单价 2 小麦 0.56 3 水稻 0.48 4 玉米 0.39 5 花生 0.51 ………………………………… 100 大豆 0.45 Sheet2为销售清单,每次填写的清单内容不尽相同:要求在Sheet2中输入农产品名称、数量后,根据Sheet1的数据,自动生成单价和销售额。
设下表为Sheet2: A B C D 1 农产品名称 数量 单价 金额 2 水稻 1000 0.48 480 3 玉米 2000 0.39 780 ………………………………………………… 在D2单元格里输入公式: =C2*B2 ; 在C2单元格里输入公式: =VLOOKUP(A2,Sheet1!A2:B100,2,FALSE) 。
如用语言来表述,就是:在Sheet1表A2:B100区域的第一列查找Sheet2表单元格A2的值,查到后,返回这一行第2列的值。
这样,当Sheet2表A2单元格里输入的名称改变后,C2里的单价就会自动跟着变化。
当然,如Sheet1中的单价值发生变化,Sheet2中相应的数值也会跟着变化。
其他单元格的公式,可采用填充的办法写入
excel中带条件写入和带条件的下拉菜单设置
先在表上任意空白位置比如k1:k2输入同意,不同意,再设置c列有效性,序列,在来源里输入公式=IF(A1=B1,,INDIRECT(k1:k2))
excel下拉序号时为什么出现重复的数字 而不是1、2、3、4、5
汽车电子与CAN总线 要:器局域网(CAN)是一种支持分布式控制或实时控制的总线,具有高性能和高可靠性的特点;随着现代汽车技术的发展,CAN技术在汽车电子领域应用日益广泛。
文章介绍了符合CAN2.0B协议汽车CAN系统设计方案,着重讨论了以微处理器P89C668为核心的CAN总线智能节点的软硬件实现,推荐一款MOTOROLA的多路开关检测芯片MC33993,并且涉及到 ,SPI以及在系统编程等技术。
关键词:现场总线,CAN,汽车电子,MC33993, ,SPI 1 汽车电子与CAN总线 随着汽车电子技术的不断发展,汽车上各种电子控制单元的数目不断增加,连接导线显著增加,因而提高控制单元间通讯可靠性和降低导线成本已成为迫切需要解决的问题。
为此以研发和生产汽车电子产品著称的德国BOSCH公司开发了CAN总线协议,并使其成为国际标准(ISO11898)。
1989年,Intel公司率先开发出CAN总线协议控制器芯片,到目前为止,世界上已经拥有20多家CAN总线控制器芯片生产商,110多种CAN总线协议控制器芯片和集成CAN总线协议控制器的微处理器芯片。
在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
我国的汽车CAN总线技术起步较晚,但随着现代汽车电子的不断进步发展,其研究和应用正如火如荼的进行中。
CAN总线是一种串行多主站控制器局域网总线,是一种有效支持分布式控制或实时控制的串性通讯网络。
CAN总线的通信介质可以是双绞线,同轴电缆或光导纤维,通信速率可达1Mbps\\\/40m,通信距离可达10km\\\/40Kbps。
由于其通信速率高,可靠性好以及价格低廉等特点,使其特别适合中小规模的工业过程监控设备的互连和交通运载工具电气系统中。
CAN总线有如下基本特点: ◎ 废除传统的站地址编码,代之以对通信数据块进行编码,可以多主方式工作; ◎ 采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,有效避免了总线冲突; ◎ 采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短; ◎ 每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用; ◎ 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响; ◎ 可以点对点,一对多及广播集中方式传送和接受数据。
图1 汽车CAN总线系统架构 现代汽车典型的控制单元有电控燃油喷射系统,电控传动系统,防抱死制动系统(ABS),防滑控制系统(ASR),废气再循环系统,巡航系统和空调系统,车身电子控制系统(包括照明指示和车窗,刮雨器等)。
完善的汽车CAN总线网络系统架构如图1所示。
2 CAN节点硬件构架 核心芯片: 选用PHILIPS公司的高性能8位微处理器P89C668。
其突出特点如下: ◎ 80C51 中央处理单元; ◎ 内置可ISP(在系统编程)和IAP(在应用编程)的Flash 存储器,Boot ROM 可通过串口访问从而升级下载用户程序; ◎ 每个机器周期6 个时钟周期操作标准,每个机器周期12 个时钟周期操作可选,周期12 个时钟周期下速度高达33MHz; ◎ 8K字节RAM和64K字节FLASH; ◎ 4 个中断优先级,8 个中断源; ◎ 自带 串行接口序列; ◎ 5路可编程的计数器阵列PCA(PWM输出,捕捉\\\/比较,高速输出三种工作方式)。
无论从处理能力,存储容量,还是外围资源以及网络可扩展性方面来评价,P89C668都是一款出色的微处理器,适用工控电子等各个领域。
尤其是其8K字节RAM的海量内存,更是许多高速存储应用场合的首选。
CAN接口电路: 采用技术成熟应用广泛的SJA1000(CAN控制器),6N137(光电隔离),P82C250(CAN收发器)组成接口电路。
需要指出的是,CAN总线(CANH,CANL)两端务必跨接120欧的终端电阻。
SJA1000中断引脚接CPU的外中断0引脚。
在应用\\\/系统编程电路: IAP\\\/ISP技术在许多款高性能单片机得到应用,其突出特点是方便快捷的实现程序的下载和更新。
P89C668的FLASH空间0XFC00~0XFFFF烧写入1K字节的Boot Rom程序,上电后可以通过软件和硬件置位方法进入Boot Rom程序,通过PHILIPS提供的编程软件由串行口通讯就可以实现程序的在线升级(ISP)。
当然用户还可以根据需要依据协议,自己编写Boot Rom程序(IAP)。
通过拨码开关硬件置位(ALE, , ,P2.6,P2.7),上电后强制进入Boot Rom程序,烧写程序完毕后拨回原来状态重新上电后就进入用户程序。
串行口电平转换芯片用MAX202替代MAX232,其匹配电容只需103瓷片电容。
串行数据通讯波特率可达38400bps。
晶振和复位电路: 外接一块工业级的12M振荡芯片作为时钟信号。
复位电路采用X25045芯片进行智能控制。
X25045芯片将看门狗定时器,电源监控电路和E2PROM功能合三为一。
看门狗定时器功能在系统出错期间,经过一个可设置的时间间隔就置位RESET信号。
电源监控电路能检测到欠电压状况,在VCC下降到限阀值以下,系统被复位。
并且RESET信号在VCC恢复且稳定之前一直有效。
存储器功能的X25405是CMOS的4096字的E2PROM.并且支持SPI协议的三线(SO,SI,SCLK)存取。
本节点用到X25405的前两个功能构成可靠的复位电路。
开关\\\/数字量,模拟量检测电路: 汽车节点的开关器件(信号灯,雨刮,面板,车窗玻璃,电动后视镜等等的开关)特别复杂和繁多,而电流检测,水温油位传感器信号都是非线性的模拟信号,所以可靠实时地对这些开关\\\/模拟量进行检测成为汽车电子硬件必须解决的问题。
传统的分立元件保持电路存在可靠性差,尤其是开关触点氧化严重,浪费大量的微处理器I\\\/O口等问题,推荐采用MOTOROLA公司的多路开关检测芯片MC33993。
其突出优点如下: ◎ 3.3\\\/5.0V的SPI序列读写(SO,SI,SCLK); ◎ 8路可编程开关输入检测(接地或接电源),14路接地开关输入检测,每路开关状态改变均能够产生中断; ◎ 开关输入电压从-14V~Vpwr(工作电源),Vpwr最大可达40V; ◎ 开关状态改变时的可选择唤醒; ◎ 可选择的湿性电流(16mA或2mA); ◎ 22对1的模拟量输出; ◎ Vpwr的低功耗电流(standby current)小于100uA,VDD的低功耗电流(standby current)小于10uA。
可见只需要四个CPU口线(SPI序列线和片选),就能够完成22路开关量(其中有8路可编程为对接电源开关)的检测,还可以进行串行和并行的多片MC33993级连。
所谓的湿性电流(wetting current),指的是MC33993内部提供的输入口的上拉和下拉恒流源,可以编程选择为16mA或2mA,这对于保证开关的可靠闭合,去除金属触点的氧化物有着良好的作用。
输入口的恒流源,可以直接驱动MOSFET以及LED。
每一个输入口都可以编程为模拟量输出状态,从而在AMUX引脚输出所选输入口的电压。
利用MC33993恒流源和模拟量输出可以组成线性的传感器检测电路。
ADC芯片选用AD公司生产的并行数据采样集成芯片AD1674。
它从引脚到功能都与AD574\\\/674完全兼容,但内部增加了采样\\\/保持电路,采样频率为100kHZ,并且有全控模式和单一工作模式。
其采样精度可达0.05%,符合高速数据采集的要求。
功率器件驱动电路: 汽车车身控制系统需要驱动大功率的用电器件,比如照明信号灯,前后雨刮器电机,电动车窗,电动后视镜等等。
功率驱动器件考虑采用MOTOROLA公司的汽车专用功率器件。
MC33286为汽车电气专用智能的双路控制驱动芯片,与传统的机械继电器相比,自身提供过流和过热保护,响应时间更短,稳定性更高。
MC33286设有两路驱动通道,每路最大工作电流可达15A,通过两路输入端口将CPU引脚电平信号引入,经过内部的逻辑处理模块转换成输出通道的电平变化。
特别适合信号灯以及阻性负载的驱动。
MC33887是带反馈的H桥型驱动芯片,专用来驱动需要正反转的电机负载。
MC33486与MC33887类似,但内部只有半桥须外加CMOS管以构成全桥驱动电路,稳定输出可达10 A,尤其适用于电动车窗电机之类的大功率并伴有冲击电流的正反相控制要求。
3 软件结构 系统的程序结构分为四个部分:CAN通讯程序(包括应用层协议的SJA1000通讯),外围接口程序(所有检测芯片和驱动芯片的驱动),中断服务程序(处理开关信号以及故障报警等消息),主程序(完成系统初始化和任务调度,喂狗等)。
限于篇幅,以下着重介绍 CAN应用层协议。
本系统CAN通讯选用CAN2.0B协议的PeliCAN模式,通信位速率为500Kbps,采用双验收滤波器机制。
为使用及修改方便,通讯协议中标识码设计兼容点对点、一对多及广播通讯模式。
开关量消息通讯时各节点间采用主从结构,子节点的报文只有主节点接收(点对点模式),主节点的报文所有子节点均接收(广播模式)。
模拟量消息通讯时各节点间采用点对点模式。
标识符定义:(如图3所示) ◎ 类名:00000100--应答类消息(自检应答、故障诊断);00001000--命令类消息;00010000--调试类消息;00100000--下载类消息;01000000--工作类消息。
◎ 保留A:验收滤波器配置预留。
应答类消息中:ID19:1--自检应答消息 0--故障诊断出错消息 ID20:验收滤波器配置预留 工作类消息中:ID19:1--开关量消息 0--模拟量消息 ID20:验收滤波器配置预留 ◎ 目的地址:接收报文节点的地址。
◎ 源地址:发送报文节点的地址,用于系统自检。
图3 标识符定义 4 结束语 CAN总线以其高性能,高可靠性及独特的设计,受到工业控制领域和汽车电子领域的广泛重视,已被公认为最有前途的现场总线之一。
我们深信不久的将来,国产的CAN总线汽车必将诞生。



