Microsoft Word - ~ doc

Similar documents
Microsoft Word - ~ doc

Microsoft Word - IRFWX-A078_A_SM59R08A2_SM59R16A2_IIC APN_SC_.doc

Microsoft Word - ISSFA-0177_A_SM59R_series_SPI_APN_TC_.doc

Microsoft Word - ~ doc

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

W77E58中文手册

Microsoft Word - ~ doc

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

DPJJX1.DOC

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

2 12

Microsoft Word - MSP430 Launchpad 指导书.docx

目 录

Microsoft Word - 專題封面.doc

1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F B. 1(VCC/GND) SH79F6431 C. VDDIO SH79F6431 P4 P5 P0.6 P0.7 VDDIO VDDIO=5V D. 2 V 1.0

7688使用手冊V10.doc

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

目录

CAUTION RISK OF ELECTRIC SHOCK DO NOT OPEN 2

Microsoft Word - ISSFA-0237_A_SM39R_series_EEPROM_APN_TC_.doc

51 C 51 isp 10 C PCB C C C C KEIL

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

ICD ICD ICD ICD ICD

128K Flash EPROM 的程序?\(Bank=64K\) 切?

RS-232C [11-13] 1 1 (PLC) (HMI) Visual Basic (PLC) 402

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS

FM1935X智能非接触读写器芯片

System Design and Setup of a Robot to Pass over Steps Abstract In the research, one special type of robots that can pass over steps is designed and se

P4i45GL_GV-R50-CN.p65

84

JLX

SH79F161B I/O 1. SH79F161B SH79F161B IO 30 I/O I/O 4 I/O SH79F161B 30 I/O Px I/O PxCRy I/O PxPCRy x = 0-3 y = IO PxCRy IO x=0-3 y=0-7

專題最終版.doc

bingdian001.com

untitled

LK110_ck

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

USB解决方案.ppt

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

2005.book

PTS7_Manual.PDF

General Description: Preliminary TTP916 Consumer IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC

P4V88+_BIOS_CN.p65

TX-NR3030_BAS_Cs_ indd

(Guangzhou) AIT Co, Ltd V 110V [ ]! 2

1 TPIS TPIS 2 2

KL DSC DEMO 使用说明

FM1935X智能非接触读写器芯片

ARM Cortex-M3 (STM32F) STMicroelectronics ( ST) STM32F103 Core: ARM 32-bit Cortex -M3 CPU 72 MHz, 90 DMIPS with 1.25 DMIPS/MHz Single-cycle multiplica

中文手册

C语言的应用.PDF

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

ch08.PDF

穨control.PDF

P3C2000 JumperFree TM Camino

SPHE8202R Design Guide Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provi

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

学习MSP430单片机推荐参考书

Microsoft Word - ISSFA-0227_A_SM39R_series_WDT_APN_TC_.doc

1 CPU

untitled

PCM-3386用户手册.doc

untitled

AL-M200 Series

untitled

P4VM800_BIOS_CN.p65

行业

逢 甲 大 學

untitled

C/C++ - 函数

P4Dual-915GL_BIOS_CN.p65

775i65PE_BIOS_CN.p65

行业

untitled

CC213

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

行业

f2.eps

Microsoft PowerPoint - C15_LAB_MTS86_INTRO

EZ-4206/4216/4304 操作手冊\(繁\)

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

PIC_SERVER (11) SMTP ( ) ( ) PIC_SERVER (10) SMTP PIC_SERVER (event driven) PIC_SERVER SMTP 1. E-

2

SL2511 SR Plus 操作手冊_單面.doc

Microsoft PowerPoint - C15_LECTURE_NOTE_15

K7M SLOT 1

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

1.ai

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

BC04 Module_antenna__ doc

行业

EK-STM32F

6020

行业

C35_RG_E.book

员工签到录

Transcription:

