第11章 MC9S12XS系列串行通信接口模块及其应用实例

合集下载

第 11 章 串行通信及接口电路PPT课件

第 11 章  串行通信及接口电路PPT课件
接收器接收来自RxD脚上的串行数据,并按规定的格式把 它转换为并行数据,存放在接收数据缓冲器中。
23
三、8251的接口信号
8251可用来作为CPU与外设或调制解 调器之间的接口。其接口信号可以分为 两组:一组为与CPU接口的信号;另一组 为与外设(或调制器)接口的信号。
24
图:CPU通过Intel 8251与串行外设接口(P303)
16
18
串行通信的接口标准(常用的9根信号线)
1-9引脚分别为:
CD
RXD TXD DTR SG DSR RTS CTS RI
数据载波检出
当本地DCE收到对方的DCE设备送来的载波信号时,使CD有 效,通知DTE准备接收,并且由DCE将接收到的载波信号解 调为数字信号,经RXD线送给DTE。
接收数据



算串 机行 系接 统口
调制 解调

调制 解调









图:MODEM在远程通信的连接示意图
12
➢ 根据调制技术,一般有3种调制方法: 调频、调幅和调相。
➢ 常用调频方法:FSK(Frenquency Shift Keying)频移键控法。
➢ 课本P298
13
信号的调制和解调
在通讯中,Modem起着传输信号的作用, 是一种数据通讯设备,简称DCE(Data Communications Equipment)。
Data flow
设备B
接收器/ 发送器
图:半双工示意图
9
(3)数据传送方向(续)
②全双工(Full Duplex) 特点:能够在两个方向同时进行数据传送。

基于MC9S12XS128多功能串口显示屏

基于MC9S12XS128多功能串口显示屏

基于MC9S12XS128多功能串口显示屏【摘要】设计了一种基于MC9S12XS128多功能串口显示屏,除了完成基本的静态显示、左移、右移、上滚动、下滚动,另外添加百叶窗,打字机等特效,同时能调整移动的速率,此外独立开发基于VB的上位机。

【关键词】MC9S12XS128;串口;上位机;特效引言随着经济的发展与科技水平的提高,各行业逐步实现自动化,其中led电子显示屏因其亮度高,工作稳定,功耗低,寿命长等优点在信息显示领域得到了广泛的应用。

通过参阅相关的设计文档和多次仿真及实物调试,最终设计出了多功能串口显示屏。

1.系统硬件设计本系统的硬件设计由显示控制模块、存储模块、无线通信模块和显示模块四部分组成。

其总体硬件设计框图如图1所示。

图1 系统总体硬件结构图1.1 显示控制模块显示控制模块包含主控模块、显示屏行驱动和列驱动。

主控模块采用MC9S12XS128核心板。

其内部总线频率最高为40M,拥有128K的FLASH,8K的RAM,同时它具有I/O、SPI、SCI、ECT、A/D、CAN 和PWM等常见的接口模块,在汽车电子领域得到广泛的应用。

显示屏行驱动由74HC154译码器构成。

要想实现逐行控制,需要译码电路。

实际上不存在5-32线译码器。

通过两片74HC154级联实现所需的效果,再将单片机的PTP0-PTP3分别接到译码器74HC154的输入端,通过给不同的值就能依次选通不同的输出端,从而得到相应的行码。

列驱动由74HC595移位寄存器组成。

考虑到S12单片机IO口数量有限,要选通64列,显然不够,故通过8个8位74HC595级联,对应的输出端接到点阵的64列。

本设计利用其串入并出的功能。

SH_CP(11脚)用于输入移位时钟脉冲,在上升沿时,移位寄存器数据移位。

DS(QS)(14脚)用于串行数据输入引脚,串行时钟由SH_CP引脚提供。

for循环通过8次移位即可完成1字节数据传送。

ST_CP(12脚)提供锁存时钟,在上升沿时移位寄存器的数据被传入存储寄存器。

【精品课件教案PPT】 第六讲 MC9S12单片机IO接口和功能模块PPT文档共98页

【精品课件教案PPT】 第六讲 MC9S12单片机IO接口和功能模块PPT文档共98页
【精品课件教案PPT】 第六讲 MC9S12单片机IO接口和功能模块
6













7、翩翩新 来燕,双双入我庐 ,先巢故尚在,相 将还旧居。
8













9、 陶渊 明( 约 365年 —427年 ),字 元亮, (又 一说名 潜,字 渊明 )号五 柳先生 ,私 谥“靖 节”, 东晋 末期南 朝宋初 期诗 人、文 学家、 辞赋 家、散
文 家 。汉 族 ,东 晋 浔阳 柴桑 人 (今 江西 九江 ) 。曾 做过 几 年小 官, 后辞 官 回家 ,从 此 隐居 ,田 园生 活 是陶 渊明 诗 的主 要题 材, 相 关作 品有 《饮 酒 》 、 《 归 园 田 居 》 、 《 桃花 源 记 》 、 《 五 柳先 生 传 》 、 《 归 去来 兮 辞 》 等 。

60、生活的道路一旦选定,就要勇敢地 走到底 ,决不 回头。 ——左
1
0














Байду номын сангаас

56、书不仅是生活,而且是现在、过 去和未 来文化 生活的 源泉。 ——库 法耶夫 57、生命不可能有两次,但许多人连一 次也不 善于度 过。— —吕凯 特 58、问渠哪得清如许,为有源头活水来 。—— 朱熹 59、我的努力求学没有得到别的好处, 只不过 是愈来 愈发觉 自己的 无知。 ——笛 卡儿

第5章 MC9S12XS输入输出端口模块及其应用实例分解

第5章 MC9S12XS输入输出端口模块及其应用实例分解

