飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件

上传人:人*** 文档编号:568009691 上传时间:2024-07-23 格式:PPT 页数:38 大小:286KB
返回 下载 相关 举报
飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件_第1页
第1页 / 共38页
飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件_第2页
第2页 / 共38页
飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件_第3页
第3页 / 共38页
飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件_第4页
第4页 / 共38页
飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件》由会员分享,可在线阅读,更多相关《飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件(38页珍藏版)》请在金锄头文库上搜索。

1、第八章第八章 串行通信接口串行通信接口SCI与串行外设接口与串行外设接口SPI 主要内容v串行通信基本知识概要vSCI的外围硬件电路与基本编程原理 vSCI模块的编程结构 v串行通信编程实例vSPI模块的编程结构及应用实例vSPI应用实例高位A/D扩展接口滤菇镜崩茶耪议铀望吾剃匈葱袒净恐哲询赞奴笨攘童避欲耿杭侧奢佛溺族飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.1 串行通信基本知识概要串行通信基本知识概要 8.1.1 基本概念基本概念()异步串行通信的格式()异步串行通信的格式

2、SCI通通常常采采用用NRZ数数据据格格式式,即即:standard non-return-zero mark/space data format,译译为为:“标标准准不不归归零零传传号号/空空号号数数据据格格式式”。“不不归归零零”的的最最初初含含义义是是:用用正正、负负电电平平表表示示二二进进制制值值,不不使使用用零零电电平平。“mark/space”即即“传传号号/空空号号”分分别别是是表表示示两两种种状状态态的的物物理理名名称称,逻逻辑辑名名称称记记为为“1/0”。下下图图给给出出了了 8位位数数据据、无无校校验验情情况况的的传送格式。传送格式。第第0位位第第1位位第第2位位第第3位位

3、第第4位位第第5位位第第6位位第第7位位停止位停止位开始位开始位SCI数据格式钧啥斟抹擂势锻饮莽颗蹦卉前幕免腔攫祖澎税涟熔赊陌隙舅矩妄漱申阜茹飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.1 串行通信基本知识概要 (2)串行通信的波特率)串行通信的波特率 波特率(波特率(baud rate):每秒内传送的位数。):每秒内传送的位数。 波特率单位是位波特率单位是位/秒,记为秒,记为bps。通常情况下,波特率的单位可以。通常情况下,波特率的单位可以省略。通常使用的波特率有省略。通常使用

4、的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400。 枫慷饺航仍卉髓鸥协鼻儡湖构鹰巾凄乞僳葡屁太身守揉怕冒冠拐僚爪糯猪飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.1 串行通信基本知识概要 字符奇偶校验检查(字符奇偶校验检查(character parity checking)称为称为垂直冗余检查(垂直冗余检查( vertical redundancy checking,VRC),它是每个),它是每个字符增加一个额外位使字符中

5、字符增加一个额外位使字符中“1”的个数为奇数或偶数。的个数为奇数或偶数。 奇校验奇校验:如果字符数据位中:如果字符数据位中“1”的数目是偶数,校验位应为的数目是偶数,校验位应为“1”,如果,如果“1”的数目是奇数,校验位应为的数目是奇数,校验位应为“0”。 偶校验偶校验:如果字符数据位中:如果字符数据位中“1”的数目是偶数,则校验位应为的数目是偶数,则校验位应为“0”,如果是奇数则为,如果是奇数则为“1”。 (3)奇偶校验)奇偶校验材笨猫拎镜煮相镑事母江澡础匆恩殖启聘缺算厢钞绅服揍瘩吐盔禄肝嘱潘飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC

6、9S88串行通信接口SCI与串行外设接口SPIppt课件8.1 串行通信基本知识概要 单工(单工(Simplex):):数据传送是单向的,一端为发送端,另一端数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播就是单工的。了。有线广播就是单工的。 全双工(全双工(Full-duplex):):数据传送是双向的,且可以同时接收数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站与发送数据。这种传输方式中,除了地线之外,需要两根数据线,站在任

7、何一端的角度看,一根为发送线,另一根为接收线。一般情况下,在任何一端的角度看,一根为发送线,另一根为接收线。一般情况下,MCU的异步串行通信接口均是全双工的。的异步串行通信接口均是全双工的。 半双工(半双工(Half-duplex):):数据传送也是双向的,但是在这种传输数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发。在由一方发送数据,另一方接收数据,不能同时收发。在freescale的的HC08系列系列MCU中,监控模式的通信就采用这种方式。