1 适用产品 : 1.1 SM59R16A5/ SM59R09A5/ SM59R05A5/ SM59R16A3/ SM59R09A3/ SM59R05A3 1.2 SM59R16G6/ SM59R09G6/ SM59R05G6 1.3 SM59R04A2/ SM59R04A1/ SM59R03A1/ SM59R02A1 1.4 SM59R16A2/ SM59R08A2 2 UART 差异如下说明 : P4UR1 P1UR0 UART0 UART1 (UART1 function pin assign) (UART0 function pin assign) SM59R16A5 SM59R16A3 SM59R09A5 SM59R09A3 SM59R05A5 SM59R05A3 SM59R16A2 SM59R08A2 SM59R16G6 SM59R09G6 SM59R05G6 SM59R04A2 SM59R04A1 SM59R03A1 SM59R02A1 : 表示该型号可以使用此特殊功能 : 表示该型号不可使用此特殊功能 Notice: 选用 Package DIP 因没有 P4, 所以无法使用此特殊功能 2.1 SM59R 系列 UART0 和传统 12T 8051 程序可完全兼容 ( 使用 Timer 1), 不须修改 2.2 SM59R 系列大多数皆有双 UART 功能, 有少数系列只提供 UART0 功能, 如上表 2.3 建议使用 UART0 和 UART1 独立的 10-bit baud-rate generator, 可不占用 MCU 其它资源 ( 例如 Timer 1, 2) ISSFA-0200 1 Ver B 2011/01

2.4 UART0 鲍率功式选择 (BRS) 位置不同, 其它用方相同, 请参考以下 : 2.4.1 SM59R16A5/ SM59R09A5/ SM59R05A5/ SM59R16A3/ SM59R09A3/ SM59R05A3/ SM59R04A2 请参考以下 : Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Serial interface 0 and 1 AUX Auxiliary register 91h BRS P4CC P4SPI P4UR1 P4IIC P0KBI - DPS 00H 2.4.2 SM59R16G6/ SM59R09G6/ SM59R05G6 请参考以下 : Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Serial interface 0 and 1 AUX Auxiliary register 91h BRS P4SPI P4UR0 P4IIC P2PWM DPS 00H 2.4.3 SM59R16A2/ SM59R08A2 请参考以下 : Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Serial interface 0 and 1 Baud rate BRGS D8h BRS - - - - - - - 00h generator switch 各系列 UART 串口鲍率 (Baud rate) 计算功式, 请参考下表 : Device Device SM59R16A5/ SM59R09A5/ SM59R05A5/ SM59R16A3/ SM59R09A3/ SM59R05A3/ SM59R16G6/ SM59R09G6/ SM59R05G6 SM59R04A2/ SM59R04A1/ SM59R03A1/ SM59R02A1/ SM59R16A2/ SM59R08A2 T1PS[1:0] is 00 2 Fclk 32 12 256 TH1 ( ) BRS = 0 T1PS[1:0] is 01 2 Fclk 32 256 TH1 ( ) T1PS[1:0] is 10 2 Fclk 32 96 256 TH1 ( ) * T1PS 请参考 SFR PFCON 说明 Baud Rate 2 32 12 F OSC = ( 256 TH1) ISSFA-0200 2 Ver B 2011/01

S0RELPS[1:0] is 00 2 Fclk 10 64 2 S0REL ( ) BRS = 1 S0RELPS[1:0] is 01 2 Fclk 10 32 2 S0REL ( ) S0RELPS[1:0] is 10 2 Fclk 10 16 2 S0REL ( ) 2 10 64 F OSC ( 2 S0REL) S0RELPS[1:0] is 11 2 Fclk 10 8 2 S0REL ( ) 2.4.4 SM59R16G6/ SM59R09G6/ SM59R05G6 系列,UART0 支持更快速的 baud rate, 请参考以下 : Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Timer 0 and 1 PFCON Peripheral Frequency control register D9H S0RELPS[1:0] T1PS[1:0] T0PS[1:0] 00H Mnemonic: PFCON Address: D9H 7 6 5 4 3 2 1 0 Reset - - S0RELPS[1:0] T1PS[1:0] T0PS[1:0] 00H S0RELPS[1:0]: S0REL Prescaler select S0RELPS[1:0] Prescaler 00 Fclk/64 01 Fclk/32 10 Fclk/16 11 Fclk/8 T1PS[1:0]: Timer1 Prescaler select T1PS[1:0] Prescaler 00 Fosc/12 01 Fosc 10 Fosc/96 11 reserved ISSFA-0200 3 Ver B 2011/01