5.2 输入/输出端口寄存器及设置
5.2.2 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ
3.数据方向寄存器(DDRx)
DDRx决定对应引脚配置为输出口还是输入口,如果某位为“0”,则对应 引脚设定为输入;如果某位为“1”,则对应引脚设定为输出。复位后,DDRx 值为0x00,即MCU复位后引脚默认为输入口。
5.2 输入/输出端口寄存器及设置
通用I/O口通过配置相应寄存器位,可以设置输入/输出端口、驱 动能力、内置上拉/下拉电阻使用、中断输入方式等多种功能。通过 对DDR、I/O、RDR、PE、PS和IE等寄存器的设置,用户可以获得 通用I/O口的不同工作方式。其中,DDR(数据方向寄存器)设定I/O 口为输入/输出端口。数据寄存器(I/O寄存器)用于设定I/O口的高低 电平。RDR(驱动控制寄存器)用于设定I/O口的输出驱动能力。PE (上拉/下拉使能寄存器)用于当I/O口为输入口时使能内置上拉电阻 或下拉电阻的使用。PS(上拉/下拉选择寄存器)当中断允许位置位 时,用于选择上升沿触发或下降沿触发中断;当使能内置上拉/下拉 电阻时,用于选择使用上拉电阻或下拉电阻。IE(中断使能寄存器) 用于使能I/O口的中断功能。
5.2 输入/输出端口寄存器及设置
5.2.2 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ
1.数据寄存器(PTx)
如果数据方向寄存器DDRx的对应位为“0”,即对应引脚定义为输入时, 读取数据寄存器PTx的对应位,则为对应引脚的输入电平值;如果DDRx的对应 位为“1”,即对应引脚定义为输出时,写入PTx寄存器的对应位,则为对应引 脚的输出电平值。
5.2 输入/输出端口寄存器及设置
5.2.2 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ

第5章 MC9S12XS输入输出端口模块及其应用实例

第5章 MC9S12XS输入输出端口模块及其应用实例

5.2 输入/输出端口寄存器及设置
5.2.1 PORTA、PORTB、PORTE和PORTK
2.数据方向寄存器(DDRx)
DDRx决定对应引脚配置为输出口还是输入口,如果某位为“0”, 则对应引脚设定为输入口;如果某位为“1”,则对应引脚设定为输出口 。MCU复位后,DDRx值为0x00,引脚默认为输入口。 需要注意的是,PORTE端口是一个特例,它的最低两位只能为输 入口,所以PORTE端口的数据方向寄存器最低两位是只读位,读取这 两位始终返回“0”。
5.2 输入/输出端口寄存器及设置
5.2.1 PORTA、PORTB、PORTE和PORTK
3.上拉电阻控制寄存器(PUCR)
PORTA、PORTB、PORTE和PORTK端口都有内置上拉电阻,PUCR有4 位分别配置4个端口选择使用内置上拉电阻,即第7、4、1和0位分别设置K、E 、B和A端口。当控制位为“1”时,设定对应端口使用上拉电阻;当控制位为 “0”时,禁止对应端口使用上拉电阻。MCU复位后,设定PORTK和PORTE端 口使用上拉电阻,PORTB和PORTA端口禁用上拉电阻。 PUCR第6位设置BKGD引脚使用上拉电阻。当该位为“1”时,设定该端口 使用上拉电阻;当控制位为“0”时,禁止该端口使用上拉电阻。MCU复位后, 该位为“1”, 引脚默认为使用内置上拉电阻。
5.2 输入/输出端口寄存器及设置
5.2.3 PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ
6.AD0驱动控制寄存器1(RDR1AD0)
如果端口为输出口时,RDR1AD0可以设置端口对应引脚的输出驱动能力 。如果RDR1AD0某位为“1”,则对应引脚的输出驱动能力为正常时的1/5;如 果某位为“0”,则对应引脚输出为正常驱动能力。

飞思卡尔11章 S12串行通信模块

飞思卡尔11章 S12串行通信模块
重庆大学通信工程学院 任勇
1 1 2 3 4 5 6 7 8
11.2 SCI串行通信接口 SCI串行通信---异步通信,最常用;SCI基本概念: 1、异步串行通信的格式(NRZ,8位或9位,异步通信:每一数据块的字符以起
始位“0”表示开始;停止位 “1”表示结束)
开始位 第0位 第1位 第2位 第3位 第4位 第5位 第6位 第7位 停止位
SBR7 SBR6 SBR5 SBR4
SBR3 SBR2 SBR1
波特率计算公式:波特率=总线频率/(16xBR),编程时按16位送数,如: LDX #13 STX SCI0BD ; 2MHz/(16x13)=9600bps
重庆大学通信工程学院 任勇
(2) SCI控制寄存器---SCIxCR1、SCIxCR2
P
P
0
1
2
3
4
5
6
7
L
1
1
1
1
1
3
4
5
6
2
1
1
0
1
2
3
4
5
1
1 6
2
1 5
3
1 4
4
1 3
5
1 2
6
1 1
7
1 0
【实例】SPI输入的开关检测。(74LS165:并入串出)
8
9
1
1
1
1
1
1
1
6
5
4
3
2
1
0
9
1
R
VCC
0
1
SW-DIP8
S K
使用SPI,节省MCU的引脚,但须增加外接移位寄存器。

MC9S12XS128之串行通信SCI

MC9S12XS128之串行通信SCI

串行通信分为同步通信和异步通信。

串行通信接口都具有发送引脚TXD和接收引脚RXD,它们是TTL平电。

如果要利用这两个引脚与外界实行异步通信,必须将TTL电平转化为RS-232电平。

SCI是一种全双工异步串行通信接口,主要用于MCU与其他计算机或设备之间的通信,几个独立的MCU也能通过SCI实现串行通信,形成网络。

从编程角度看,先设定好波特率,通信格式,是否校验,是否允许中断等。

接着发送数据时,先检查相应的标志位是否允许发送数据,如果可以,则把数据放入SCI数据寄存器即可,剩下的工作芯片自动完成:将数据从SCI数据寄存器送到发送移位寄存器,硬件驱动将发送移位寄存器里的数据按规定发送到发送引脚TXD,供对方接收。

接收时,数据逐位从接收引脚RXD进入到接收移位寄存器,当收到一个完整字节时,芯片会自动将数据送到SCI数据寄存器,并置相应的标志位,我们就可以根据标志位的情况来读取数据了。

SCIBDH:TNP[1:0]:发送窄脉冲位。

此位的设定与SCI传送的脉冲对应关系如下表:SCIBDL:SBR[12:0]:波特率设定位当IREN=0时,SCI波特率=SCI总线时钟/(16*SBR[12:0])当IREN=1时,SCI波特率=SCI总线时钟/(32*SBR[12:1])SCICR1:控制寄存器1(当AMAP=0时有效)LOOPS:循环模式选择位。

LOOPS=0时,为正常模式。

LOOPS=1时,为自发自收模式,在此模式下,RXD引脚与SCI内部断开,内部发送数据直接作为接收的输入,用于测试。

接收器的输入由RSRC位决定。

SCISWAI:当SCISWAI=0时,SCI可以在等待模式下工作。