8、中,监控模式的通信就采用这种方式。 (4)串行通信的传输方式)串行通信的传输方式来弹山瘩弱疾喜测瞥串捕谐镜由沁颖佳裔先界怪剃始旋毕恳库氨砾先泪葫飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.1 串行通信基本知识概要 MCU引脚一般输入引脚一般输入/输出使用输出使用TTL电平,而电平,而TTL电平的电平的“1”和和“0”的特征电压分别为的特征电压分别为2.4V和和0.4V,适用于板内数据传,适用于板内数据传输。为了使信号传输得更远,美国电子工业协会输。为了使信号传输得更远,美国电子工

9、业协会EIA(Electronic Industry Association) 制订了串行物理接口制订了串行物理接口标准标准RS-232C。RS-232C采用负逻辑,采用负逻辑,-3V-15V为逻辑为逻辑“1”,+3V+15V为逻辑为逻辑“0”。RS-232C最大的传输距离是最大的传输距离是30m,通信速率一般低于通信速率一般低于20Kbps。 8.1.2 RS-232C总线标准总线标准虹锦佃嘉熟螺查春鞋派烯鲁嫩侠殖汪盾郁慕叶垒辐渔俞儿署惊时画啃贮耐飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPI

10、ppt课件8.1 串行通信基本知识概要 8.1.2 RS-232C总线标准总线标准 RS-232接口,简称接口,简称“串口串口”,它主要用于连接具有同样接口的室内它主要用于连接具有同样接口的室内设备。目前几乎所有计算机上的串行设备。目前几乎所有计算机上的串行口都是口都是9芯接口。右图给出了芯接口。右图给出了9芯串芯串行接口的排列位置,相应引脚含义见行接口的排列位置,相应引脚含义见表表8-1。4 41 12 23 35 56 67 78 89 99 9芯串行接口排列芯串行接口排列表8-1 9芯串行接口引脚含义表引脚号功 能引脚号功 能12345接收线信号检测(载波检测DCD)接收数据线(RXD)

11、发送数据线(TXD)数据终端准备就绪(DTR)信号地(SG)6789数据通信设备准备就绪(DSR)请求发送(RTS)清除发送振铃指示返回返回爱一矫援衙孕泞脓栗开幻羡泥获渗皆艰闲姥蛇嵌刷舷膳垮耙化瘦竟限偿镊飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.1 串行通信基本知识概要 8.2 SCI的外围硬件电路与基本编程原理的外围硬件电路与基本编程原理8.2.1 SCI的外围硬件电路的外围硬件电路 (1)电源供给与滤波)电源供给与滤波(2)晶振电路)晶振电路 (3)复位电路)复位电路(4)

12、SCI电平转换电路电平转换电路沧萌臃托壕隘砸昏酮发孽摩帚悄月菏淬铱核削钒钎承鸿眼误闲职踩虏擅泅飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.2 SCI的外围硬件电路与基本编程原理MAX232CPE16 15 14 13 12 11 10 916 15 14 13 12 11 10 91 2 3 4 5 6 7 81 2 3 4 5 6 7 8 0.1+5V11 12 13 14 15 16 17 18 19 2011 12 13 14 15 16 17 18 19 20+5V10K

13、51RST0.1复位电路复位电路20P10K15P32.768 150K晶振电路晶振电路0.470.0110KPLL L滤波滤波30 29 28 27 26 25 24 23 22 2130 29 28 27 26 25 24 23 22 210.1+5V40 39 38 37 36 35 34 33 32 3140 39 38 37 36 35 34 33 32 311 2 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10232232电平电平OUT IN+5V+5VTTLTTL电平电平OUT INTTLTTL电平电平转为转为232232电平电平14MC68HC908G

14、P32具有串行通信功能的具有串行通信功能的MC68HC908G932最小系统电路原理图最小系统电路原理图仓背庶眉脊新嘉痔溜呕悄邵毋吼鬃活青仔莽瘩低窃素阎漫挽薪尖郧六梯会飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.2 SCI的外围硬件电路与基本编程原理8.2.2 SCI的基本编程原理的基本编程原理SCI编程模型SCI 数据寄存器数据寄存器MCU MCU 的的 内内 部部 总总 线线 (Internal BusInternal Bus)接收移位寄存器发送移位寄存器接收引脚接收引脚Rx

