华邦单片机双川口使用说明精.docx
《华邦单片机双川口使用说明精.docx》由会员分享,可在线阅读,更多相关《华邦单片机双川口使用说明精.docx(14页珍藏版)》请在冰豆网上搜索。
华邦单片机双川口使用说明精
应用说明
华邦8位单片机(8051内核
应用说明
华邦8位单片机(8051内核
ANSC-UC08-0007
W77双串口应用须知
W77双串口应用须知
目录-
1.应用说明:
(4
1.1W77双串口应用须知(4
1.2相关寄存器介绍(4
1.2.1串行口控制寄存器(SCON(4
1.2.2串行数据缓冲寄存器(SBUF(5
1.2.3串行口控制1(SCON1(5
1.2.4串行数据接收缓冲1(SBUF1(6
1.2.5从机地址(SADDR(6
1.2.6从机地址1(SADDR1(6
1.3电源控制(PCON(6
1.3.1定时器2控制(T2CON(6
1.3.2使能(IE(7
2.串口0工作模式和演示程序(8
2.1串口0的模式0(8
2.1.1特点:
(8
2.1.2串口0的模式0设置实例程序(8
2.2串口0的模式1(8
2.2.1特点(8
2.2.2串口0的模式1设置实例程序(8
2.3串口0的模式2(9
2.3.1特点(9
2.3.2串口0的模式2设置实例程序(9
2.4串口0的模式3(9
2.4.1特点(9
2.4.2串口0的模式1设置实例程序(9
3.串口1工作模式和演示程序(10
3.1串口1的模式0(10
3.1.1特点:
(10
3.1.2串口1的模式0设置实例程序(10
3.2串口1的模式1(10
3.2.1特点(10
3.2.2串口1的模式1设置实例程序(10
3.3串口1的模式2(11
3.3.1特点(11
3.3.2串口1的模式2设置实例程序(11
3.4串口1的模式3(11
3.4.1特点(11
3.4.2串口1的模式1设置实例程序(11
-2-
W77双串口应用须知
4.中断服务程序的写法(12
4.1串口0中断程序的写法(12
4.2串口1中断程序的写法(12
5.文件版本描述(13
PublicationReleaseDate:
May02,2006
SC1
Revision
3
-
-
W77双串口应用须知
1.应用说明:
1.1W77双串口应用须知
W77E516有两个个全双工串行口。
这两个串行口还为用户提供帧错误检测、自动地址识别等附加功能。
这两个串行口提供同步及异步通信方式。
在同步模式下串行口产生时钟并以半双工的方式工作。
在异步模式下,能以全双工的方式工作,即可以同时收发数据。
发送,接收寄存器均用SBUF来访问。
对SBUF的写是发送数据,从SBUF读是读取数据。
串行口有4种不同的方式工作。
值得注意的是:
串口0工作在模式1或模式3时可以用定时器1或定时器2产生波特率;串口1工作在模式1或模式3时只能用定时器1产生波特率。
1.2相关寄存器介绍
1.2.1串行口控制寄存器(SCON
位:
76543210
SM0/FESM1SM2RENTB8RB8TIRISM0/FE:
串行口0,模式0控制位或贞错误标志位。
PCON特殊功能寄存器中的SMOD0位决
定该位的功能。
下面会描述SM0的运行功能。
当用作贞错误标志时,该位的置位表示一个无效的停止位。
该位必须由软件来清除。
SM1:
串行口模式位1:
SM0SM1模式说明数据长度波特率
000同步8时钟的4或12分之一
011异步10可变
10
2异步11时钟的64或32分之一
113异步11可变
SM2:
多机通信控制。
将该位置1,则使能模式2及模式3下的多机通信功能。
在模式2或3下,如果SM2置1,那么收到的第九位数据RB8是0的话,RI将不会置位。
在模式1下如果SM2置1,那么在没有收到有效的停止位前RI是不会置位的。
在模式0下,SM2位控制着串行口的时钟。
如果清0,那么串行口的时钟是系统时钟的12分频。
这样系统就与标准8052兼容。
如果该位置1,那么串行口的时钟是系统时钟的4分频,这样就加快了同步通信的速度。
REN:
接收使能,置1时打开串行口接收功能,否则关闭该功能。
TB8:
模式2和3中要被发送的第九位数据。
软件可以根据需求将该位置1或清0。
RB8:
模式2和3中接收到的第九位数据。
模式1下,若SM2=0则RB8是接收到的停止位。
模式0下该位无意义。
TI:
发送中断标志:
模式0下该标志由硬件在发送完8位数据后置位,而在其他模式下在串行发送到停止位的开始时置位。
该位必须由软件来清除.
RI:
接收中断标志:
模式0下该标志由硬件在接收到8位数据后置位,而在其他模式下在串行接收到停止位的中间时置位。
该位必须由软件来清除。
-4-
W77双串口应用须知
1.2.2串行数据缓冲寄存器(SBUF
位:
76543210
SBUF.7
SBUF.6SBUF.5SBUF.4SBUF.3SBUF.2SBUF.1SBUF.0
SBUF.7-0:
串行口0接收或发送的数据都放在这个寄存器中。
实际上该地址上有2个独立的8位寄存器。
一个用于接收数据,一个用于发送数据。
对它进行读操作将会接收串行数据,对它进行写操作则发送串行数据。
1.2.3串行口控制1(SCON1
位:
76543210
SM0_1/FE_1SM1_1SM2_1REN_1TB8_1RB8_1TI_1RI_1
SM0_1/FE_1:
串行口1,模式0控制位或贞错误标志位。
PCON特殊功能寄存器中的SMOD0位决定该位的功能。
下面会描述SM0_1的运行功能。
当用作贞错误标志时,该位的置位表示一个无效的停止位。
该位必须由软件来清除。
SM1_1:
串行口模式位1:
模式说明数据长波特率
SM0_1SM1_1
000同步8时钟的4或12分之一
011异步10可变
10
2异步11时钟的64或32分之一
113异步11可变
SM2_1:
多机通信控制。
将该位置1,则使能模式2及模式3下的多机通信功能。
在模式2或3下,如果SM2_1置1,那么收到的第九位数据RB8_1是0的话,RI将不会置位。
在模式1下如果SM2_1置1,那么在没有收到有效的停止位前RI是不会置位的。
在模式0下,SM2_1位控制着串行口的时钟。
如果清0,那么串行口的时钟是系统时钟的12分频。
这样系统就与标准8052兼容。
如果该位置1,那么串行口的时钟是系统时钟的4分频,这样就加快了同步通信的速度。
REN_1:
接收使能,置1时打开串行口接收功能,否则关闭该功能。
TB8_1:
模式2和3中要被发送的第九位数据。
软件可以根据需求将该位置1或清0。
RB8_1:
模式2和3中接收到的第九位数据。
模式1下,若SM2_1=0则RB8是接收到的停止位。
模式0下该位无意义。
TI_1:
发送中断标志:
模式0下该标志由硬件在发送完8位数据后置位,而在其他模式下在串行发送到停止位的开始时置位。
该位必须由软件来清除.
RI_1:
接收中断标志:
模式0下该标志由硬件在接收到8位数据后置位,而在其他模式下在串行接收到停止位的中间时置位。
该位必须由软件来清除。
PublicationReleaseDate:
May02,2006
SC1
Revision
-
5
-
W77双串口应用须知
1.2.4串行数据接收缓冲1(SBUF1
位:
76543210SBUF1.7SBUF1.6SBUF1.5SBUF1.4SBUF1.3SBUF1.2SBUF1.1SBUF1.0SBUF1.7-0:
串行口1接收或发送的数据都放在这个寄存器中。
实际上该地址上有2个独立的8
位寄存器。
一个用于接收数据,一个用于发送数据。
对它进行读操作将会接收串行数据,对它进行写操作则发送串行数据。
1.2.5从机地址(SADDR
位:
76543210
SADDR:
SADDR中应当写入串行口0进行多机通信时的广播地址或是从机的地址。
1.2.6从机地址1(SADDR1
位:
76543210SADDR1:
SADDR1中应当写入串行口1进行多机通信时的广播地址或是从机的地址。
1.3电源控制(PCON
位:
76543210
SMOD0--GF1GF0PDIDLSM0D
SMOD:
该位置1时,会使串行口在模式1,2,3下的波特率加倍
SMOD0:
贞错误检测使能:
该位置1时,SCON.7表示一个贞错误它是FE(贞错误标志。
当该位0,SCON.7的功能与标准8052中SCON.7相同。
1.3.1定时器2控制(T2CON
位:
76543210
RCLKTCLKEXEN2TR2
EXF2
TF2
/2CPRL
CT
/2TF2:
定时器2溢出标志:
该位置位表示定时器2溢出。
在向下计数方式中,如果计数值与捕捉寄存器的数值相等TF2也会置位。
而且该位仅在RCLK和TCLK都为0的情况下被置位。
该位只能由软件来清0,软件同样也可以对该位置1或清0。
EXF2:
定时器2外部事件标志:
依照CPRL
/2,EXEN2及DCEN的设置,在T2EX管脚(P1.1上出现低电平跳变,或定时器2溢出时该位置位。
如果是电平负跳变使该位置位,那么必须由软件来清0。
如果打开相应的中断,那么当软件将该位置位或是检测到一个电平负跳变时,会引发一个定时器中断。
RCLK:
接收时钟标志:
该位决定串行口0在模式1和3下接收数据时的时基。
如果该位置0,那么用定时器1的溢出做波特率发生器,否则将会用定时器2的溢出做波特率发生器。
将该位置位将迫使定时器2用作波特率发生器。
W77双串口应用须知TCLK:
发送时钟标志:
该位决定串行口0在模式1和3下发送数据时的时基。
如果该位置0,
那么用定时器1的溢出做波特率发生器,否则将会用定时器2的溢出做波特率发生器。
将该位置位将迫使定时器2用作波特率发生器。
EXEN2:
定时器2外部事件使能。
如果定时器2不用做波特率发生器时,该位将控制定时器2的捕捉/重装功能的开启与关闭。
如果该位置0,那么T2EX管脚上的电平变化将被忽略,否则T2EX上的电平变化将会引发捕捉或重装。
1.3.2使能(IE
位:
76543210
EAES1ET2ESET1EX1ET0EX0
EA:
中断总控制位。
使能/关闭所有中断。
ET2:
使能定时器2中断.
ES:
使能串口0中断t.
ET1:
使能定时器1中断
EX1:
使能外部中断1
ET0:
使能定时器0中断
EX0:
使能外部中断0
PublicationReleaseDate:
May02,2006
W77双串口应用须知
2.串口0工作模式和演示程序2.1串口0的模式0
2.1.1特点:
同步主动式半双工工作方式,RXD上传输数据,TXD是输出同步信号;当SM2=0时波特率为时钟频率的1/12,当SM2=1时波特率为时钟频率的1/4;8位一帧LSB先传。
2.1.2串口0的模式0设置实例程序
voidSetSP0M0(void{
SM0=0;SM1=0;//把串口0设置为模式0SM2=0;//波特率为1/12时钟频率REN=1;//允许接受
ES0=1;//允许串口0中断EA=1;//允许全局中断}
2.2串口0的模式1
2.2.1特点
异步全双工的工作方式;波特率可以是:
1/16的定时器1溢出频率、1/32的定时器1溢出频率、1/16的定时器2溢出频率;10位(1位起始位+8位数据位+1位结束位一帧LSB先传。
2.2.2串口0的模式1设置实例程序
//===用定时器2溢出产生串口时钟voidSetSP0M1(void{
RCAP2H=0Xff;RCAP2L=0Xd9;//设置定时器2TH2=0xff;TL2=0xd9;T2CON&=
0xFD;//把定时器2设置为计数器模式
TCLK=0x01;RCLK=
0x01;//把定时器2设置为波特率产生器TR2=1;//定时器2开始计时
SM0=0;SM1=1;//把串口0设置为模式1SM2=0;ES0=1;//允
许串口0中断EA=1;
//允许全局中断}
W77双串口应用须知
2.3串口0的模式22.
3.1特点
异步全双工的工作方式;波特率可以是:
1/32或1/64Fosc(系统时钟频率;11位(1位起始位+8位数据位+1位TB8+1位结束位一帧LSB先传。
2.3.2串口0的模式2设置实例程序
voidSetSP0M2(void{
PCON=0;
//波特率可以是:
1/64Fosc
SM0=1;SM1=0;//把串口0设置为模式2SM2=0;TB8=1;ES0=1;
//允许串口0中断EA=
1;//允许全局中断}
2.4串口0的模式3
2.4.1特点
异步全双工的工作方式;波特率可以是:
1/16的定时器1溢出频率、1/32的定时器1溢出频率、1/16的定时器2溢出频率;11位(1位起始位+8位数据位+1位TB8+1位结束位一帧LSB先传。
2.4.2串口0的模式1设置实例程序
//===用定时器2溢出产生串口时钟voidSetSP0M1(void{
RCAP2H=0Xff;RCAP2L=0Xd9;//设置定时器2TH2=0xff;TL2=0xd9;T2CON&=0xFD;//把定时器2设置为计数器模式
TCLK=0x01;RCLK=
0x01;//把定时器2设置为波特率产生器TR2=1;
//定时器2开始计时
SM0=1;SM1=
1;//把串口0设置为模式3SM2=0;
ES0=1;//允许串口0中断EA=1;
//允许全局中断
}
PublicationReleaseDate:
May02,2006
W77双串口应用须知
3.串口1工作模式和演示程序3.1串口1的模式0
3.1.1特点:
同步主动式半双工工作方式,RXD上传输数据,TXD是输出同步信号;当SM2=0时波特率为时钟频率的1/12,当SM2=1时波特率为时钟频率的1/4;8位一帧LSB先传。
3.1.2串口1的模式0设置实例程序voidSetSP1M0(void{
SM01=0;SM11=0;//把串口1设置为模式0SM21=
0;//波特率为1/12时钟频率ES1=1;//允许串口0中断EA=1;//允许全局中断}3.2串口1的模式1
3.2.1特点
异步全双工的工作方式;波特率可以是:
1/16的定时器1溢出频率、1/32的定时器1溢出频率;10位(1位起始位+8位数据位+1位结束位一帧LSB先传。
3.2.2串口1的模式1设置实例程序
//===用定时器1溢出产生串口时钟,
voidSetSP1M1(void{
TH1=0xF6;TL1=0xF6;
TMOD&=0x0F;TMOD|=
0x20;TR1=1;
CKCON|=0x10;SM01=0;SM11=1;SM21=0;ES1=1;EA=1;}
W77双串口应用须知3.33.3.1串口1的模式2特点异步全双工的工作方式;波特率可以是:
1/32或1/64Fosc(系统时钟频率;11位(1位起始位+8位数据位+1位TB8+1位结束位一帧LSB先传.3.3.2串口1的模式2设置实例程序voidSetSP1M2(void{CKCON&=0XF7;SM01=1;SM11=0;SM21=0;REN1=1;ES1=1;EA=1;}3.43.4.1串口1的模式3特点异步全双工的工作方式;波特率可以是:
1/16的定时器1溢出频率,1/32的定时器1溢出频率;11位(1位起始位+8位数据位+1位TB8+1位结束位一帧LSB先传.3.4.2串口1的模式1设置实例程序//===用定时器1溢出产生串口时钟voidSetSP1M3(void{TH1=0xF6;TL1=0xF6;TMOD&=0x0F;TMOD|=0x20;TR1=1;CKCON&=0XF7;PCON=0;SM01=1;SM11=1;SM21=0;ES1=1;EA=1;}-11-PublicationReleaseDate:
May02,2006RevisionSC1
W77双串口应用须知4.中断服务程序的写法4.1串口0中断程序的写法voidSP0_ISR(interrupt4using2{if(RI==1{........}RI=0;TI=0;}4.2串口1中断程序的写法voidSP1_ISR(interrupt7using3{if(RI1==1{........}RI1=0;TI1=0;}参照文件W77系列的芯片规格书-12-
W77双串口应用须知5.文件版本描述版本日期页码描述SC1May02,2006初次发行HeadquartersNo.4,CreationRd.III,Science-BasedIndustrialPark,Hsinchu,TaiwanTEL:
886-3-5770066FAX:
886-3-5665577.tw/WinbondElectronicsCorporationAmerica2727NorthFirstStreet,SanJose,CA95134,U.S.A.TEL:
1-408-9436666FAX:
1-408-5441798WinbondElectronics(ShanghaiLtd.27F,2299YanAnW.Rd.Shanghai,200336ChinaTEL:
86-21-62365999FAX:
86-21-62365998TaipeiOffice9F,No.480,RueiguangRd.,NeihuDistrict,Taipei,114,Taiwan,R.O.C.TEL:
886-2-8177-7168FAX:
886-2-8751-3579WinbondElectronicsCorporationJapan7FDaini-uenoBLDG,3-7-18ShinyokohamaKohoku-ku,Yokohama,222-0033TEL:
81-45-4781881FAX:
81-45-4781800WinbondElectronics(H.K.Ltd.Unit9-15,22F,MillenniumCity,No.378KwunTongRd.,Kowloon,HongKongTEL:
852-27513100FAX:
852-27552064Pleasenotethatalldataandspecificationsaresubjecttochangewithoutnotice.Allthetrademarksofproductsandcompaniesmentionedinthisdatasheetbelongtotheirrespectiveowners.-13-PublicationReleaseDate:
May02,2006RevisionSC1