当SCISWAI=1时,SCI不可以在等待模式下工作。

RSRC:当LOOPS=1时,RSRC位决定接收移位寄存器接收数据的来源。

RSRC=1,RXD引脚与SCI模块断开,SCI用TXD引脚来发送及接收。

RSRC=0时,发送器的输出作为接收器的输入。

第9章_MC9S12XS128定时器模块及其应用实例人文社科

第9章_MC9S12XS128定时器模块及其应用实例人文社科

第9章_MC9S12XS128定时器模块及其应用实例- 人文社科《MC9S12XS单片机原理及嵌入式系统开发》合肥工业高校吴晔,张阳,滕勤第9章MC9S12XS128定时器模块及其应用实例本章内容9.1 TIM模块概述9.2 TIM模块结构和工作原理9.3 TIM模块的自由运行计数器和定时器基本寄存器及设置9.4 TIM模块的输入捕获功能及寄存器设置9.5 TIM模块的输出比较功能及寄存器设置9.6 TIM模块的脉冲累加器功能及寄存器设置9.7 TIM模块应用实例第9章MC9S12XS128定时器模块及其应用实例9.1 TIM模块概述定时器/计数器的特点:(1)可以有多种工作方式——定时方式或计数方式等。

(2)计数器的模值可变——计数的最大值有肯定的限制,取决于计数器的位数。

计数的最大值限制了定时的最大值。

(3)可以依据规定的定时或计数值,当定时时间到或到达计数终点时,发出中断恳求信号,以便实现定时或计数掌握。

定时器——计数脉冲来自于系统工作时钟或经过分频后的系统时钟,即驱动脉冲为内部时钟信号;计数器——计数脉冲来自于芯片外部引脚,即驱动脉冲为外部时钟信号。

第9章MC9S12XS128定时器模块及其应用实例9.1 TIM模块概述嵌入式系统中定时器/计数器模块的作用:【产生波形输出】从MCU 的I/O引脚向外输出一系列符合肯定时序规范的周期信号。

【测量输入波形】从MCU的I/O引脚上检测外部输入的一系列周期信号的脉宽、周期或频率。

【统计脉冲或边沿个数】对端口引脚输入的、由外部大事产生的触发信号进行计数。

【作为定时基准】产生内部定时,例如用于定时采样等。

MC9S12XS128定时器模块称为TIM(Timer Module)。

第9章MC9S12XS128定时器模块及其应用实例本节内容9.2 TIM模块结构和工作原理9.2.1 TIM模块结构9.2.2 TIM模块工作原理9.2.3 TIM模块寄存器9.2.4 TIM模块中断系统第9章MC9S12XS128定时器模块及其应用实例9.2 TIM模块结构和工作原理9.2.1 TIM模块结构【TIM组成】1个16位自由运行计数器8个16位输入捕获/输出比较通道1个16位脉冲累加器【特点】模块时钟输入具有7位预分频器8个输入捕获通道带有边沿检测器8个输出比较通道的输出极性可选择16位脉冲累加器带有边沿检测器第9章MC9S12XS128定时器模块及其应用实例9.2 TIM模块结构和工作原理9.2.2 TIM模块工作原理【工作模式】停止(STOP)模式冻结(Freeze)模式等待(Wait)模式正常(Normal)模式【定时器模块框图】第9章MC9S12XS128定时器模块及其应用实例9.2 TIM模块结构和工作原理9.2.2 TIM模块工作原理【具体功能框图】第9章MC9S12XS128定时器模块及其应用实例9.2 TIM模块结构和工作原理9.2.2 TIM 模块工作原理【自由运行计数器】TIM的核心——16位自由运行计数器,也称为自由运行主定时器。

MC9S12XS128IO口编程

MC9S12XS128IO口编程
I/0 口的作用
• 输出功能
• 相应引脚输出高低电平

1 --- 输出高电平 5V

0 --- 输出低电平 0V
注:I/O口带载能力低
I/0 口的作用
• 输入功能
ቤተ መጻሕፍቲ ባይዱ
• 读取相应引脚的电压高低

高---5V --- 读取结果为 1

低---0V --- 读取结果为 0
一般3V以上可识别为高电平,有些要 3.6V以上,但这不是绝对数据。
X128的I/O口
• MC9S12X128通用I/O口包括PORTA、PORTB、PORTE、 PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ、
PORTAD
• 注意:PORTK有7个引脚,PORTJ有4个引脚,其余均有8个

引脚
• 其中,B、E、K端口的寄存器名与A口类似 • 如PORTA PORTE PORTB PORTK ~~PORTA_PA1 • DDRA DDRB DDRE DDRK ~~DDRA_DDRA1
• 寄存器的值为1表示该引脚为输出,0表示输入
• 例:DDRA_DDRA0=1 ,A0为输出

DDRA_DDRA6=0 , A6为输入

DDRA=0XFF即0B11111111 ,A口为输出(含8引个脚)

DDRA=0X00即0B00000000 ,A口为输入(含8引个脚)
数据寄器PORTA
• A口共有8个引脚
• 实例1
• 设置A口8个引脚输出高电平 • DDRA=0XFF; //设为输出 • PORTA=0XFF; //输出为1,即高电平
• 实例2
• 读取A口电平信息,并存在变量 a 中 DDRA=0X00; //设置为输入 a=PORTA; //将电平信息读入变量a中 //若外部电平全为高,则a=0XFF

串行接口与应用