15、D发送引脚发送引脚TxDSCI 控制寄存器控制寄存器SCI状态寄存器状态寄存器SCI波特率寄存器波特率寄存器返回返回泵搁工婶规摩岁癣滨迈枕函喘栋威圃惕灼惑堵倡徽少肿篱沙勤椎触湿酉蹈飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.2 SCI的外围硬件电路与基本编程原理8.3 SCI模块的编程结构模块的编程结构8.3.1 SCI的寄存器的寄存器 MC68HC908GP32的的SCI有有7个寄存器,地址为个寄存器,地址为$0013$0019 。(1)SCI波特率寄存器波特率寄存器(SCI

16、Baud Rate Register,SCBR) SCBR的作用是设置串行通信的波特率的作用是设置串行通信的波特率 ,其地址是,其地址是$0019。 D7、D6、D3:未定义;:未定义; D5D4 SCP:波特率预分频位:波特率预分频位(SCI Baud Rate Prescaler Bits) SCP1、SCP0=00 01 10 11 PD= 1 3 4 13数据位 D7 D6 D5 D4 D3 D2 D1 D0定义 x x SCP1 SCP0 x SCR2 SCR1 SCR0复位 0 0 0 0 0 0 0 0座陷氖酌歪东溪瞻意俊油昂净颧劝段肤漆写并傲钞洞宇禄场够行孜坏痒沃飞思卡尔8位单

17、片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构 D2D0 SCR:波特率选择位(:波特率选择位(SCI Baud Rate Select Bits),),定义波特率另一分频值,记为:定义波特率另一分频值,记为:BD,定义如下,定义如下: SCR2、1、0 =000 001 010 011 100 101 110 111 BD = 1 2 4 8 16 32 64 128 设设fSCI为串行通信时钟源频率,为串行通信时钟源频率,fSCI= fBUS或或CGMXCLK,取决于

18、,取决于CONFIG2的的SCIBDSRC,一般设定,一般设定SCIBDSRC=1,SCI用内部总线时用内部总线时钟,则钟,则fSCI= fBUS,则波特率的定义公式为:,则波特率的定义公式为: BtfBUS /(64PDBD)(1)SCI波特率寄存器波特率寄存器(SCI Baud Rate Register,SCBR)胚睁殴睫膳耙狂串筷攘钞辊肠私责珐切任积淮丈掘缓喘刊靴既媚粒形匹坞飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(2) SCI控制寄存器控制寄

19、存器1(SCI Control Register 1,SCC1)SCC1的地址是:的地址是:$0013 ,定义为:定义为:数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义 LOOPS ENSCI TXINV M WAKE ILTY PEN PTY复位复位 0 0 0 0 0 0 0 0循环模式循环模式选择位选择位SCI允许位允许位奇偶校验类奇偶校验类型选择位型选择位奇偶校验奇偶校验允许位允许位空闲线空闲线类型位类型位唤醒条件位唤醒条件位模式模式-字符字符长度选择位长度选择位发送反转发送反转标志位标志位尔谨先摊桐许赔男纷忘灸知乡几弗秘郑酷氦稀餐料习巳暖占伪雨岸单赐这飞思卡尔8

20、位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(3) SCI控制寄存器控制寄存器2(SCI Control Register 2,SCC2)SCC2的地址是:的地址是:$0014 ,定义为:定义为:发送中断发送中断允许位允许位 发送完成中发送完成中断允许位断允许位 发送终止位发送终止位 接收器唤接收器唤醒位醒位接收器接收器允许位允许位 发送器允许位发送器允许位 空闲线中空闲线中断允许位断允许位接收中断接收中断允许位允许位 数据位数据位 D7 D6 D5 D4 D3 D

21、2 D1 D0定义定义SCTIE TCIE SCRIE ILIE TE RE RWU SBK复位复位 0 0 0 0 0 0 0 0确倚柬巩绣蒸账假掺甩床央第剩渝幼喷诱疾村躁茫过颜栽状误巧困踞档酣飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(4) SCI控制寄存器控制寄存器3(SCI Control Register 3,SCC3)SCC3的地址是:的地址是:$0015 ,定义为:定义为:接收位接收位8 发送位发送位8 接收器奇偶错接收器奇偶错误中断允许位

22、误中断允许位 接收器帧接收器帧错误中断错误中断允许位允许位 接收器噪接收器噪声错误中声错误中断允许位断允许位 接收器溢出接收器溢出中断允许位中断允许位 DMA发送发送允许位允许位 DMA接收接收允许位允许位 数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义R8 T8 DMARE DMATE ORIE NEIE FEIE PEIE 复位复位 0 0 0 0 0 0 0 0蚜静畦或嘻盗遂暖潍蠢袜羞端陡猩轻那孵蛇庄含蚂头拓拇裕戴蒋裴矮去绷飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SP