2.5 UART0( 或 UART1) 的 RX 和 TX 提供可指定脚位 (pin assign) 的功能, 避免和其它特殊功能脚位重复, 并提高硬件规划的兼容性 指定脚位只须在程序中设定 P4UR0( 或 P4UR1) 即可, 更可扩展为多组 UART 2.5.1 SM59R16A5/ SM59R09A5/ SM59R05A5/ SM59R16A3/ SM59R09A3/ SM59R05A3/ SM59R04A2, 请参考以下 : P4UR1: P4UR1 = 0 Serial interface 1 function on P1 ( RXD1 in P1.2, TXD1 in P1.3 ). P4UR1 = 1 Serial interface 1 function on P4 ( RXD1 in P4.2, TXD1 in P4.3 ). 2.5.2 SM59R16G6/ SM59R09G6/ SM59R05G6, 请参考以下 : P1UR0: P4UR0 = 0 Serial interface 1 function on P1 ( RXD0 in P3.0, TXD0 in P3.1). P4UR0 = 1 Serial interface 1 function on P4 ( RXD0 in P1.2, TXD0 in P1.3 ). 3 UART 使用概述鲍率说明 : 3.1 使用串口时, 系统晶振频率的误差须小于 2%, 因内部晶振频率的误差较大, 为避免数据遗失, 系统建议使用外部晶振 3.2 UART0 鲍率 : 功能和一般 8051 相同, 可使用 Timer1(8-bit) 做鲍率产生, 另多一组内部鲍率 (Baud rate) 产生器 (16-bit), 鲍率兼容更高更准确, 可供选用, 详细说明参考 5.1.1 计算公式 3.3 UART1 鲍率 : 使用内部鲍率产生器 (16-bit) 产生, 详细说明参考 5.1.2 计算公式 硬件说明 : 3.4 UART0 有四种操作模式 (mode 1~mode 4), 使用方式及设定可完全兼容传统 8051, 详细请参考章节第 6.0 说明 3.5 UART1 有二种操作模式 (mode A 和 mode B), 请参考章节第 7.0 说明 3.6 每一组串口分别有独立的缓冲存储器, 传送及接收则是共享缓冲存储器 : UART0 使用 S0BUF UART1 使用 S1BUF 当执行数据接收时, 必须在前一笔数据完成执行工作以后, 否则会造成数据流失 ( 新数据覆盖旧 数据 ) 的情形 ; 可由传送旗标 (TXIF) 和接收旗标 (RXIF) 判断前一次的工作状态是否完成 3.7 鲍率无论由 Timer(8-bit) 或内部鲍率产生器 (16-bit) 产生, 其频率固定预除 12, 不受系统频率选择 1T 或 2T 的影响 4 UART 相关的特殊缓存器 UART Special Function Register (SFR) Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESE T Serial interface 0 and 1 PCON Power control 87h MDUF - - - - STOP IDLE 40h AUX Auxiliary register 91h BRS P4CC P4SPI P4UR0 P4IIC P0KBI - DPS 00H S0CON Serial Port 0 control register 98h SM0 SM1 SM20 REN0 TB80 RB80 TI0 RI0 00h S0RELL Serial Port 0 reload register AAh S0REL.7 S0REL.6 S0REL.5 S0REL.4 S0REL.3 S0REL.2 S0REL.1 S0REL.0 00h low byte S0RELH Serial Port 0 BAh - - - - - - S0REL.9 S0REL.8 00h ISSFA-0200 4 Ver B 2011/01

