版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、器件应用I用两片I叱总线接口通用器件PCF8574扩展的8用键盘王劲文章介绍一种用IC总线接口通用器件PCF8574扩展的行列式舊盘 是免片扎应用系统 扩展犍盘接口时可选择的一种简明而有效的审主,"C总线单片机犍盘© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued. Iittp:/A© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued. Ii
2、ttp:/ASD7SD6SD5SD4SD3SD2SD1SIX)D/ DO S D4 D3 D2 DI LX)1997(181)37 I2C总线是飞利浦公司推出的芯片间串行传输总 线它以两根连线实现全双工同步数据传送可以方便 地构成多机系统和外围器件扩展系统。I2C总线自行数据传送的主耍特点如下:1二线传输。Fc总线上的所有节点,如主器件 (单片机、微处理器等)、外围器件等都连到同名端的 SDA(串行数据线)、SCL (串行时钟线)上.并通过这两 根线在器件之间传送信息。2系统中有多个主器件时,任何一个主器件在 FC上工作时都可成为主控制器(无中心主机)。3. I2C总线传输时釆用状态码管理办法
3、。数据 传输时的任何一种状态都会产生相应的状态码.并由 飞利浦公司提供的标准状态处理程序进行自动处理. 无需用户介入。4. 系统中所有外围器件采用器件地址和引脚地址 的编址方法避免了片选线的连接方法。5. 所有带I2C总线接口的外围器件都具有应答功 能。片内有多个单元地址时数据读写都有地址自动 加1功能。这样准备好读写入口条件后,只需启动I叱 总线就可对相应器件自动完成N个字节的读写操作。I2C87C5528XC552(8OC552、83C552、87C552)为飞利浦公司 的80C51系列中功能最强、用途最广的单片机.其指 令系统与8051完全兼容。片内带有8 K字节用户可 编程EPROM并
4、带有IC总线接口 .片上的IC逻辑 提供了和FC总线规约一致的内部串行接口 .支持除 低速方式之外的所有传送方式。在87C552中将I叱 总线接口定义为SIO1。下面主要介绍CPU和IC总 线逻辑接口中需使用的4个特殊功能寄存器。1地址寄存器地址寄存器(SIADR)用来存放自己的7位从地址 和广播呼叫地址X.其格式如下:SIADR(DBH)该寄存器只在从方式中使用.在主方式中无需向 对方提供自己的地址信息。2数据寄存器数据寄存器(SIDAT)的数据格式如下:SIDAT(DAH)它为串行输入输出结构的核心部分用来存放一 个发送的数据字节或刚收到的一个数据字节。3.控制寄存器控制寄存器(SICON
5、)为可位寻址的特殊功能寄存 器其格式如下:CR2ENSIs r.STo SIAACR1CROSICON(D8H)D7 D6 D5 D4 D3 D2 DI DO各可位寻址位的定义为(仅介绍主方式情况下):CR2、CRl、CR0:时钟速率位。这三位在IC总线 的主方式确定串行口时钟频率。ENS1 :串行口 SIOI使能位。当ENSI = I时. SIOI使能:当ENS1 =0时.FC接口 SDA、SCL线呈髙 阻态,SIOI禁止。STA :启动标志位。当STA = 1时,SIO1将根据I'c总线的状态产生开始信号或重复开始信号;当 $丁人=0时公101不产生开始信号或重复开始信号。STO:
6、停止标志位。STO= I时.SIO1处于主方式 时向I'c总线发送一个终止信号,当检測到总线上的 结束状态时硬件清零:STO = 0时.不产生终止信号。SI:串行中断标志。当SI= 1时若中断允许.则 产生中断请求:当SI = O时.不产生中断请求。AA :维持响应标志位。当AA= I时.在主接收方 式中接收到一个数据字节后在SCL的应答时钟位上 发送应答位(向SDA发送低电平):当AA = O时.在主 接收方式中接收到一个数据字节后.在SCL的应答时 钟位上发送非应答位(向SDA发送高电辛)o4状态寄存器XXXXX000D7 D6 D5 D4 D3 D2 DI DO状态码SISTA(
7、D9H)状态寄存器(S:STA,为只读的特殊功能寄存器. 存放着当前IC总线的状态谒.其格式如下:SISTA的最低3位总是零,高5位保存状态码共 有26种可能的状态.其中F8H没有相关的可用状态 信息也不会请求中断。其它的状态码对应于SIO1的 相应确定状态在进入这些状态时请求串行中断(SI =1) 在SI置位1个机器周期以后.SISTA中出现有 效的状态码在SI由软件复位后1个机器周期内.状 态码仍在SISTA中。PCF8574108 8用两片PCF8574扩展I/O 口组成的8 X8行列式 键盘和FC总线的接口电路如图1所示.图1中主器 件为87C552单片机。PCF8574是单片CMOS
8、电路,它具有8位准双向 口和IC总线接口。PCF8574功耗低.输出锁存.驱动 能力大。该器件还具有中斷请求线.可直接连到单片 机的中断输入端。图2为PC卜8574的引脚图o引脚功能如下:A0 A2为三位数字业坐址:P0P7为八位准双向I/O 口线;VSS为地;而为中断线(低电平有效):SCL为 rc时钟线:SDA为fc数据线;vcc为电源端。图1两片PCF8574扩展I/O 口组成的疔列式键盘1997438 (182)PCF8574的8位口的每一位口线可以独立地定义 为输入线或输出线。输入数据由CPU通过Fc总线 读周期从口读出输出数据由CPU通过IC总线写周 期写入口。因为PCF8574为
9、准双向口.所以作为输入 口使用时,应直口锁存器为高电平。在具体应用时应© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued. Iittp:/AA0 A1 -A2 -P0 -P1 -P2 -F3 VSSg由CPU对PCF8574进行写1操作。图1中,两片少VCC -SDA 一 SCL 一 TnT' 一 P7 一 P6 P5 9卩4PCF8574图2 PCF8574引脚图PCF8574 扩展的 I/O 口分别称作A 口和B 口 其中A 口接至键 盘的列线用于送入扫 描字
10、为一输出口。B 口接至键盘的行线用 干读入行线状态因 B 口在读入行线状态 前先要向B 口锁存器写入1,所以B 口为输入输出 口。A 口的地址为01001110(输出):B G的地址为 01000000(输出).01000001(输入),地址字节各位的定义如下:D7D6D5D4D3D2DIDO0100XXXR/W器件地址引脚地址.其中最低位R/W为0时表示CPU向I/O 口输 出信息;R/W为1时.CPU从I/O 口读取信息。D1 D3为引脚地址.根据图1中接法.A 口和B 口的引脚 地址分别为111和000。D4D7为器件地址, PCF8574的器件地址被定为OlOOoI2CFc总线的应用程
11、序设计主耍有以下部分内容: 状态处理服务程序:i2c中断服务程序:i:c总线初始 化程序和启动i2c总线:通用读写程序。()状态处理模块是26个状态处理程序的集合,用来 自动处理总线数据传送时的各种状态操作是I'C总 线应用程序设计的核心部分。该模块必须定位在由 HADD指定的程序存储器页地址空间。实际上.由于 飞利浦公司提供了标准的状态处理软件包总线状态 处理无须用户介入.实现了应用程序设计的“傻瓜化”。在通用状态处理模块中,每个状态处理程序入口 地址的低8位是相对应的状态码即状态寄存器 SISTA高5位的内容.而高8位由HADD的内容决 定。每个状态处理程序的指令一般为8个字节.当
12、多 于8个字节时则转移到其余的地址空间所以一个完 整的状态处理摸块要占用2个页面地址空间。()FcIc中断后,即执行状态处理的散转程序转向相 应的状态处理程序。因IC中断只有1个,而状态处 理程序的入口地址多达26个所以采用子程序返回O 进入IC中断后.首先将PSW压入堆栈.然后将 SISTA(状态码)和HADD(由初始化程序装入的26个 状态处理程序的髙位地址)压入堆栈通过于程序返回 指令RET将相应的状态处理程序的高位地址HADD 和低位地址SISTA弹出装入程序计数器PC.程序转 向执行相应的状态处理程序状态处理程序的结尾处 再执行中断返回指令RETI退出中断。ORG002BH:1七中断
13、入口地址IICINT:UMPIICI:转向执疔I'c中断服务程序IICI:PUSHPSW:保护现场PUSHSISTA :状态处理程序低位地址压入堆栈PUSHHADD :状态处理程序高位地址压入堆栈RET:状态豳程序高、低位地址入PC()FcPC中断入口及状态散转程序如下:一般情况下可把I2c总线的初始化和通用读写 亍程序合写为一个包括Ic总线初始化的通用读写子 程序。使用时只需满足通用读写子程序的入口条件. 直接调用通用读写子程序就可完成包括启动I'c总 线在内的全部数据传送操作。对干只工作在主方式的本系统来说初始化程序 执行下列操作:1 P1.6、P1.7位锁存器装入逻辑“1
14、”,以宣I叱总 线接口状态;2. RAM单元中HADD装入状态处理模块的髙位 字节地址;3. 允许I2C中断并賈中断优先级别;4. 直位SICON中的ENS1和AA位.设定IC总 线传送速率。包括初始化的I'C总线通用读写于程序如下:TYRW:SETBPl.6SETBPl.7:置Fc总线接口状态MOVHADD.#01H:状态处逊模块高位页地址 为0IHSETBEA:开放中断SETBESI:允许1叱中断MOVSICON. #0C5H:IC总线和响应正常应答位 使能.设置I'c总线传送速 率CLRPSI:设Fc中断为低优先级CLRF0:清正常结束标志位该标志 位应在正常数据传送结束
15、 时置1SETBSTA:置起始位RWDD JBCFO.RVVJS.若I'c总线传送结束转退 出SJMPRWDD:等待1'c总线传送结束RWJS: CLRESI:禁止I'c中断4(183)39 RET此外,在编制应用程序时,还应根据实际应用情况 对标准状态处理模块中使用的一些标号单元进行空间 容量的规划和地址定义。例如.在本系统中需对以下 标号单元进行定义:MTDEQU20 H:主发送缓冲区单元本杀统只用一个单元MRDEQU21H:主接收缓冲区单元本系统只用一 个单元SLAEQU22 H:寻址宁节存放单元NUMBYTEQU23 H:传送宇节数存放单元BACKUPEQU24
16、 H:原始传送字节数备份单元HADDEQU25 H:状态处瑾模块页地址存放单元键处理程序釆用模块化程序设计。图3是犍处理 模块的软件结构。键处理模块按功能可分为犍扫描程 序査找卷号及犍号分类程序及健功能程序三部分。()图3键处理模块程序结构键扫描子程序的功能是判断有无按犍按下以及确 定所拎徐曲傑位冒码C计有关的A 口输出和B 口读入于程序。 A 口(列线)输出于程序PAOUT:MOVSLA,#4EH:寻址器件PCF8574(A口输出)MOVNUMBYT, #01H:传送字节数为1MOVMTD.RO:待输出数据送发送缓冲区LCALLTYRW:调用通用读写子程序向A 口输出数据RETB 口(行线)
17、读入于程序PBIN: MOVSLA,#40H:寻址器件PCF8574(BMOVNUMBYT,#OIH口输出):传送字节数为1MOVMTD,#0FFH:把B 口口锁存器置1LCALLTYRW为输入作准备MOVSLA,# 41 H:寻址器件PCF8574(BMOVNUMB YT.#01H口输入):输入宇节数为1LCALLTYRW:读入B 口电平状态RET查找犍号及犍号分类于程序的功能是根据所按健 的位直码确定權号并确定所按键的功能类别以供后续 程序作相应的卷功能处理。在本系统中釆用根据犍的功能确定健号。比如 110号犍为数字键,1125号键为显示健,2640 号谴为设直遂.4164号犍为測控律。所
18、有的键在犍 盘中的排列位置都可以是任意的。只要依次将164 号键所对应的犍位賈码在数据表中按顺序排列通过 调用査找犍号及犍号分类子程序,就可以方便地确定 犍号及犍功能类别。该于程序流程框图如图4所示。()犍功能子程序的功能为根据查找犍号及犍号分类 子程序提供的犍号及健功能类别,用散辕指令执行不 同的犍功能程序以实现简单的人机通信。© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, © 1994-2009 China Academic Journal Elect
19、ronic Publishing House. All rights rescued, 在图1所示的8 X8行列式键盘中.判断有无按健 按下的方法是将列线(A 口)所有的I/O线均置为低电 平然后读取行线(B 口)的电平状态.若B 口电平状态 不全为1 则必有按健按下。判断犍盘中哪一个按健按下的方法是将列线逐列 宣为低电平然后测试所有行输入状态.若全为I则所 按程不在此列。反之则所按犍必在此列。而该卷的犍 位ft码即为此时的A 口输出值和B 口输入值。下面给出褲扫描子程序中和I'C总线应用程序设 40 仃 84)1 本文所介绍的键盘工作方式为査询式。如果采 用中断工作方式由于IC总线数
20、据传送是在单片机 的中断服务程序中进行,因而需实现中断嵌套这时应 把1叱中断设直为高优先级。2. 如果系统中键数不多.可用1片PCF8574扩展 4 X4»盘。其电路连接更加简单。3. PCF8574A和PCF8574除了器件地址不同外. 其它完全相同。可用PCF8574A代替PCF8574。19974© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, © 1994-2009 China Academic Journal Electronic Pub
21、lishing House. All rights rescued, © 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, PIC16C56单片机在模糊控制电饭锅中的应用河海大学计算机及信息工程学院毛兆荣常州无线电工业学校 刘 杰© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, © 1994-2009 China Academic Jo
22、urnal Electronic Publishing House. All rights rescued, 对于一个智能电饭锅来说馅当进行火力控制是 煮出优质米饭的关健。传统电饭锅以磁钢对电饭锅 进行控制其控制温度不很精确.其烧饭过悭也相刍简 单。新一代智寵型电饭锅釆吊革片权控创系统,不仅 使电饭锅姿現了晋锻化无巨增加了许多新切£。本 文介绍用PICI6;56芯片开发的新一代智能型电饭锅 的控制原谨、外围电气原理图以及主要的软件流程图。烧饭工艺过程分成吸水、加热、沸腾、炯饭、膨胀和 保温等几个阶段如图1所示。从上图可以看出该煮饭射工艺过程各个阶段.其温度 的变化和时间的长短都不同而
23、且随着烧饭米量的不 同这个工艺过程还要作适当的调整这是一种智能化 的控制过程。传统的电饭锅以磁钢对电饭锅过程进行 控制根本无法完成这种“烧饭专家”的控制过程而采 用数字单片机揑制系统.可实现该工艺过程控制.煮出 质量优良的米饭。© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, 图I烧饭工艺过程曲线该单片机控制系统的电原理如图2所示.其核心 为PIC16C56单片机.外围电路包括电源电路、測温电 路、參数设定及显示电路、加热器控制及声音提示电 路、计时脉冲电路等几个部分,下面作一简单说明。()PIC16C56PIC16C56单片机是美国Microchip公司生产的精 简指令集RSIC单片机.釆用CMOS制造工艺.低功 耗。它具有单周期/单字节指令.釆用哈佛流水总线结 构O口具有较大的带负栽能力oPIC!6C56单片机© 1994-2009 China Academic Jou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子竞技行业市场规模预测
- 探寻中国证券经纪人制度模式的演进与变革:挑战、创新与发展路径
- 2026年七年级政治上册期末考试试卷及答案(共三套)
- 探寻中国特色银行保险发展之路:现状剖析与未来展望
- 市场调查数据分析表及操作指南
- 人工智能在小学音乐教育中的应用:跨学科融合案例分析与音乐教育创新实践案例教学研究课题报告
- 项目按期完成率承诺书(8篇)
- 2025年能源行业高效创新报告洞察
- 企业招聘面试题库与筛选流程模板
- 2026年零售行业创新报告及无人商店发展趋势分析报告
- 2026年及未来5年市场数据中国金属铍行业市场竞争格局及发展趋势预测报告
- 2025-2030中国动物狂犬病疫苗行业发展现状及趋势前景分析研究报告
- 第04讲 数与式综合提升卷(原卷版)-2025年中考数学一轮复习(全国版)
- 会议纪要标准化撰写模板
- (人教A版)选择性必修一高二数学上册 全册综合测试卷-基础篇(原卷版)
- 矿山大型设备防腐施工方案
- 人教版(2024)七年级上册英语Unit1-7各单元语法专项练习题(含答案)
- 项目投资协议书范本合同
- 第二章拟投入施工机械设备
- 王庄矿5.0Mt-a新井设计 - 厚煤层回采巷道支护技术研究
- 心脏手术血糖管理
评论
0/150
提交评论