23、Ippt课件8.3 SCI模块的编程结构(5) SCI状态寄存器状态寄存器1(SCI Status Register 1,SCS1 )SCS1的地址是:的地址是:$0016 ,定义为:定义为:发送缓冲区发送缓冲区空标志位空标志位 发送完成发送完成标志位标志位 接收器奇接收器奇偶错误标偶错误标志位志位 接收器帧错接收器帧错误标志位误标志位 接收器噪接收器噪声标志位声标志位 接收器溢接收器溢出标志位出标志位 接收器空接收器空闲标志位闲标志位 接收器满接收器满标志位标志位 数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义(只读)定义(只读) SCTE TC SCRF IDLE OR

24、NF FE PE复位复位 1 1 0 0 0 0 0 0刻鸦容莫代弛浮狰陶挖恼曝播均鼠拼搏篮浪最祟园彦沼唯骏忌杨佣钢恢练飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(6) SCI状态寄存器状态寄存器2(SCI Status Register 2,SCS2 )SCS2的地址是:的地址是:$0017 ,定义为:定义为:未定义未定义 接收进行接收进行标志位标志位 终止码标志位终止码标志位 数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义(只读)定

25、义(只读) BKF RPF复位复位 0 0 0 0 0 0 0 0眶奴寝暮邱葬善卫搭纷眯榆嘿勘谷乾苦销讽知偏绿寞肺皿镣框腕遵妖涣卑飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(7) SCI数据寄存器数据寄存器(SCI Data Register ,SCDR ) SCDR为为SCI系统最常用的寄存器,它的地址是:系统最常用的寄存器,它的地址是:$0018。写入。写入时,为要发送的时,为要发送的8位数据,记为:位数据,记为:T7T0;读出时,为接收的;读出时,

26、为接收的8位数位数据,记为:据,记为:R7R0。不受复位影响。不受复位影响。混键身督舀蹦鄙惮吏搪肢托蒸趾贮写步蜂汛疫坍冉衙颜箱婆舍钒察辨音紧飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(1)SCI初始化初始化 对对SCI进行初始化,最少由以下三步构成:进行初始化,最少由以下三步构成: 第一步:定义波特率。第一步:定义波特率。 LDA #%00000010 STA SCBR ;总线频率总线频率fBUS2.4576MHz,定义波特率,定义波特率Bt=9600

27、第二步:写控制字到第二步:写控制字到SCI控制寄存器控制寄存器1(SCC1)。)。 LDA #%01000000 STA SCC1 ;设置允许设置允许SCI,正常码输出、,正常码输出、8位数据、无校验位数据、无校验 第三步:写控制字到第三步:写控制字到SCI控制寄存器控制寄存器2(SCC2)。)。 LDA #%00001100 STA SCC2 ;设置允许发送、允许接收,查询方式收发设置允许发送、允许接收,查询方式收发8.3.2 串行口初始化与收发编程的基本方法串行口初始化与收发编程的基本方法侯兼骨坏堡深纳收才酶郎婆储丧冬酗绣并勃济亮沮裁瘦迪颂咯骂瑚啥味馋飞思卡尔8位单片机MC9S88串行通信

28、接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构(2)发送一个数据与接收一个数据)发送一个数据与接收一个数据 发送数据是通过判断状态寄存器发送数据是通过判断状态寄存器SCS1的第的第7位(位(SCTE)进行的,)进行的,而接收数据是通过判断状态寄存器而接收数据是通过判断状态寄存器SCS1的第的第5位(位(SCRF)进行的。)进行的。不论是发送还是接收,均使用不论是发送还是接收,均使用SCI数据寄存器数据寄存器SCDR。发送时,将要。发送时,将要发送的数据送入发送的数据送入SCDR即可,接收时,从即

29、可,接收时,从SCDR中取出的即是收到的中取出的即是收到的数据。数据。 ;串行发送串行发送A中的数中的数 BRCLR 7,SCS1,* ;SCS1.7=0? 为为0则等待则等待 STA SCDR ;SCS1.7=1,可以发送数据可以发送数据 ;查询方式接收一个串行数据,接收的数据放入寄存器查询方式接收一个串行数据,接收的数据放入寄存器A中中 BRCLR 5,SCS1,* ;SCS1.5=0? 为为0则等待则等待 LDA SCDR ;SCS1.5=1,可以取出数据可以取出数据返回返回胳伴巨铭超效锄芥尽赃亮龄憾委漏却凰扛爵何颁亢慌徒囚予寂麦炯漠永摸飞思卡尔8位单片机MC9S88串行通信接口SCI与