S0BUF S1CON L H S1BUF reload register high byte Serial Port 0 data buffer Serial Port 1 control register Serial Port 1 reload register low byte Serial Port 1 reload register high byte Serial Port 1 data buffer 99h S0BUF[7:0] 00h 9Bh SM - SM21 REN1 TB81 RB81 TI1 RI1 00h 9Dh.7.6.5.4.3.2 BBh - - - - - -.1.9.0.8 9Ch S1BUF[7:0] 00h 00h 00h Only for SM59R16A2/ SM59R08A2 used: Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESE T Serial interface 0 and 1 PCON Power control 87h MDUF - PMW - - STOP IDLE 00h BRGS Baud rate generator switch D8h BRS - - - - - - - 00h Mnemonic: S0CON Address: 98h 7 6 5 4 3 2 1 0 Reset SM0 SM1 SM20 REN0 TB80 RB80 TI0 RI0 00h SM0,SM1: 串口 0(UART0) 模式选择 (Serial Port 0 mode selection.) SM0 SM1 Mode Description Board Rate Baud Rate generate 0 0 0 Shift register Fosc/12 Fixed 0 1 1 8-bit UART Variable 1 0 2 9-bit UART Fosc/32 or Fosc/64 1 1 3 9-bit UART Variable 详细可参考章节 6. 说明 Internal baud rate generator or Timer 1 ISSFA-0200 5 Ver B 2011/01 Fixed Internal baud rate generator or Timer 1 SM20: 多任务处理机通讯致能旗标 (Enables multiprocessor communication feature.) 此功能只和 UART 串口接收中断 (RI) 有关, 不影响传送中断中 (TI), 各模式说明如下 : Mode SM2 功能说明 0 模式 0,SM20 必须为 0 1 模式 1:RB80 为停止位 (stop bit) 若 SM20=0, 无论停止位为 1 或 0,RI 皆会动作 若 SM20=1, 当停止位不正确时,RI 则不动作 2 & 3 RB80 为数据的第 9 位 (9 th -bit) 若 SM20 设定 =0: 无论第 9 位为 1 或 0,RI 皆会动作 若 SM20 设定 =1: 若第 9 位 =1 则 RI 会动作

若第 9 位 =0 则 RI 不会动作 REN0: 接收致能旗标 : 1 致能 0 禁能, 必须由软件清除 TB80: 在传送模式 2 和模式 3 时, 所传送的数据的第 9 位 (9 th -bit) The 9 th transmitted data bit in modes 2 and 3. Set or cleared by the CPU depending on the function it performs such as parity check, multiprocessor communication etc. RB80: 在传送模式 2 和模式 3 时, 所接收的数据的第 9 位 (9 th -bit) 在传送模式 1 时, 如果 SM20 为 0, 则 RB80 为停止位 (stop bit) 在传送模式 0 时,RB80 无作用此位必须由软件清除 TI0: 传送中断旗标 (Transmit interrupt flag): 在模式 0 时, 在第 8 位结束时, 硬件会将它设为 1; 其它模式时, 在 stop bit 停止位的开始时设定为 1 1 传送完成由硬件设置 0 必须由软件清除 RI0: 接收中断旗标 (Receive interrupt flag) 在模式 0 时, 在第 8 位结束时, 硬件会将它设为 1, 其它模式时, 在 stop bit 停止位的一半的时候由硬件设定 1 接收完成由硬件设置 0 必须由软件清除 须参考 SM20 Mnemonic: S1CON Address: 9Bh 7 6 5 4 3 2 1 0 Reset SM - SM21 REN1 TB81 RB81 TI1 RI1 00h SM: 串通讯列端口 1(UART1) 模式选择 (Serial Port1 mode selection.) SM Mode Description Baud Rate Notice 0 A 9-bit UART Variable 此模式与 UART0 的 Mode 2 和 Mode 3 相似 1 B 8-bit UART Variable 此模式与 UART0 的 Mode 1 类似 详细可参考章节 7. 说明 SM21: 多任务处理机通讯致能位 (Enables multiprocessor communication feature.) 此功能只和串口接收中断 (RI) 有关, 和传送中断 (TI) 无关, 各模式说明如下 : Mode SM2 功能说明 A B RB81 为数据的第 9 位 (9 th -bit) 若 SM21 设定 =0: 无论第 9 位为 1 或 0,RI 皆会动作 若 SM21 设定 =1: 若第 9 位 =1 则 RI 会动作 若第 9 位 =0 则 RI 不会动作 RB81 为停止位 (stop bit) 若 SM21=0: 无论停止位为 1 或 0,RI 皆会动作 若 SM21=1: 当停止位不正确时,RI 则不动作 ISSFA-0200 6 Ver B 2011/01