串行接口与应用
异步通信比较灵活,合用于数据旳随机发送/接受;而同步通信则 是成批数据传送。异步传播一批数据因每个字节都有起始位和停 止位控制而使发送/接受速度有所降低,一般合用于每秒50~9600位, 而同步传播速度较快,可达每秒80万位。
11.1.3 串行通信操作模式 (1)单工通信 (2)半双工通信 (3)全双工通信。
②SM2:多机通信控制位。因多机通信是在方式2和方式3下进行, 所以SM2位主要用于方式2和方式3。当串行口以方式2或方式3 接受时,如SM2=1,则只有当接受到旳第九位数据(RB8)为1,才将 接受到旳前8位数据送入SBUF,并置位RI产生中断祈求;不然,将 接受到旳8位数据丢弃。而当SM2=0时,则不论第九位数据为0还 是为1,都将前8位数据装入SBUF中,并产生中断祈求。在方式0 时,SM2必须为0。
串行口控制寄存器SCON决定串行口通信工作方式,控制数 据旳接受和发送,并标示串行口旳工作状态等。其位格式为:
SCON D7 D6
D5
位名称 SM0 SM1 SM2
位地址 9FH 9EH 9DH
D4
D3
D2
D1
D0
REN TB8 RB8 TI
RI
9CH 9BH 9AH 99H 98H
功能
工作方式 多机通 接受 发送 接受 发送 接受
11.2 MCS-51单片机串行口
11.2.1 串行口旳构造 MCS-51有一种可编程旳全双工串行通信接口,可作为
通用异步接受/发送器(UART),也可作为同步移位寄存 器。它旳帧格式有8位、10位和11位,能够设置为固定波特 率和可变波特率,给使用者带来很大旳灵活性。
CPU内部
51单片机旳串行接口
在接受寄存器之前还有移位寄存器,从而构成了串行接受旳双缓 冲构造,以防止在数据接受过程中出现帧重叠错误。与接受数据情 况不同,发送数据时,因为CPU是主动旳,不会发生帧重叠错误,所以发 送电路就不需双重缓冲构造。

MC9S12XS128例程

MC9S12XS128例程

MC9S12XS128例程SCI程序串行通信时MCU与外部设备之间进行通信的一种简单而有效的硬件方法。

无论用查询方式还是中断方式进行串行通信编程,在程序初始化时均必须对SCI进行初始化。

初始化主要包括波特率设置、通信格式的设置、发送接收数据方式的设置等。

对SCI进行初始化,需要设置如下几部分:(1)定义波特率一般选内部总线时钟为串行通信的时钟源。

通过设置SCI波特率寄存器SCI0BD的波特率选择位SBR[12:0],来选择合适的分频系数。

(2)写控制字到SCI控制寄存器1(SCI0CR1)设置是否允许SCI、数据长度、输出格式、选择唤醒方法、是否校验等。

(3)写控制字到SCI控制寄存器2(SCI0CR2)设置是否允许发送与接收、是中断接收还是查询接收等。

串行通信程序如下:/** write in “Init.h” **/#include /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */ //void InitBusClk(void); //可以不使用锁相环void InitSci(void);/** write in “Init.c” **///初始化程序#include "Init.h"/*//------------初始化Bus Clock------------//void InitBusClk(void) {DisableInterrupts;CLKSEL=0X00; //PLLSEL 1 : Bus Clock=PLLCLK/2// 0 : Bus Clock=OSCCLK/2PLLCTL_PLLON=1; //开启PLLSYNR=0; //OSCCLK=16MHzREFDV=0X0F;//PLLCLK=2*OSCCLK*[(1+SYNR)/(1+REFDV]=32/16=2MHz while(!(CRGFLG_LOCK==1)); //直到LOCK=1,when PLL is ready,退出循环CLKSEL_PLLSEL=1; //PLLSEL 1 : Bus Clock=PLLCLK/2=2MHz/2=1MHz// 0 : Bus Clock=OSCCLK/2=16M/2=8MHz}*///---------------初始化SCI---------------//void InitSci(void){SCI0BD=4545; //设波特率为110//SCI baud rate = SCI module clock/(16*SCIBD)=Bus Clock/(16*SCIBD)// = 8MHz/(16*4545)=500kHz/4545=110bps//SCIBD : SBR12-SBR0,Value from 1 to 8191SCI0CR1=0;SCI0CR2=0X2C; // 0010 1100 RIE=1,TE=1,RE=1// RIE=1 RDRF and OR interrupt requests enabled// TE=1 Transmitter enabled// RE=1 Receiver enabled}/** write in “SCI.h” **///函数声明unsigned char SciRead();void SciWrite(byte);/** write in “SCI.c” **///串行通信程序#include "Init.h"#include "SCI.h"//---------------读SCI数据---------------//unsigned char SciRead(){if(SCI0SR1_RDRF==1){//数据从移位寄存器传送到SCI数据寄存器SCIDRL//SCI0SR1_RDRF==1表明数据寄存器SCI0DRL为满,可以接收新的数据SCI0SR1_RDRF=1; //读取SCI数据寄存器会将RDRF清除,重新置位return SCI0DRL; //返回数据寄存器的数值}}//---------------写SCI数据---------------//void SciWrite(byte sci_value){while(!(SCI0SR1&0X80));//SCI0SR1_TDRE==1表明数据寄存器SCI0DRL为空,可以发送新的数据SCI0DRH=0;SCI0DRL=sci_value; //发送新的数据至数据寄存器SCI0DR}//---------------中断程序-----------------//#pragma CODE_SEG NON_BANKEDinterrupt 20 void Sci_Intrrupt(void){ //SCI的中断向量号为20 byte text;DisableInterrupts; //关中断text=SciRead(); //接收数据寄存器SCI0DRL中的数据asm nop;asm nop;SciWrite(text); //发送数据至数据寄存器SCI0DRLDDRA=0XFF; //设A口为输出,用来显示是否执行中断,可以不用PORTA_PA6=!PORTA_PA6;EnableInterrupts; //开中断}#pragma CODE_SEG DEFAULT/** write in “main.c”” **/#include "Init.h"#include "SCI.h"void main(void) {/* put your own code here */_DISABLE_COP(); //关看门狗DisableInterrupts; //关中断//InitBusClk();InitSci();EnableInterrupts; //开中断for(;;) {// _FEED_COP(); /* feeds the dog */} /* loop forever *//* please make sure that you never leave main */}A/D转换应用实例要让ATD 开始转换工作,必须经过以下三个步骤:1.将ADPU 置1,使ATD 启动;2.按照要求对转换位数、扫描方式、采样时间、时钟频率及标志检查等方式进行设置;3.发出启动命令;如果上电默认状态即能满足工作要求,那么只要将ADPU 置1,然后通过控制寄存器发出转换命令,即可实现转换。

MC9S12串行总线接口

MC9S12串行总线接口

MC9S12系列单片机片内串行总线接口:所谓串行通信是指微控制器与外设之间使用一根数据信号线一位一位地传输数据。

串行通信线路少,在远距离传输时可以极大地降低成本,所以适合远距离数据传输,也常用于要求不高的近距离传输。

串行总线的数据传输方式分为全双工、半双工和单工方式。

全双工是指发送数据的接收和发送可以同时进行。

半双工是指数据发送方能够接收数据,接收方也能够发送数据,但是数据的发送和接收不能同时进行。

单工方式是指数据发送方只能发送数据,而接收方只能接受数据。