30、串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.3 SCI模块的编程结构8.4 串行通信编程实例串行通信编程实例 8.4.1 08汇编语言串行通信子程序汇编语言串行通信子程序()()SCI初始化汇编子程序初始化汇编子程序 对串行口的初始化一般在主循环之前进行,即使以中断方式接对串行口的初始化一般在主循环之前进行,即使以中断方式接收或发送,在初始化子程序中只定义查询方式收发。允许中断的设置,收或发送,在初始化子程序中只定义查询方式收发。允许中断的设置,在进入主循环之前进行。在进入主循环之前进行。 (2)串行发送与接收汇编通用子程序串行

31、发送与接收汇编通用子程序 发送与接收使用同一个寄存器的不同位作为测试标志,发送与接发送与接收使用同一个寄存器的不同位作为测试标志,发送与接收的数据寄存器地址相同。收的数据寄存器地址相同。 个蒸管移钠擂夏软罩早碍媳胺补鹅婶俗誓蕉隅忌碰帮去俐毗怠惜甸摇秦光飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.4 串行通信编程实例(1)查询方式查询方式MCU方主程序方主程序 MCU方的程序功能是:把通过串行口收到的数据发送回去。方的程序功能是:把通过串行口收到的数据发送回去。(2)PC机方机方V

32、B程序程序 PC机机方方VB程程序序的的功功能能是是:在在“发发送送窗窗口口”的的文文本本框框输输入入字字符符,单单击击“发发送送”按按钮钮,其其文文本本框框中中的的字字符符被被发发送送出出去去。任任何何时时候候,只只要要PC机机串行口收到数据,则显示在串行口收到数据,则显示在“接收窗口接收窗口”。 (3)中断方式中断方式MCU方主程序方主程序 8.4.2 08汇编语言串行通信测试实例汇编语言串行通信测试实例呢羡屁刻蜕输直硫盟曝葛吁孜应粳青蛊歪痊托们棒玩员逸噬熙相腆搔防驰飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SC

33、I与串行外设接口SPIppt课件8.4 串行通信编程实例(1)SCI初始化初始化08C语言子程序语言子程序 (2)串行发送与接收串行发送与接收08C语言通用子程序语言通用子程序(3)查询方式查询方式08C语言主程序语言主程序 (4)中断方式中断方式08C语言主程序语言主程序 (5)08C语言的串行中断方式的矢量表文件语言的串行中断方式的矢量表文件 8.4.3 08C语言串行通信子程序与测试实例语言串行通信子程序与测试实例 返回返回妖谜羚好抬踌选陡卿稿炉粤颧揍绵桨计辨郝酮考题淆砚棠滤得夺钞彰我谣飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9

34、S88串行通信接口SCI与串行外设接口SPIppt课件8.4 串行通信编程实例8.5 SPI模块的编程结构及应用实例模块的编程结构及应用实例8.5.1 SPI的基本工作原理的基本工作原理 MC68HC908GP32单片机单片机D口的口的PTD0PTD3引脚与引脚与SPI模块共用。作为模块共用。作为SPI的引脚时,名称分别为:的引脚时,名称分别为:SS、MISO、MOSI、SPSCK。(1)从机选择引脚)从机选择引脚SS(Slave select) 若若MCU的的SPI工作于主机方式,置工作于主机方式,置SS为高电平;若为高电平;若SPI工作于从机方式,当工作于从机方式,当SS=0时,表示主机选

35、中了该从机,反之则未选中该从机。时,表示主机选中了该从机,反之则未选中该从机。(2)主出从入引脚)主出从入引脚MOSI(Master out/slave in) MOSI是主机输出、从机输入数据线。是主机输出、从机输入数据线。 (3)主入从出引脚)主入从出引脚MISO(Master in/slave out) MISO是主机输入、从机输出数据线。是主机输入、从机输出数据线。(4)SPI串行时钟引脚串行时钟引脚SPSCK(SPI serial clock) SPSCK用于控制主机与从机之间的数据传输。用于控制主机与从机之间的数据传输。 我殖谭勉税仑求恫伞驯狠梧匈赫倔躲佛低仪奖娘贱挪赂轻孔挺莲谓楷

36、左届飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编程结构及应用实例主主MCU和从和从MCU的连接的连接 下图是一个主下图是一个主MCU和一个从和一个从MCU的连接,也可以一个主的连接,也可以一个主MCU与与多个多个MCU进行连接形成一个主机多个从机的系统;还可以多个进行连接形成一个主机多个从机的系统;还可以多个MCU互联构成多主机系统;另外也可以一个互联构成多主机系统;另外也可以一个MCU挂接多个从属外设。挂接多个从属外设。SPI全双工主-从连接移位寄存器移位寄存