REN1: 接收致能位 : 1 致能 0 禁能, 必须由软件清除 TB81: 在传送模式 2 和模式 3 时, 所传送的数据的第 9 位 (9 th -bit) The 9 th transmitted data bit in mode A. Set or cleared by the CPU depending on the function it performs such as parity check, multiprocessor communication etc. RB81: 在传送模式 A 时, 所接收的数据的第 9 位 (9 th -bit) 在传送模式 B 时, 如果 SM21 为 0, 则 RB81 为停止位 (stop bit) 此位必须由软件清除 TI1: 传送中断旗标 (Transmit interrupt flag) 在模式 0 时, 在第 8 位结束时, 硬件会将它设为 1 其它模式时, 在 stop bit 停止位的开始时设定为 1 1 传送完成由硬件设置 0 必须由软件清除 RI1: 接收中断旗标 (Receive interrupt flag) 在模式 0 时, 在第 8 位结束时, 硬件会将它设为 1, 其它模式时, 在 stop bit 停止位的一半的时候由硬件设定 1 接收完成由硬件设置 0 必须由软件清除 须参考 SM21 4.1 串口鲍率 (Baud rate) 计算功式 : 4.1.1 Serial interface 0(UART0) modes 1 and 3 (a) When BRS = 0: (b) When BRS = 1: Baud Rate 2 32 12 F OSC = 2 10 64 ( 256 TH1) F OSC ( 2 S0REL) 4.1.2 Serial interface 1(UART1) modes A and B F 10 32 OSC ( 2 ) 5 UART0(Serial interface 0) 串口有以下四种操作模式 : SM0 SM1 Mode Description Board Rate Baud Rate generate 0 0 0 Shift register Fosc/12 Fixed 0 1 1 8-bit UART Variable Internal baud rate generator or Timer 1 ISSFA-0200 7 Ver B 2011/01

1 0 2 9-bit UART Fosc/32 or Fosc/64 Fixed 1 1 3 9-bit UART Variable Internal baud rate generator or Timer 1 Fosc 指 crystal 或 oscillator 的振荡频率 5.1.1 Mode 0 1. MCU 数据输出或输入都是利用 RXD0 为引脚 TXD0 为 MCU 输出移位频率 ( 固定为 Fosc/12) 2. 数据为 8 bits, 由 LSB 先传送 3. 固定鲍率 (Baud rate) 为 Fosc/12 4. Mode 0 初始化由旗标 S0CON 设定 :RI0 = 0 and REN0 = 1 5. 当传送数据时 : 须先以软件清除 S0CON 中的 REN0=0, 执行数据写入 S0BUF 指令, 则会引发数据传送的动作 ; 数据传送完毕后,MCU 会将 S0CON 中的 TI0 设定为 1, 通知中断产生 6. 当接收数据时 : 须先以软件设定 S0CON 中的 REN0=1, 然后执行清除 RI 位, 串行端口就会依时序进行接收的工作 ; 数据接收完毕后,MCU 会将 S0CON 中的 RI0 设定为 1, 通知中断产生 Fig. 9-1: Transmit mode 0 for Serial 0 Fig. 9-2: Receive mode 0 for Serial 0 5.1.2 Mode 1 1. 鲍率 (Baud rate), 由内部鲍率产生器 (SFR S0RELH 及 S0RELL 设定 ) 或 Timer1 来产生 2. RXD0 为输入数据的引脚,TXD0 为输出数据的引脚 ISSFA-0200 8 Ver B 2011/01

3. Mode1 没有使用任何的位移频率, 数据以 10bits 传输, 分为三部分 : (1) bit[0] a start bit (always 0) (2) bit[1~8] 8 data bits (LSB first) (3) bit[9] a stop bit (always 1) (save to RB80, clear by software) 4. 在接收模式中,start bit 与数据传输会同时发生, 可从 SFR S0BUF 读取 8 data bits,stop bit 则存至 SFR S0CON 的 RB80 旗标设置 ( 由软件清除 ) Fig. 9-3: Transmit mode 1 for Serial 0 Fig. 9-4: Receive mode 1 for Serial 0 5.1.3 Mode 2 此模式与 Mode 1 相似, 仅有两点不相同 : 1. 固定的鲍率 (Baud rate) 有两种 : (1) Fosc/12 (=1) (2) Fosc/64 (=0) 2. 数据是以 11bits 传送或接收, 分为四个部分 : (1) bit[0] a start bit (always 0) (2) bit[1~8] 8 data bits (LSB first) (3) bit[9] a programmable (4) bit[10] a stop bit(always 1) 3. 数据 bit[9] 可当作同位检查位 (parity check bit) (1) 在传送模式 :SFR S0CON 的 TB80 为传送数据的第九位 (2) 在接收模式 :SFR S0CON 的 RB80 为接收数据的第九位 ISSFA-0200 9 Ver B 2011/01