1. SPI总线接口SPI(Serial Peripheral Interface,串行外设接口)是一种高效的同步串行接口,这种接口技术主要用于MCU与外部的接口芯片交换数据,已逐渐成为一种工业接口标准。

在SPI中,只允许有一个主机,但是可以有多个从机,主机提供同步时钟信号给从机,主机的MISO和MOSI引脚要跟从机的MISO和MOSI引脚相连。

1)SPI的引脚SPI接口常用于主从的分布系统中,一个标准的SPI系统包括一个MCU和若干个外部设备。

SPI使用4条信号线,具体如下:1)串行时钟线SCKSCK是主从机之间数据传输的同步时钟信号。

SCK信号由主机产生并且通过硬件给从机;2)主机输入、从机输出数据线MISOMISO是SPI模块的两根串行数据线之一。

当配置为从机时,该引脚用来由SPI模块向外发送数据;当配置为主机时,该引脚用来接受数据;3)主机输出、从机输入数据线MOSIMOSI是SPI模块另一根串行数据线。

当配置成主机时,该引脚用来由SPI 模块向外发送数据;当配置成从机时,该引脚用来接受数据;4)低电平有效的从机选择线SS此引脚在主机和从机模式中具有不同的功能。

从机模式下,该引脚是一次数据传输开始前允许SPI工作的片选信号;主机模式下,该引脚可以控制MODE 标志位,保证一个系统只有一个主机。

2)SPI模块的寄存器:SPI模块提供了5个寄存器,包括SPI控制寄存器(SPICR1)、控制寄存器2(SPICR2)、SPI波特率寄存器(SPIBR)、SPI状态寄存器(SPISR)、SPI数据寄存器(SPIDR)。

MC9S12XS模块及其应用实例

MC9S12XS模块及其应用实例

5.3.1 控制输出设备LED实例
由电路图可知,使用MC9S12XS128的PORTB端口控制8只 LED,PORTB端口输出低电平点亮相应LED。本例中流水灯的流动 速度没有实现精确控制,即延时时间没有精确计算,本书后面章节 会论述如何实现精确定时。
5.3.1 控制输出设备LED实例
流水灯应用实例程序清单如下所示。
3.数据方向寄存器(DDRx)
DDRx决定对应引脚配置为输出口还是输入口,如果某位为“0”,则对应 引脚设定为输入;如果某位为“1”,则对应引脚设定为输出。复位后,DDRx 值为0x00,即MCU复位后引脚默认为输入口。
PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ
4.驱动控制寄存器(RDRx)
5.上拉/下拉使能寄存器(PERx)
如果端口为输入口或者“线或”模式时,可以通过上拉/下拉使能寄存器 PERx使能选择使用内置上拉/下拉电阻。如果PERx某位为“1” 时,则对应引 脚允许使用内置上拉/下拉电阻;如果某位为“0” 时,则对应引脚禁用内置上 拉/下拉电阻。
PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ
6.1.2 中断 1.不可屏蔽中断 不可屏蔽中断包括软件中断、非法指令陷阱和XIRQ中断,下面简要 介绍常用的几个不可屏蔽中断。 (1)软件中断 SWI实质上是一条指令,但其执行过程与中断相同,即通过中断矢 量确定目标地址,中断矢量为$FFF6~$FFF7,它自动保存MCU的寄存 器和返回地址,最后必须通过RTI指令返回。 (2)非法指令陷阱 MCU正常工作时,每次获得的都是由汇编或编译程序生成的有效操 作码,MCU能够正确解释并执行它们,但当受到干扰或系统出现混乱时, 可能得到无法识别的操作码,即非法指令,这时MCU自动产生一次中断, 中断矢量地址为$FFF8~$FFF9。

mc9s12xs128的SPI通信的读写讲课教案

mc9s12xs128的SPI通信的读写讲课教案

m c9s12x s128的S P I 通信的读写#include <hidef.h>#include "derivative.h"uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};byte a;void delay(word z) //延时函数{byte x,y;for(z;z>0;z--)for(x=110;x>0;x--)for(y=25;y>0;y--);}void crg_init(void) //总线时钟调整{CLKSEL=0; //bus=2*16M*(2+1)/(1+1)PLLCTL_PLLON=1;SYNR=0x00|0x01;REFDV=0x80|0x01;POSTDIV=0X00;while(!(CRGFLG_LOCK)); //总线频率为24mCLKSEL_PLLSEL=1;}void SPI_int(void) // SPI初始化{MODRR_MODRR4=1; //使用PM口SPI0CR1=0x5e; //中断禁止主机模式时钟空闲为高先发最高位 }void init(){DDRB=0xff;DDRM=0xff; //选择M口的接口我做实验时犯的低级错误 }void send_data(word data) //写一个字节{PTM_PTM3=0; //M口的第三引脚为低SPI0DR=data; //将数据写入移位寄存器while(!(SPI0SR&0x20)); //等数据发完}uchar read(void) //SPI读一个字节{while(!(SPI0SR_SPIF)); //检测传输是否完成return SPI0DRL; //读数据并返回while(SPI0SR_SPIF==0); //清除该位为下次读数据做准备}void main(void){init();crg_init();SPI_int();EnableInterrupts;for(;;){a++;if(a==10)a=0;// a=read();send_data(a); //发送a的值PORTB=table[a]; //在数码管上显示a的植delay(1000); //延时1秒左右}}。

MC9S12超详细中文资料

MC9S12超详细中文资料
目录
目录 .................................................................................................................................................. I 第一章 PWM模块 ...........................................................................................................................1 第一节 PWM模块介绍 .........................................................................................................1 第二节 PWM寄存器简介 .....................................................................................................2 2.1 PWME寄存器 ........................................................................................................2 2.2 PWMPOL寄存器...................................................................................................2 2.3 PWMCLK寄存器 ....................................

第11章MC9S12XS系列串行通信接口模块与其应用实例

第11章MC9S12XS系列串行通信接口模块与其应用实例