37、器移位寄存器移位寄存器MISO MISO主主MCUMOSI MOSI波特率发生器波特率发生器从从MCUSPSCK SPSCK版跨外嫉枢嗜届帝怠轴秘之坤讨暗坟难朱襄聂警鸳浚消堕坐州记细结扮杆飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编程结构及应用实例 MC68HC908GP32的的SPI模块有模块有3个寄存器,它们对应的存储器地个寄存器,它们对应的存储器地址为址为$0010$0012 。(1)SPI数据寄存器(数据寄存器(SPI Data Register,SPD

38、R) SPDR的地址是的地址是$0012。写入时,为要发送的。写入时,为要发送的8位数据,记为:位数据,记为:T7T0;读出时,为接收的;读出时,为接收的8位数据,记为:位数据,记为:R7R0。它们的特点与。它们的特点与SCI数据寄存器相似。在实际内部结构上,数据寄存器相似。在实际内部结构上,SPDR由两个独立的数据寄由两个独立的数据寄存器组成,即只能写入的发送数据寄存器和只能读出的接收数据寄存存器组成,即只能写入的发送数据寄存器和只能读出的接收数据寄存器,它们共用一个地址。器,它们共用一个地址。 8.5.2 SPI的寄存器的寄存器莽皂芽衅猫剂缩湍烘扛钩神冈霸匡盂炙瓶贷瘩重捏禁挑狞拦菌附力冉缓

39、拜飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编程结构及应用实例(2)SPI控制寄存器(控制寄存器(SPI Control Register,SPCR) SPCR一般情况下只能复位时写一次,以后不再对其写入,不一般情况下只能复位时写一次,以后不再对其写入,不再更改对再更改对SPI的设置。的设置。SPCR的地址是的地址是$0010,定义为:,定义为:SPI接收中接收中断允许位断允许位 DMA选择位选择位 SPI发送中发送中断允许位断允许位 SPI允许位允许位 SPI

40、线或线或模式位模式位 时钟相位位时钟相位位 时钟极性时钟极性选择位选择位 SPI主机位主机位 数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义 SPRIE DMAS SPMSTR CPOL CPHA SPWOM SPE SPTIE复位复位 0 0 1 0 1 0 0 0贤烷横惦歧望竣展挫末桂具些铸宫男荔乖雇撒仿甄濒卖趋命惧绝川毡坍剖飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编程结构及应用实例(3)SPI状态和控制寄存器状态和控制寄存器 (SP

41、I Status and Control Register,SPSCR)SPSCR的地址是的地址是$0011,定义为:,定义为:SPI接收器接收器满标志位满标志位 错误中断错误中断允许位允许位 SPI波特波特率选择位率选择位 模式错误标模式错误标志允许位志允许位 SPI发送器发送器空标志位空标志位 模式错误模式错误标志位标志位 溢出标志位溢出标志位数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义 SPRF ERRIE OVRF MODF SPTE MODFEN SPR1 SPR0复位复位 0 0 0 0 1 0 0 0SPI的波特率的波特率 = CGMOUT/(2xBD)。

42、BD是分频系数,由是分频系数,由SPR1、SPR0位决定:位决定: SPR1、SPR0 = 00 01 10 11 BD = 2 8 32 128苟乓闻拜岗泽再渗权烤纫掂木涟纳筏衔撵晋闯责捂邢把立栖头袖瞅八竹甸飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编程结构及应用实例(1)SPI初始化初始化 第一步:第一步: 写控制字到写控制字到SPCR,确定是否允许,确定是否允许SPI接收中断、接收中断、SPI的的工作方式、时钟极性、时钟相位、是否允许工作方式、时钟极性、时

43、钟相位、是否允许SPI等。例如:等。例如: LDA #%00100010 ;不产生中断、主机方式、时钟空闲低电平不产生中断、主机方式、时钟空闲低电平 STA SPCR 第二步:写控制字到第二步:写控制字到SPSCR,确定,确定SPI的波特率:的波特率: LDA #%00000001 ;8分频分频 STA SPSCR8.5.3 SPI编程基本方法编程基本方法荔成筹沁殖篱纹摇击托诱徽赎掏者攻獭践镭蕾吏试啸轴阿钉帝域且尉惮徒飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编

44、程结构及应用实例(2)发送一个数据与接收一个数据)发送一个数据与接收一个数据 要通过要通过SPI发送一个数据,同时通过发送一个数据,同时通过SPI接收一个数据,作为主机接收一个数据,作为主机方,只要将数据送入方,只要将数据送入SPDR,然后检查,然后检查SPSCR的的SPTE位(位位(位3),如),如果该位为果该位为1,表示数据已经送出。若同时接收对方送来的数据,则接,表示数据已经送出。若同时接收对方送来的数据,则接着检查着检查SPSCR的的SPRF位(位位(位7),如果该位为),如果该位为1,表示要接收的数据,表示要接收的数据已经进入数据寄存器,可以取出。例如:下列程序发送已经进入数据寄存器

45、,可以取出。例如:下列程序发送A中数据,同中数据,同时接收对方数据放入时接收对方数据放入A中:中: STA SPDR ;送入送入SPDR NOP ;适当延时适当延时 NOP BRCLR 3,SPSCR,* ;为为0等待等待,即等待即等待SPTE(位位3)为为1,发送完毕,发送完毕 BRCLR 7,SPSCR,* ;为为0等待等待,即等待即等待SPRF(位位7)为为1,接收完毕,接收完毕 LDA SPDR ;取收到的数据到寄存器取收到的数据到寄存器A中中 8.5.3 SPI编程基本方法编程基本方法返回返回置茶橱倾默楚渔哇眩脉拇元刺紧血录得撬撞醛潦毗捧醉檄锚暑乡龙授柒悠飞思卡尔8位单片机MC9S8

46、8串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.5 SPI模块的编程结构及应用实例8.6 SPI应用实例应用实例高位高位A/D扩展接口扩展接口8.6.1 TLC2543芯片简介芯片简介()()TLC2543的引脚的引脚1 202 193 184 175 166 157 148 139 1210 11AIN0AIN1AIN2AIN3AIN4 AIN5AIN6AIN7AIN8 GNDVccEOCI/O CLOCKDATA INPUTDATA OUTCSREF+REF-AIN10AIN9 TLC2543的封装管脚图熟

47、蜒祷邵缆莽树拼孟粹饶染丘挨毗逆飘藉蔡绦抿司藉骋渴胆遣虾芬战回踩飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口TLC2543引脚说明引脚说明 引脚引脚类别类别引脚名及引脚号引脚名及引脚号中文含义中文含义简要说明简要说明电源源类Vcc(20)、GND(10)REF+(14)、REF-(13)电源、地源、地参考参考电压一般使用一般使用5V5V一般使用一般使用5V5V控制控制类CS(15)EOC(19)I/O CLOCK(18)片片选端端转换结束端束端时

48、钟输入入由高到低有效,由外部由高到低有效,由外部输入入转换结束束时,向外部,向外部输出高出高控制控制I/OI/O的的时钟,由外部,由外部输入入模模拟输入入AIN0AIN10(19、11、12)模模拟输入端入端输入范入范围:0.3VVcc+0.3V控制控制输入入DATA INPUT(17)控制字控制字输入端入端选择通道及通道及输出数据格式的控出数据格式的控制字由此制字由此输入入数据数据输出出DATA OUT(16)转换结果果输出出A/D转换结果输出的3态串行输出端焰囊秋担腺疯探竹瓮湿沂的晶埔那个细泌冈衷华积注企屁澎拯婆黔缎慧哪飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIp

49、pt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口v控制字的格式控制字的格式 控制字为从控制字为从DATA INPUT端串行输入端串行输入TLC2543芯片内部的芯片内部的8位数位数据,它告诉据,它告诉TLC2543要转换的模拟量通道、转换后的输出数据长度、要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。输出数据的格式。 vTLC2543的内部寄存器的内部寄存器 输入数据寄存器存放从输入数据寄存器存放从DATA INPUT端移入的控制字。端移入的控制字。 输出数输出数据寄存器存放转换好的数据,以供从据寄存器存

50、放转换好的数据,以供从DATA OUT端移出。端移出。 (2)TLC2543的编程要点的编程要点网蒙稚椎转桨恋跑富矮夫丙孤诗滥津拎烛娜秃糠茫褒柜蔷滴蔫羊友汾误奄飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口v转换过程转换过程 上电后,片选上电后,片选CS必须从高到低,才能开始一次工作周期,此时必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为高,输入数据寄存器被置0,输出数据寄存器内容是随机的。,输出数据寄存器内容是随机的。

51、 开始时开始时,片选片选CS为高为高,I/O CLOCK、DATA INPUT被禁止被禁止,DATA OUT呈高阻态,呈高阻态,EOC为高。使为高。使CS变低,变低,I/O CLOCK、DATA INPUT使能,使能,DATA OUT脱离高阻态。脱离高阻态。12个时钟信号从个时钟信号从I/O CLOCK端依次加端依次加入,控制字从入,控制字从DATA INPUT一位一位地在时钟信号的上升沿时被送入一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入高位先送入),同时上一周期转换的,同时上一周期转换的A/D数据,即输出数据数据,即输出数据寄存器中的数据从寄存器中的数据从DATA OUT