5.1.4 Mode 3 此模式与 Mode 2 相似, 仅有一项不同, 即鲍率 (Baud rate) 可指定由内部鲍率产生器 (SFR S0RELH 及 S0RELL 设定 ) 或 Timer1 来产生 ( 与 Mode1 相同 ) Fig. 9-5: Transmit modes 2 and 3 for Serial 0 Fig. 9-6: Receive modes 2 and 3 for Serial 0 6 UART1(Serial interface 1) 串口有以下二种操作模式 : SM Mode Description Baud Rate 0 A 9-bit UART Variable 1 B 8-bit UART Variable 6.1 Mode A 6.1.1 此模式与 UART0 的 Mode 2 和 Mode 3 相似 6.1.2 鲍率 (Baud rate), 由内部鲍率产生器产生 (SFR H 及 L 设定 ) 6.1.3 数据为 11bits 传送或接收, 分为四个部分 : (1) bit[0] a start bit (always 0) (2) bit[1~8] 8 data bits (LSB first) (3) bit[9] a programmable (TB81 or RB81) (4) bit[10] a stop bit(always 1) ISSFA-0200 10 Ver B 2011/01

6.1.4 数据 bit[9] 可当作同位检查位 (parity check bit) (1) 在传送模式 :SFR S1CON 的 TB81 为传送数据的第九位 (2) 在接收模式 :SFR S1CON 的 RB81 为接收数据的第九位 Fig. 9-7: Transmit mode A for Serial 1 Fig. 9-8: Receive mode A for Serial 1 6.2 Mode B 6.2.1 此模式与 UART0 的 Mode 1 类似 6.2.2 鲍率 (Baud rate), 由内部鲍率产生器产生 (SFR H 及 L 设定 ) 6.2.3 RXD0 为输入数据的引脚,TXD0 为输出数据的引脚 6.2.4 没有使用任何的位移频率 6.2.5 数据为 10bits 传输, 分为三部分 : (1) bit[0] a start bit (always 0) (2) bit[1~8] 8 data bits (LSB first) (3) bit[9] a stop bit (always 1) (save to RB80, clear by software) 在接收模式中,start bit 与数据传输会同时发生,8 data bits 可从 SFR S1BUF 读取,stop bit 则存至 SFR S1CON 的 RB80 旗标设置 ( 由软件清除 ) Fig. 9-9: Transmit mode B for Serial 1 ISSFA-0200 11 Ver B 2011/01

Fig. 9-10: Receive mode B for Serial 1 7 以下为 UART 串口中断应用有关的致能旗标 Interrupt vectors Table Interrupt Vector Interrupt Number Interrupt Request Flags Address *(use Keil C Tool) IE0 External interrupt 0 0003h 0 TF0 Timer 0 interrupt 000Bh 1 IE1 External interrupt 1 0013h 2 TF1 Timer 1 interrupt 001Bh 3 RI0/TI0 Serial channel 0 interrupt 0023h 4 TF2/EXF2 Timer 2 interrupt 002Bh 5 PWMIF PWM interrupt (The SM59R16A2/SM59R08A2 haven t) 0043h 8 SPIIF SPI interrupt 004Bh 9 ADCIF A/D converter interrupt 0053h 10 KBIIF keyboard Interface interrupt 005Bh 11 LVIIF Low Voltage Interrupt (The SM59R16A2/SM59R08A2 haven t) 0063h 12 IICIF IIC interrupt 006Bh 13 RI1/TI1 Serial channel 1 interrupt 0083h 16 RTC/ALARM interrupt (Only SM59R16A5/SM59R09A5/SM59R05A5 have) 008Bh 17 Comparator interrupt (Only SM59R16A5/SM59R09A5/SM59R05A5 have) 0093h 18 *See Keil C about C51 User s Guide about Interrupt Function description Mnemonic Description Direct Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 RESET Interrupt IEN0 Interrupt Enable 0 register A8h EA - ET2 ES0 ET1 EX1 ET0 EX0 00h IEN1 Interrupt Enable 1 register B8h EXEN2 - IEIIC IELVI IEKBI IEADC IESPI IEPWM 00h IEN2 Interrupt Enable 2 register 9Ah - - - - - - - ES1 00h IRCON Interrupt request register C0H EXF2 TF2 IICIF LVIIF KBIIF ADCIF SPIIF PWMIF 00H IP0 Interrupt priority level 0 A9h - - IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0 00h ISSFA-0200 12 Ver B 2011/01