11.3 SCI模块寄存器
11.3.6 SCI控制寄存器2(SCICR2)
RIE:接收器满中断使能位,该位使能允许SCISR1寄存器中的接收数据 寄存器满标志位RDRF或者溢出标志位OR产生中断请求。
0表示禁止RDRF或OR中断请求; 1表示允许RDRF或OR中断请求。 ILIE:空闲线中断使能位,该位使能允许SCISR1寄存器中的空闲线标志 位IDLE产生中断请求。 0表示禁止IDLE中断请求; 1表示允许IDLE中断请求。 TE:发送器使能位,该位使能允许使用SCI发送器,TXD引脚由SCI控制 ,TE位能够用于发送空闲报头。 0表示SCI禁用发送器; 1表示SCI使用发送器。
11.3 SCI模块寄存器
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL)
SBR12~SBR0:SCI波特率选择位,SCI波特率由这13位确定。根据 IREN位的设定值,有以下2种方法计算波特率。
波特率计算公式如下,当IREN=0时: SCI波特率=SCI总线时钟/ (16×SBR[12:0])
11.3 SCI模块寄存器
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL)
SCI波特率寄存器(SCI Baud Rate Registers)用来设置SCI波特率,同 时还用于控制红外调制/解调子模块,由SCI波特率高字节寄存器(SCIBDH) 和SCI波特率低字节寄存器(SCIBDL)组成。该寄存器如图11.2和图11.3所示 。波特率计算公式为
传送完成; 接收器满;
13位波特率; 可编程8位或9位数据格式; 独立使能发送器和接收器; 可编程的发送器和接收器极性; 可编程的发送器奇偶校验; 两种接收器唤醒模式:
线路空闲唤醒;
空闲接收器输入; 接收器溢出错误; 噪声错误; 帧错误; 奇偶校验错误; 支持LIN发送冲突检测; 支持LIN间隔检测;

飞思卡尔MC9S12XS128单片机重点模块讲解

飞思卡尔MC9S12XS128单片机重点模块讲解