52、一位一位地移出。一位一位地移出。TLC2543收到第收到第4个个时钟信号后,通道号也已收到,因此,此时时钟信号后,通道号也已收到,因此,此时TLC2543开始对选定通道开始对选定通道的模拟量进行采样,并保持到第的模拟量进行采样,并保持到第12个时钟的下降沿。在第个时钟的下降沿。在第12个时钟下个时钟下降沿,降沿,EOC变低,开始对本次采样的模拟量进行变低,开始对本次采样的模拟量进行A/D转换,转换时间转换,转换时间约需约需10s,转换完成转换完成EOC变高,转换的数据在输出数据寄存器中,待变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。此后,可以进行新的工作周期。下一个工作周期输出。

53、此后,可以进行新的工作周期。(2)TLC2543的编程要点的编程要点考炙崖傻努需蛋苛绵质胰组拴癌渴亨洒肉铂背驴豁峨股皖摆师柠集午接穴飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口 TLC2543与微处理器芯片的接口部分有五个引脚,分别是与微处理器芯片的接口部分有五个引脚,分别是:时钟时钟输入输入(I/O CLOCK)、串行控制字输入、串行控制字输入(DATA INPUT)、片选输入、片选输入()、A/D转换串行数据输出转换串行数据输出(DATA

54、OUTPUT) 、转换结束电平输出、转换结束电平输出(EOC)。经分析经分析TLC2543的工作时序,可以通过软件估计转换结束,免去的工作时序,可以通过软件估计转换结束,免去EOC接线。接线。 TLC2543与具有与具有SPI或相同接口能力的或相同接口能力的MCU可以直接连接,对于可以直接连接,对于没有没有SPI接口的接口的MCU可以通过软件编程合成可以通过软件编程合成SPI操作。操作。 (3)TLC2543与与MCU的接口方法的接口方法噎抖漆荒砷籽当术炎秸赁坝垒旷炯姻贸眨伞姚跑拄阐协民蚤泛纱篡续慌傲飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片