IP1 Interrupt priority level 1 B9h - - IP1.5 IP1.4 IP1.3 IP1.2 IP1.1 IP1.0 00h * 如果需要使用中断程序, 可参考以下设置 : void SerialChannel_0(void) interrupt 4 void SerialChannel_1(void) interrupt 16 8 范例程序 Serial Port 1(UART1) TX 及 RX 通讯的范例程序 Description 1. 程序使用双串口 (UART0,UART1), 中断致能, 设定 baud rate 115200 bps 2. UART0 及 UART1 设定使用 internal baud rate generator 3. UART0 及 UART1 通讯协议相同, 程序会一直等待接收外部数据, 收到数据后会以相同的数 据回传, 例如 RX 收到数据 5Ah,TX 会回传 5Ah 4. 连接 PC COM Port 设定 : 4.1. baud rate=115200bps 4.2. Data Bits=8 4.3. No Parity 4.4. Stop bits=1 Main program //=================================================================== // // S Y N C M O S T E C H N O L O G Y // //=================================================================== #include "SM59R04A2.h" #define S0BUF SBUF #define S0CON SCON #define S0CON_TI TI #define S0CON_RI RI bit TX_IF0 = 0; bit TX_IF1 = 0; bit UART0_toogle = 0; bit UART1_toogle = 0; unsigned char RXBUF0 = 0; unsigned char RXBUF1 = 0; void UART0_INT(void) interrupt 4 if(s0con_ri) //UART0_INT_RX UART0_toogle = 1; RXBUF0 = S0BUF; S0CON_RI= 0; //clear UART0 RI //RX_IF0 = 1; ISSFA-0200 13 Ver B 2011/01

else S0CON_TI=0; TX_IF0 =1; //UART0_INT_TX //clear UART0 TI void UART1_INT(void) interrupt 16 if(s1con & 0x01) //UART1_INT_RX UART1_toogle = 1; RXBUF1 = S1BUF; S1CON &= 0xFE; //clear UART1 RI //RX_IF1 = 1; else //UART1_INT_TX S1CON &= 0xFD; //clear UART1 TI TX_IF1 =1; void UART0_TX(void) S0BUF = RXBUF0; while(!tx_if0); //while(!s0con_ti); TX_IF0 =0; // confirm INT void UART1_TX(void) S1BUF = RXBUF1; while(!tx_if1); // confirm INT // while(!(s1con & 0x02)); TX_IF1 =0; void init_uart0(void) //AUX &= 0x7F; // for UART0, set BRS =0, BR ref.to TH1(8-bit) AUX = 0x80; S0RELH/S0RELL(16-bit) // for UART0, set BRS =1, BR ref.to PCON = 0x80; // set 1 S0CON = 0x50; // Mode 1 sel / REN Enable / RI&TI Clear S0RELH = 0x03; // set BR 115200 External OSC=22.1184MHz S0RELL = 0xFA; // set BR 115200 External OSC=22.1184MHz IEN0 = 0x10; // ES0 enbale (serial channel 0 interrupt) void init_uart1(void) S1CON = 0xB0; // Mode B sel / REN Enable / RI&TI Clear H = 0x03; // set BR 115200 External OSC=22.1184MHz L = 0xFA; // set BR 115200 External OSC=22.1184MHz IEN2 = 0x01; // ES1 enbale (serial channel 1 interrupt) void init_mcu(void) IFCON = 0X80; // 1T select IEN0 = 0x80; // all Interrupt enable ISSFA-0200 14 Ver B 2011/01

void main(void) unsigned int Loop=0; init_mcu(); init_uart0(); init_uart1(); while(1) if(uart0_toogle) UART0_TX(); UART0_toogle = 0; if(uart1_toogle) UART1_TX(); UART1_toogle = 0; ISSFA-0200 15 Ver B 2011/01