基于飞思卡尔 MC9S12XS128MCU 的模块讲解及测试
安徽工业大学 自动化系 刘昌元 } /*--------------------- 主函数------------------------------------*/ void main(void) { DDRB=0x3f; LED=0x01; EnableInterrupts; while(1) { delay(time); LED<<=1; delay(time); //延时 //高电平信号左移一位 //定义 B0-B5 口为输出 // 点亮第一只灯 //允许中断
基于飞思卡尔 MC9S12XS128MCU 的模块讲解及测试
安徽工业大学 自动化系 刘昌元 � 概述:
飞思卡尔单片机的端口名称和 51 系列单片机有区别, 51 单片最经典的通用 I/O 口名称是 P0 口、P1 口、 P2 口、P3 口。而飞思卡尔 128 单片机是由 A 口、B 口、 K 口、E 口等标称的, 熟悉 51 单片的同学在此学习飞思卡尔单片时要知道变通,同样的对于学习其他单片机也是 一样的,先熟悉端口名称,再熟悉其端口功能,再熟悉其寄存器。C 语言的编程语法和算法 思路是通用的。 现在功能强悍一点的单片都在内部集成了很多现成的模块, 我们可以通过对 其模块寄存器编程配置我们需要的功能即可, 此处的 128 单片机就是这样一款单片机, 在此 我就我个人学习的一些心得写出来, 仅供交流与参考, 同时我也希望帮助新手能够很快得上 手。 具体更深层的内容大家还需要去参考芯片的技术手册和其他参考书。 以下我就分模块来 讲解, 大家在学习的过程中也需要一个模块一个模块的来学习和测试。 其实我个人觉得买过 来的开发板用途不是很大,因为很多端口被其在 PCB 设计时固化了,留给我们的端口并不 多,使用起来极不方便,所以我个人建议大家可以买个带有最小系统的模块,自己用排针和 插槽焊一个程序调试板,再焊一排共阴极的发光二极管(最好能发不同颜色光的) ,再焊几 个开关电路和按键电路即可。 我们在代码的各个位置通过点亮发光二极管来知道程序走到哪 一步了。下面我提供的测试例程也是这么来的,节省硬件就是节省开支啊,多动脑子,多想 办法可以克服很多困难的。 注: 一个寄存器的多个位可以一次性写入配置的, 但是为了使大家读程序理解方便我对寄存 器的每一位几乎一位一位配置的,我麻烦了,不过可以给大家读程序带来方便。

MC9S12XS简介

MC9S12XS简介

MC9S12XS简介1.1 S12XS介绍新16位微控制器S12XS的系列是一个兼容,减少版本的S12XE系列。

这个系列提供了一种简便的方法开发从低端到高端化应用程序的通用平台,减少硬件和软件的设计。

12XS系列提供32位的所有优势和效率性能的16位MCU,同时保持低成本,低功耗,EMC和代码大小目前享有的效率优势。

S12XS系列运行在等待状态的情况下为所有外围设备和存储器16位宽访问。

该S12XS系列有112引脚LQFP封装,80引脚QFP,64引脚LQFP封装选择,与S12XE系列高度兼容。

除了在每个模块提供I / O端口外,还有多达18个具有从停止或等待模式被唤醒的中断功能的I / O端口。

外围设备包括MSCAN,SPI,两个SCIs,一个8通道24位定时器周期中断,8 -通道16位定时器,8通道PWM,高达16 通道12位AD转换器。

1.1.1特性16位CPU12XS-向上兼容S12指令集,除了删除五个模糊指令(MEM,WAV ,WAVR,REV,REVW)-增强索引寻址-获取大量数据段独立PPAGEINT(中断模块)- 7个级别的嵌套中断-灵活的分配中断源到每个中断的层次。

-外部非屏蔽高优先级中断(XIRQ)-下面的输入可以作为唤醒中断- IRQ和非屏蔽XIRQ-CAN总线接收引脚-SCI接收引脚-根据不同的封装选择了20针在端口J,H和P的上升或下降沿敏感的配置MMC管理(模块映射控制)DBG(调试模块)-监测与标签的CPU总线型或力量型断点要求- 64 × 64位循环跟踪缓冲区的捕捉改变流或内存访问信息BDM(背景调试模式)OSC_LCP(振荡器)-低功率的闭环控制皮尔斯振荡器利用一个4MHz至16MHz石英晶体振荡器-良好的抗干扰-全摆幅皮尔斯选择利用一个2MHz至40MHz的晶振-根据跨导最佳启动的边缘典型晶体IPLL(内部过滤,调频锁相回路时钟发生器)-无需外部元件-可配置选项为减少传播EMC辐射(频率调制谱)CRG(时钟和复位产生)-看门狗-实时中断-时钟监视器-快速唤醒自我的停止时钟模式内存选项-64K,128K的和256K字节的闪存-闪存的基本特征- 64位数据加上8位并发ECC(纠错码),允许单个位失败校正和双故障检测-擦除扇区大小1024字节-自动编程和擦除算法-保护计划,以防止意外编程或擦除-安全选项,以防止未经授权的访问- 4K和8K字节数据闪存空间- 16位数据加上6位并发ECC(纠错码),允许单个位失败校正和双故障检测-擦除扇区大小256字节-自动编程和擦除算法- 4K,8K与第12K字节RAM16通道,12位模拟数字转换器- 8/10/12位分辨率- 3微秒,10位单次转换时间-左或右对齐结果数据-外部和内部转换触发功能-内部振荡器在停止模式转换-唤醒从模拟比较低功耗模式-连续转换模式- 16路模拟输入通道-多通道扫描-管脚也可以作为数字I / OMSCAN(1Mbit/s,CAN2.0的A,B软件兼容模块)- 1兆位每秒,CAN2.0的A,B软件兼容模块-标准和扩展数据帧- 0 - 8个字节数据的长度-可编程的比特率高达1 Mbps-五接收FIFO的存储方案缓冲区-三优先发送内部缓冲区-灵活的标识验收滤波器可编程为:- 2 x 32位- 4 x 16位- 8 × 8位-唤醒集成了低通滤波器的选择-环回自检-只能收听到CAN总线监控-16位发送/接收信息时间戳TIM(标准定时器模块)- 8 × 16的输入捕捉或输出比特的通道比较- 16位自由运行计数器的8位精度预分频器- 1个16位脉冲累加器PIT(周期性中断定时器)-多达4个独立的定时器超时周期-超时期限为1至224总线时钟周期选择-超时中断和周边触发器-定时器开始可以对齐高达8通道× 8位或4通道x 16位脉宽调制器-每通道占空比和周期都是可编程的-中心或左对齐输出-可编程时钟选择逻辑的和频率范围串行外设接口模块(SPI)-可设置为8位或16位数据的大小-全双工或单线双向-双缓冲的发送和接收-主或从模式-最高位先或LSB先移-串行时钟相位和极性选择两个串行通信接口(SCI)-全双工或单线运行-标准标记/空间不返回到归零(NRZ)格式-可选的IrDA 1.4返回到零反转(RZI)可编程脉冲宽度格式- 13位波特率选择-可编程的字符长度-可编程极性的发射机和接收机-接收唤醒的积极边缘-间隔检测和传输冲突检测支持片上电压调节器-两个平行的,与带隙基准的线性稳压器-低电压检测(LVD)认证的低电压中断(LVI)号-上电复位(POR)电路-低电压复位(LVR)的低功耗唤醒定时器(API)的-内部振荡器驾驶递减计数器-微调到+ / -10%的准确度-超时时间为0.2ms的范围内,从同一个0.2ms〜13秒的决议输入/输出-最多91个通用输入/输出(I / O)引脚取决于封装选择和2个输入专用管脚-磁滞和可配置上拉/下拉输入引脚上的所有设备-在所有输出引脚可配置驱动力量封装选择- 112引脚小外形四方扁平封装(LQFP封装)- 80引脚四方扁平封装(QFP)- 64引脚小外形四方扁平封装(LQFP封装)操作条件-宽单电源电压范围3.135 V至5.5 V的全性能-单独的电源内部电压调节器和I / O优化的EMC滤波容许- 40MHz的最大CPU总线频率-环境温度范围:-40°C至125°C-温度选项:- -40°C至85°C- -40°C至105°C- -40°C至125°C1.1.2 工作模式模式种类:正常的单芯片模式特别的单主动背景调试模式芯片模式1.1.3 信号的详细说明1.1.3.1 EXTAL,XTAL - 振荡器引脚EXTAL和XTAL是晶体驱动和外部时钟引脚。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11.3 SCI模块寄存器
11.3.5 SCI可选控制寄存器2(SCIACR2)
如果AMAP=1时,读:任何时刻;如果AMAP=1时,写:任何时刻。 BERRM1~BERRM0:位错误模式,这两位组合确定位错误模式的探测 特性,详见表11-4。
BKDFE:间隔探测特性使能位,该位使能允许使用间隔探测电路。 0表示禁用间隔探测电路; 1表示使用间隔探测电路。
接收器帧错误检测;
地址标志唤醒;
奇偶校验检测;
1/16位时间噪声检测。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
MC9S12XS128的SCI模块共有11个寄存器,详见表11-1。对于 112引脚的MC9S12XS128,内部有2个SCI模块,分别是SCI0和SCI1, 表11-1中分别列出了SCI0和SCI1两个模块中各寄存器地址。

11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL)
SCI波特率寄存器(SCI Baud Rate Registers)用来设置SCI波特率,同 时还用于控制红外调制/解调子模块,由SCI波特率高字节寄存器(SCIBDH) 和SCI波特率低字节寄存器(SCIBDL)组成。该寄存器如图11.2和图11.3所示。 波特率计算公式为
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.5 SCI可选控制寄存器2(SCIACR2)
SCI可选控制寄存器2(SCI Alternative Control Register 2,SCIACR2), 如图11.9所示。
《MC9S12XS单片机原理及嵌入式系统开发》
MC9S12XS128内置的SCI模块是全双工、波特率 可编程设置、可编程选择8位数据或9位数据格式的串 行通信接口(简称串口)。本章着重介绍SCI模块的 特性、寄存器功能及设置,并通过一些应用实例和 SCI模块在自主寻迹智能车上的应用,让读者掌握 SCI模块的应用及编程方法。
《MC9S12XS单片机原理及嵌入式系统开发》
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.2 SCI控制寄存器1(SCICR1)
设置LOOPS位和RSRC位,可以设定SCI为环路模式或单线模式,参见表 11-3。
M:数据格式选择位,该位决定数据长度是8位还是9位。 0表示1位起始位,8位数据位,1位停止位; 1表示1位起始位,9位数据位,1位停止位。 WAKE:唤醒条件位。该位决定了何种条件唤醒SCI,接收数据字符的最 高位为1(地址码)或者RXD上的空闲条件。 0表示空闲线唤醒; 1表示地址码唤醒。
传送完成; 接收器满;
13位波特率; 可编程8位或9位数据格式; 独立使能发送器和接收器; 可编程的发送器和接收器极性; 可编程的发送器奇偶校验; 两种接收器唤醒模式:
线路空闲唤醒;
空闲接收器输入; 接收器溢出错误; 噪声错误; 帧错误; 奇偶校验错误; 支持LIN发送冲突检测; 支持LIN间隔检测;
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.4 SCI可选控制寄存器1(SCIACR1)
SCI可选控制寄存器1(SCI Alternative Control Register 1,SCIACR1), 如图11.8所示。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.4 SCI可选控制寄存器1(SCIACR1)
如果AMAP=1时,读:任何时刻;如果AMAP=1时,写:任何时刻。 RXEDGIE:RXD输入边沿有效中断使能位,该位使能允许RXD输入边沿 有效中断标志位RXEDGIF产生中断请求。 0表示禁止RXEDGI中断请求; 1表示允许RXEDGIF中断请求。 BERRIE:位错误中断使能位,该位使能允许位错误中断标志位BERRIF 产生中断请求。 0表示禁止BERRI中断请求; 1表示允许BERRIF中断请求。 BKDIE:间隔探测中断使能位,该位使能允许间隔探测中断标志位BKDIF 产生中断请求。 0表示禁止BKDI中断请求; 1表示允许BKDIF中断请求。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.3 SCI可选状态寄存器1(SCIASR1)
BERRV:位错误值。当位错误探测电路使能且检测到和期望值不同时, 则设定BERRV位为“1”或“0”,该位反应RXD输入状态,该位数值仅在 BERRIF=1时有效。
0表示期望RXD输入高电平,却采样到低电平; 1表示期望RXD输入低电平,却采样到高电平。 BERRIF:位错误中断标志位。当位错误探测电路使能且RXD输入采样值 和发送数值不同时,则BERRIF置位。如果SCIACR1寄存器中的BERRIE位使 能,将产生中断。该位通过写“1”清零。 0表示未检测到RXD输入与发送数值不同; 1表示已检测到RXD输入与发送数值不同。 BKDIF:间隔探测中断标志位。如果间隔探测电路使能且接收到一个间隔 信号时,则BKDIF置位。如果SCIACR1寄存器中的BKDIE位使能,将产生中断。 该位通过写“1”清零。 0表示没有接收到间隔信号; 1表示接收到一个间隔信号。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.3 SCI可选状态寄存器1(SCIASR1)
SCI可选状态寄存器1(SCI Alternative Status Register 1,SCIASR1) 如图11.7所示。
如果AMAP=1时,读:任何时刻;如果AMAP=1时,写:任何时刻。 RXEDGIF:RXD输入边沿有效中断标志位。如果RXD输入的边沿有效 (如果SCI状态寄存器2SCISR2中的RXPOL=0则下降沿有效,如果RXPOL=1 则上升沿有效)时,则置位RXEDGIF。该位通过写“1”清零。 0表示RXD输入无边沿有效发生; 1表示RXD输入有边沿有效发生。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.2 SCI控制寄存器1(SCICR1)
SCI控制寄存器1(SCI Control Register 1,SCICR1)如图11.4所示。
如果AMAP=0时,读:任何时刻;如果AMAP=0时,写:任何时刻。 LOOPS:SCI环路使能控制位。SCI在环路工作模式下,RSRC=0,RXD 引脚和SCI模块断开,SCI发送器输出在内部和接收器输入相连。当SCI发送器 和接收器均被使能情况下,才能够实现SCI环路功能。环路工作模式如图11.5所 示。 0表示使能SCI正常工作模式; 1表示使能SCI环路工作模式。
《MC9S12XS单片机原理及嵌入式系统开发》
11.1 SCI模块概述
串行通信是微控制器与外界进行信息交换的常用 手段,MC9S12XS系列MCU内部有2个全双工串行通 信接口(Serial Communication Interface,SCI)。
串行通信是指数据一位一位地按顺序传送的通信 方式,其突出优点是只需一根传输线,可大大降低硬 件成本,特别适合远距离通信。其缺点是传输速度较 低,每秒内能发送或接收的二进制位数称为波特率。 若发送一位时间为t,则波特率为1/t。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.6 SCI控制寄存器2(SCICR2)
11.2 SCI模块结构组成和特点
MC9S12XS128内置的SCI模块如图11.1所示。
《MC9S12XS单片机原理及嵌入式系统开发》
11.2 SCI模块结构组成和特点
SCI模块具有以下基本特征:
全双工或单线操作;
8个驱动中断的标志位:
标准不归零(NRZ)传号/空号格式;
发送器空;
具有可编程脉冲宽度的可选择的IrDA 1.4归 零反转(RZI)格式;
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.2 SCI控制寄存器1(SCICR1)
SCISWAI:MCU等待工作模式下SCI停止位。 0表示在等待模式下允许SCI停止位; 1表示在等待模式下禁止SCI停止位。 RSRC:SCI接收器输入源选择位。当LOOPS=1时,RSRC位决定SCI接 收器移位寄存器的输入方式。 0表示接收器输入连接到内部发送器输出; 1表示接收器输入连接到外部发送器。 当LOOPS=1,RSRC=1时,SCI为单线工作模式,如图11.6所示。
0表示空闲字符开始于起始位之后; 1表示空闲字符开始于停止位之后。 PE:奇偶校验使能位,该位使能奇偶校验功能。当奇偶校验功能使能时,会在传 输字符的最高位插入一个奇偶校验位。 0表示禁止奇偶校验功能; 1表示允许奇偶校验功能。 PT:奇偶校验类型选择位,该位决定了使用奇校验还是偶校验。如果采用偶校验, 当传输数据中1的个数为奇数时,奇偶校验位为1;当传输数据中1的个数为偶数时,奇偶 校验位为0。如果采用奇校验,当传输数据中1的个数为奇数时,奇偶校验位为0;当传输 数据中1的个数为偶数时,奇偶校验位为1。 0表示偶校验; 1表示奇校验。
SCI波特率=SCI模块时钟/ (16×BR) 式中,BR是SCI波特率寄存器中SBR12到SBR0的13位数值。波特率寄存 器中的13位数值从1~8 191。
《MC9S12XS单片机原理及嵌入式系统开发》
11.3 SCI模块寄存器
11.3.1 SCI波特率寄存器(SCIBDH,SCIBDL)
如果SCISR2寄存器中的AMAP=0时,读:任何时刻。如果只对SCIBDH 寄存器赋值,而没有赋值SCIBDL寄存器,然后进行读取波特率寄存器操作, 将无法返回波特率寄存器中的正确数值。
当IREN=1时: SCI波特率=SCI总线时钟/ (32×SBR[12:1])
相关文档
最新文档