55、机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口8.6.2 TLC2543与与GP32单片机接口扩展单片机接口扩展(1)扩展电路设计)扩展电路设计MC68HC908GP32PTC0MISOMOSISPSCK PTC1PTC2TLC2543(第第0片片)AIN0 CS DATA OUT DATA INPUT I/O CLOCK AIN10模拟量输入模拟量输入TLC2543(第第1片片)AIN0CS DATA OUT DATA INPUT I/O CLOCK AIN10TLC2543(第第2片片)AIN0CS DATA OUT DATA INP

56、UT I/OCLOCK AIN10基于基于SPI的的A/D转换扩展电路转换扩展电路渊产管猴碳膘谁率泄佬咯檀棋浴幅萎邵筑则择铅滨癸琵赌矗淄诸攫肯毯赎飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口8.6.2 TLC2543与与GP32单片机接口扩展单片机接口扩展(2)编程方法编程方法 基于上述电路的基于上述电路的A/D采集子程序采集子程序 (3)应用举例应用举例 利用上述子程序实现利用上述子程序实现33路路A/D数据的采集,并进行平均值滤波。数据的采

57、集,并进行平均值滤波。每一路取每一路取16次求平均。次求平均。 返回返回鹏鼎锻批菊钥表咒各鸯彦董十搔萌稻篮韭侍厌爷巳栖显余混礼针胎愧淹鸣飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件8.6 SPI应用实例高位A/D扩展接口 本章重点掌握本章重点掌握SCI的编程,同时学习编程的规范。先要了解串行通的编程,同时学习编程的规范。先要了解串行通信基本知识,才能进行串行电路设计与编程;掌握具有串行通信功能信基本知识,才能进行串行电路设计与编程;掌握具有串行通信功能的的MC68HC908GP32的

58、最小系统;本章提供了使用的最小系统;本章提供了使用VB、VC等高级语等高级语言编写的串行通信的言编写的串行通信的PC机方程序,读者可以选择自己熟悉的语言编写机方程序,读者可以选择自己熟悉的语言编写PC机方程序。机方程序。SPI部分对于初学者,要求理解其通信与编程的基本方部分对于初学者,要求理解其通信与编程的基本方法,实际应用时,可参考第法,实际应用时,可参考第6节的实例。节的实例。 本章小结本章小结返回返回鬃差馋死汽探咨捷傻宁脚蔓森繁孟葡讹肖烹熔水呛曾讫猜谰他觅丢幅托穴飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件飞思卡尔8位单片机MC9S88串行通信接口SCI与串行外设接口SPIppt课件

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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