




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 单片机的串行扩展技术7·1 什么是单片机应用系统的并行扩展? 什么是单片机应用系统的串行扩展? 各有什么特点?发展趋势如何?答: (1单片机的外围并行扩展单片机的外围并行扩展是指单片机与外围扩展单元采用并行接口的连接方式,数据传输为并行传送方式。(2单片机的外围串行扩展单片机的外围串行扩展是指单片机与外围扩展单元采用串行接口的连接方式,数据传输为串行传送方式。(3并行扩展和串行扩展的特点外围并行扩展数据传输速度较高,但扩展电路较复杂。串行总线扩展,可大大简化系统结构,降低了成本,提高了可靠性,但是数据传输速度较低。(4发展趋势早年,单片机都提供了较完善的并行总线,以便通过并行
2、扩展程序存储器、数据存储器、I/O口和外围接口。而且,许多外围接口器件也相应配备有并行总线接口,以实现扩展。但是,并行总线与思了大量引脚资源。后来,随着片内OTP ROM、MTP ROM以及外围电路串行接口的发展,单片机串行扩展接口设置的普遍化、高速化,以及在片FLASH ROM不必外部并行扩展EPROM,使得单片机的并行接口技术己日渐衰退。采用串行接口可以大大减少引脚数量,简化系统结构,提高了系统的可靠性和抗干扰能力。与串行总线相比,并行总线有极快的数据传输速度,因此并行总线型单片机仍应用于要求快速数据传送的外围通道接口中。另外,许多总线型单片机都提供了并行总线与I/O口的复用功能,当并行总
3、线不使用时,可作为I/O口使用,不会造成并行总线引脚资源的浪费。7· 2 什么是 80C51虚拟 UART方式 0串行扩展接口?它和 UART方式0的区别在哪里?答: UART方式0是以UART中的移位寄存器方式实现各种外围器件的扩展的;而虚拟UART方式0串行扩展是指使用通用I/O口以虚拟的移位寄存器工作方式来实现串行外围接口的扩展的。两者的区别在于: UART方式0串行扩展使用80C51中的UART资源(RXD、TXD,而虚拟UART方式0串行扩展只需使用任意两根I/O端口线即可。7·3 使用虚拟 UART方式0串行扩展时,归一化子程序中哪些符号单元? 这些符号单元在使
4、用中如何定义?答: 虚拟UART方式0串行扩展时,归一化子程序中的符号单元有MTD: 发送数据缓冲区首地址;MRD: 接收数据缓冲区首地址;VRXD: 虚拟接收端口;VTXD: 虚拟发送端口。符号单元在调用归一化子程序前必须予以定义,如:MTD EQU 30HMRD EQU 40HVRXD EQU Pl.5VTXD EQU Pl.67·4 什么是 80C51虚拟I2C总线? 它和 I2C总线有何不同? 什么情况下可用虚拟 I2C总线?什么时候必须用I2C总线?答: (1虚拟I2C总线I2C总线是一种双向同步串行数据传输总线。在没有I2C总线接口的单片机中,用两根I/O口线来模拟I2C
5、总线接口的技术,称为I2C总线虚拟技术,所模拟的总线,称为虚拟I2C总线。(2虚拟I2C总线和I2C总线的不同虚拟I2C总线接口只适用于单主系统下的主发送和主接收;在多主的I2C总线应用系统中,必须采用带有I2C总线接口的单片机。(3虚拟I2C总线的使用条件在多主的I2C总线系统中,一定使用带I2C总线接口的单片机。如果没有I2C总线接口的单片机,要构成多主系统的虚拟I2C总线,必须在虚拟P'C总线中解决多主竞争状态,这几乎是不可能的。在单主方式的I2C总线系统中,总线上只有一个单片机,其余都是带I2C总线的外围器件。由于总线上只有单片机成为主节点,该单片机永远占据总线,不会出现总线竞
6、争,主节点也不必有自己的节点地址。在虚拟的I2C总线上,只有主方式下的主发送和主接收两种操作方式。7·5 虚拟I2C总线软件包 VIIC为什么只试用于主方式下? 单片机应用系统中什么状态的I2C总线工作在主方式下?答: 因为虚拟I2C总线通用软件包VIIC是在单主方式下设计而成的,也只有在单主方式下才允许I2C总线的虚拟。单片机应用系统中,总线上只有一个单片机,其余都是带I2C总线的外围器件。单片机成为主节点,永远占据总线,不会出现总线竞争,这时的I2C总线工作在主方式下。7·6 虚拟 I2C总线软件包 VIIC由哪些子程序构成?占用哪些单片机资源?答: (1虚拟I2C总线
7、通用软件包VIIC的组成虚拟I2C总线通用软件包VIIC包含以下两种类型、九个子程序:信号模拟子程序:启动I2C总线(STA子程序;停止I2C总线的数据传输(STOP子程序;发送应答位(MACK子程序;发送非应答位(MNACK子程序。通用子程序:应答位检查(CACK子程序;向VSDA线上发送一个数据字节(WRBYT子程序;从VSDA线上读取一个数据字节(RDBYT子程序;虚拟I2C总线发送N字节数据(WRNBYT子程序;虚拟I2C总线接收N字节数据(RDNBYT子程序。(2虚拟I2C总线通用软件包VIIC占用的单片机资源虚拟I2C总线软件包VIIC可以设置在程序存储器的任何空间;占用两根I/O
8、线(VSDA数据线、VSCL时钟线;在片内RAM区,占用:发送数据缓冲区、接收数据缓冲区、寻址字节(SLA W/R存放单元、传送数据字节数N存放单元;子程序中,还占用:R0、Rl、R2、R3、F0及C。7·7 虚拟 I2C总线软件包 VIIC中有哪些符号单元? 在应用中怎样来定义这些符号单元?答: (1虚拟I2C总线软件包VIIC中的符号单元VSDA: 虚拟I2C总线数据线;VSCL: 虚拟I2C总线时钟线;MTD: 发送数据缓冲区首地址;MRD: 接收数据缓冲区首地址;SLA: 寻址宇节(SLA W/R存放单元;NUMBYT: 传送数据字节数N存放单元。(2在应用中符号单元的定义使
9、用通用虚拟I2C总线软件包VIIC时,应事先用伪指令分配好这些符号地扯。如VSDA EQU P1.7VSCL EQU P1.6SLA EQU 50HNUMBYT EQU 51HMTD EQU 30HMRD EQU 40HSLAW EQU 外围器件寻址字节(写SLAR EQU 外围器件寻址字节(读7·8 请参考基本练习7一7基本练习7-12,设计图7-20虚拟I2C总线演示系统的演示软件包。以图7-25为核心,设计4组按键操作程序,例如:按Kl,给PCF8591送数进行D/A转挨,然后进行A/D转挨,在LED上同时显示D/A转换数据与A/D转换结果,并点亮Ll;按K2,码盘中的数送入E
10、2PROM中,并点亮1、2;按K3,E2FROM中的码盘数据显示在LED显示器上,并点亮L3;按K4,LED显示器上轮流显示RAM中的数据,并点亮L4。答:根据题意编程如下VSDA EQU P1.7VSCL EQU P1.6NUMBYT EQU 51HMTD EQU 30HMRD EQU 40H;SLAW EQU 0A0H ;E2PROMSLAR EQU 0A1HSUBSDR EQU 50H ;E2PROM中指定存储单元的首址;SLAW1 EQU 70H ;SAAl064(1COM1 EQU 77H ;SAAl064(1命令BCDST1 EQU 60H ;SAAl064(1显示缓冲区SLAW2
11、 EQU 76H ;SAAl064(2COM2 EQU 77H ;SAAl064(2命令BCDST2 EQU 64H ;SAAl064(2显示缓冲区;SLAW3 EQU 40 H ;PCF8574 MK4LED4,A2=A1=A0=0SLAR3 EQU 41H;SLAW31 EQU 42H ;PCF8574码盘CD(l,A2=Al=0,A0=1SLAR31 EQU 43H;SLAW32 EQU 44H ;PCF8574码盘CD(2,A2=A0=0,;Al=1SLAR32 EQU 45 H;SLAW4 EQU 90H ;PCF8591SLAR4 EQU 91HCOM4 EQU 40 H ;PCF
12、8591中DAC命令;COM4=40H:允许模拟量输出COM5 EQU 01 H ;PCF8591中ADC命令;COM5=01:选择ANl,单端输入,不允许模拟量输出ORG 0AJMP MK4LED4ORG 0013H ;INTl中断入口地址IK4LED4: LJMP VK4LED4 ;从中断入口转移到中断服务程序ORG 100HMK4LED4: MOV SP,#70H ;初始化栈指针MOV MTD,# 0FFH ;PCF8574初始化,P0P3置输入;状态,熄灭LEDMOV SLA,# SLAWS ;指向I2C总线节点地址40HMOV NUMBYT,#01H ;写入一个字节LCALL WRN
13、BYT ;将0FFH写入PCF8574SETB EA ;开CPU中断SETB EX1. ;开INTl中断SJMP $ ;等待中断;中断服务程序VK4LED4: CLR EA ;关中断CLR EX1MOV SLA,#SLAR3 ;读人PCF8574口状态MOV NUMBYT,#01H ;读出一个字节LCALL RDNBYTMOV A,MRDJB ACC.0,IOP1 ;查是否是Kl按下,不是则查K2AJMP DIS1 ;是Kl按下,转Ll点亮程序IOPl: JB ACC.1.IOP2 ;查是否是K2按下,不是则查K3AJMP DIS2 ;是K2按下,转L2点亮程序IOP2: JB ACC.2,I
14、OP3 ;查是否是K3按下,不是则查K4AJMP DIS3 ;是K3按下,转L3点亮程序IOP3: JB ACC.3,K4END ;查是否是K4按下,不是则转;中断返回AJMP DIS4 ;是K4按下,转L4点亮程序K4END: RETIDSJ;给PCF8591送数进行D/A转换,然后进行A/D转换;在LED上同时显示D/A转换数据与A/D转换结果;点亮LlDSl: MOV A,#34H ;给出数据MOV B,A ;暂存DAC数据ACALL VDACACALL VDAC ;进行A/D转换,转换数据在ACC中PUSH ACC ;保护A/D转换数据MOV R0,#BCDST2 ;指向显示缓冲区MO
15、V R0,#0DH ;"D"INC R0MOV R0 ;#0AH;"A"INC R0MOV A,B ;取来DAC转换数据ANL A,#0F0H ;屏蔽低4位,保留高4位SWAP A ;高4位换到低4位MOV R0,AINC R0MOV A,B ;取来DAC转换数据ANL A,#0FH ;屏蔽高4位,保留低4位MOV R0,AALALL VSAAD42POP ACC ;弹出A/D转换数据MOV B,A ;暂存A/D数据MOV R0,#BCDST2l ;指向显示缓冲区MOV R0,#0AH ;"A"INC R0MOV R0,#0DH ;&
16、quot;D"INC R0MOV A,B ;取来ADC转换数据ANL A,#0F0H ;屏蔽低4位SWAP A ;换到低4位MOV R0,AINC R0MOV A,B ;取来DAC转换数据ANL A,#0FH ;屏蔽高4位MOV R0,AALALL VSAAD41MOV MTD,#0EFH ;Ll点亮程序MOV SLA,#SLAW3MOV NUMBYT,#0lHLCALL WRNBYTSETB EA ;开中断SETB EX1RETI;将码盘中的数送入E2PROM中;并A亮L2DS2: ACALL CD8 ;读入码盘数据MOV R0,#MTD ;发送缓冲区首址入R0PUSH ACC ;
17、保护ACC中数据MOV A,B ;取来B(千、百位中数据MOV R0,AINC R0POP ACC ;取来ACC(拾、个位中数据MOV R0,AMOV SLA,#SLAW ;指向总线上寻址字节(写为;#SLAW的节点MOV NUMBYT,#2 ;写入数据字节为2LCALL WRNBYT ;调归一化发送N个字节子程序MOV MTD,#0DFH ;L2点亮程序AJMP DSJ;E2PROM中的码盘数据显示在LED显示器上;点亮L3DS3: MOV MTD,#SUBSDR ;向AT24C02写入 SUBSDR;SLAW=A0HMOV SLA,#SLAWMOV NUMBYT,#1LCALL WRNBY
18、TMOV SLA,#SLAR ;从AT24C02中SUBADR指定;首地址读出2个数据MOV NUMBYT,#02HLCALL RDNBYTMOV R0,#MRDMOV A,R0MOV B,AINC R0MOV A,R0PUSH ACC ;保护ACC数据MOV R0,BCDST2 ;指向显示缓冲区MOV A,BANL A,#0F0H ;屏蔽低4位SWAP A ;换到低4位MOV R0,AINC R0MOV A,BANL A,#0FH ;屏蔽高4位MOV R0,AINC R1POP ACCMOV B,AANL A,#0F0H ;屏蔽低4位SWAP A ;换到低4位MOV Rl,AINC R1MO
19、V A,B ;取来ACC转换数据ANL A,0FH ;屏蔽高4位MOV Rl,AALALL VSAAD42MOV MTD,#0BFH ;L3点亮程序AJMP DSJ;LED显示器上轮流显示RAM中的数据;点亮L4DS4: MOV R0,#20HMOV R2,#40HMOV Rl,#BCDST2 ;指向显示缓冲区DS41: MOV A,R0MOV B,AANL A,#0F0H ;屏蔽低4位SWAP A ;换到低4位MOV Rl,AINC RlMOV A,BANL A,#0FH ;屏蔽高4位MOV R0,AACALL VSAAD42ACALL DELAY ;延时INC RlINC R0DJNZ R
20、2,DS41MOV MTD,#7FH ;L4点亮程序AJMP DSJ;VAT24W:ACALL WMOV9 ;将写入的数据连同SUBADR送入MTDMOV SLA,#SLAW ;指向总线上寻址字节(写为;#SLAW的节点MOV NUMBYT,#9 ;写入数据字节为9LCALL WRNBYT ;调归一化发送N个字节子程序RETWMOV9:MOV R0,#MTD ;发送缓冲区首址入R0MOV R0,#SUBADR ;指定存储单元首址INC R0MOV Rl,#60H ;数据区首址入RlMOV R2,#8 ;移动数据字节数入R2WMOV: MOV A,RlMOV R0,AINC R1INC R0DJ
21、NZ R2,WMOVRETVAT24R:MOV MTD,#SUBSDR ;向AT24C02写入SUBSDRMOV SLA,#SLAW ;SLAW=A0HMOV NUMBYT,#1LCALL WRNBYTMOV SLA,#SLAR ;从AT24C02中SUBADR指定;首地址中读出8个数据MOV NUMBYT,#08HLCALL RDNBYT ;调数据转移子程序ACALL RMOV8RETRMOV8:MOV R0,#MRD ;将8个数据从MRD转移到60H;67H中MOV Rl,#60HMOV R2,#8RMOV: MOV A,R0MOV Rl,AINC R0INC R1DJNZ R2,RMOV
22、RETVSAAD41: MOV Rl, # MTD ;对SAAl064(1节点操作,#MTD;入RlMOV Rl,#00H ;SUBADR入MTDINC R1MOV Rl,#COMl ;COMl入MTD十lINC R1 ;指向MTD+2MOV R0,#BCDSTl ;SAAl064(1显示缓冲区首址;入R0LCALL XCTAB ;调BCD码转换成段码子程序MOV SLA,#SLAW1 ;指向SAAl064(1节点MOV NUMBYT,#06H ;发送6个字节数据LCALL WRNBYT ;调归一化子程序RETVSAAD42: MOV Rl, # MTD ;对SAAl064(2节点操作,#MT
23、D;入RlMOV R1,#00 ;SUBADR入MTDINC RlMOV R1,#COM2 ;COM2入MTD十lINC Rl ;指向MTD+2MOV R0,#BCDST2 ;SAAl064(2显示缓冲区首址; 入R0LCALL XCTAB ;调BCD码转换成段码子程序MOV SLA,#SLAW2 ;指向SAAl064(2节点MOV NUMBYT,#06H ;发送6个字节数据LCALL WRNBYT ;调归一化子程序RETVSAAD8: MOV Rl, # MTD ;对SAAl064(1节点操作,#MTD; 入RlMOV R1,#00H ;SUBADR入MTDINC RlMOV R1,#COM
24、1 ;COMl入MTD+lINC Rl ;指向MTD+2MOV R0,# BCDST1 ;SAAl064(1显示缓冲区首址; 入R0LCALL XCTAB ;调BCD码转换成段码子程序MOV SLA,#SLAW1 ;指向SAAl064(1节点MOV NUMBYT,#06H ;发送6个字节数据LCALL WRNBYT ;调归一化子程序MOV Rl, # MTD ;对SAAl064(2节点操作,#MTD; 入RlMOV Rl,#00H ;SUBADR入MTDINC R1MOV Rl,#COM2 ;COM2入MTD+lINC R1 ;指向MTD+2MOV R0,#BCDST2 ;SAAl064(2显示缓冲区首址; 入R0LCALL XCTAB ;调BCD码转换成段码子程序MOV SLA,#SLAW2 ;指向SAAl064(2节点MOV NUMBYT,#06H ;发送6个字节数据LCALL WRNBYT ;调归一化子程序RETXCTAB: MOV DPTR,#TAB ;共阴极段码表首址入DPTRMOV R2,#04H ;查找4个段码XCT: MOV A,R0 ;BCD码入AMOVC A,A+DPTR ;查找相应的段码MOV Rl,A ;段码入显示缓冲区中INC R0 ;指向下一个显示缓冲区单元INC R1 ;指向下一个发送缓冲区单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子美容仪合作协议书
- 2025年磁卡宽片项目建议书
- 葡萄酒产业生态链投资与窖藏仓储合作合同
- 氢燃料电池系统环境适应性测试员协议
- 红筹架构下合资企业股权合作与收益分配协议
- 装载机司机培训课程大纲
- 医疗查房车租赁及远程医疗诊断服务合同
- Web前端开发技术项目教程(HTML5 CSS3 JavaScript)(微课版) 课件 6.2.4知识点3:CSS3图片边框属性
- 电商商品上架与用户隐私保护服务合同
- 国际旅行者数据加密海外医疗保险租赁合同
- 木工车间粉尘清扫制度
- 甲状腺乳头状癌热消融治疗专家共识2024版
- 2024中国糖尿病合并慢性肾脏病临床管理共识解读
- 附件1:肿瘤防治中心评审实施细则2024年修订版
- 委托书万能模板快来保存2024年
- 光伏电站物料清单模板
- 2024年四年级英语下册 Module 4 Things we enjoy Unit 12 The ugly duckling第2课时教案 牛津沪教版(三起)
- 中职教育二年级上学期《三工位隔离开关》教学课件
- 2024-2030年中国母乳低聚糖(HMO)行业发展形势与未来前景展望报告
- 江苏省江阴市江阴初级中学2023-2024学年中考三模英语试题含答案
- 2024电化学储能电站巡视检查项目表
评论
0/150
提交评论