0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
STC11F32XE-35I-PDIP40

STC11F32XE-35I-PDIP40

  • 厂商:

    STC(宏晶科技)

  • 封装:

    PDIP40_52.5X14.1MM

  • 描述:

    8位MCU单片机 PDIP40_52.5X14.1MM 1.25KB 3.7~5.5V 8051 35MHz

  • 数据手册
  • 价格&库存
STC11F32XE-35I-PDIP40 数据手册
STC — 8051单片机全球第一品牌,全球最大的8051单片机设计公司 官方网站:www.STCMCU.com www.GXWMCU.com STC11/10xx系列单片机器件手册 STC11F01, STC11F02, STC11F03, STC11F04, STC11F05, STC11F08, STC11F16, STC11F32, STC11F40, STC11F48, STC11F52, STC11F56, STC11F60, IAP11F62, C T S ---���� 加��� 密�� 性强 ---1个时钟/机器周期8051 ---高速,高可靠 ---低功耗,超低价 ---强抗静电,强抗干扰 STC11F01E STC11F02E STC11F03E STC11F04E STC11F05E, STC11F08X, STC11F16X, STC11F32X, STC11F40X, STC11F48X, STC11F52X, STC11F56X, STC11F60X, IAP11F62X CU M L d e t i im IAP11F06 STC11F08XE STC11F16XE STC11F32XE STC11F40XE STC11F48XE STC11F52XE STC11F56XE STC11F60XE STC-ISP:最方便的在线升级软件,无需编程器,无需仿真器 STC——8051单片机全球第一品牌,全球最大的8051单片机设计公司 Update date: 2015/8/10 STC11/10xx系列单片机指南 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 技术支持QQ:800003751 STC — 8051单片机全球第一品牌,全球最大的8051单片机设计公司 官方网站:www.STCMCU.com www.GXWMCU.com STC11/10xx系列单片机器件手册 STC10F04, STC10F08, STC10F12, IAP10F04, C T S ---���� 加��� 密�� 性强 ---1个时钟/机器周期8051 ---高速,高可靠 ---低功耗,超低价 ---强抗静电,强抗干扰 STC10F04X, STC10F08X, STC10F12X, IAP10F04X U C M d STC10F04XE e t i im STC10F08XE L STC10F12XE STC-ISP:最方便的在线升级软件,无需编程器,无需仿真器 STC——8051单片机全球第一品牌,全球最大的8051单片机设计公司 请同行不要再抄袭我们的设计、规格和管脚排列,再抄袭就很无耻了 全部中国本土独立自主知识产权,请全体中国人民支持,您的支持是中国本土 力量前进的����� 有力保证. 封装后,全部175oC八小时高温烘烤,高品质制造保证 技术支持网站:www.STCMCU.com www.GXWMCU.com Update date: 2015/8/10 STC11/10xx系列单片机指南 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 技术支持QQ:800003751 超强抗干扰,无法解密 TM STC micro 8051单片机全球第一品牌,全球最大的8051单片机设计公司 全部中国大陆本土独立自主知识产权;品质保证:TSMC上海制造 宏 晶 科 技 www.STCMCU.com 官方网站: www.GXWMCU.com 南通 Tel: 0513-5501 2928 5501 2929 深圳 Tel: 0755-8294 8411 8294 8412 STC15系列1T 8051单片机,超高速双串口,高速A/D,比较器,宽电压,低功耗 不需外部晶振的单片机 不需外部复位的单片机 E2PROM Data Flash 8/16/32/60/61K 字节 Flash 程序存储器 大容量 2048 字节 SRAM 5组8位 微处理器 高速(0-35M),高可靠 7K 128 - - 2(T0/T2) - 有 5 - - IAP 有 有 固定 有 是 无 否 否 7K 128 - - 2(T0/T2) - 有 5 - - IAP 16级 16级 16级 16级 有是 有是 有是 有是 有 有 有 有 是是 是是 是是 是是 2.5-5.5 7.5K 256 1 - 2(T0/T2) - 有 5 - 有 IAP ¥0.89 ¥0.99 ¥1.1 ¥1.2 ¥1.2 ¥1.1 ¥1.2 ¥1.3 ¥1.3 有是 有是 有是 有是 有 有 有 有 是是 是是 是是 是是 SOP8 DIP8 ¥0.99 ¥1.1 ¥1.2 ¥1.3 ¥1.3 ¥1.2 ¥1.3 ¥1.4 ¥1.4 有 有 16级 有 是 有 是 是 有 有 固定 有 是 无 否 否 STC15W404S系列����������� 单片机选型价格一览表,大批量现货供应中 4K 512 1 有 3 - 有 5 有 9K 有 有 16级 有 是 有 是 是 8K 512 1 有 3 - 有 5 有 5K 有 有 16级 有 是 有 是 是 IAP15W413S 2.5-5.5 13K 512 1 有 3 - 有 5 - 有 IAP 有 有 16级 有 是 有 是 是 IRC15W415S 默认使用内部 24MHz时钟 2.5-5.5 15.5K 512 1 有 3 - 有 5 - 有 IAP 有 有 固定 有 是 无 否 否 DFN8 ¥1.5 SOP8 ¥1.15 ¥1.25 ¥1.35 ¥1.35 SOP16 ¥1.2 ¥1.3 ¥1.4 ¥1.4 DIP16 ¥1.35 ¥1.45 ¥1.55 ¥1.55 3 3-ch 有 5 10位 - IAP 有 有 固定 有 是 无 否 否 STC15F2K32S STC15F2K60S 5.5-4.5 32K 5.5-4.5 60K 2K 1 有 2K 1 有 3 3 - 有 5 有 5 - - 29K 1K 有 有 8级 有 是 有 是 是 有 有 8级 有 是 有 是 是 IAP15F2K61S 5.5-4.5 61K 2K 1 有 3 - 有 5 - - IAP 有 有 8级 有 是 有 是 是 STC15F2K24AS 5.5-4.5 24K STC15F2K48AS 5.5-4.5 48K 2K 1 有 2K 1 有 3 3 10位 10位 - 37K 13K 有 有 8级 有 是 有 是 是 有 有 8级 有 是 有 是 是 3-ch 有 5 3-ch 有 5 P2.5/CCP0_3 P2.4/ECI_3/SS_2 P2.3/MOSI_2 P2.2/MISO_2 P2.1/SCLK_2 P2.0/RSTOUT_LOW P3.7/INT3/TxD_2/CCP2/CCP2_2 P3.6/INT2/RxD_2/CCP1_2 P3.5/T1/T0CLKO/CCP0_2 P3.4/T0/T1CLKO/ECI_2 P3.3/INT1 P3.2/INT0 P3.1/TxD/T2 P3.0/RxD/INT4/T2CLKO STC 单片机在线编程ISP/仿真线路 USB转�� 串口 用户可将用户程序区不用的程序Flash当EEPROM使用 ¥1.6 ¥1.8 ¥1.99 ¥2.2 ¥2.3 DIP16 SOP20 DIP20 TSSOP20 SOP28 SKDIP28 TSSOP28 QFN28 ¥1.8 ¥1.8 ¥2.0 ¥1.9 ¥2.0 ¥2.2 ¥2.1 ¥2.0 ¥2.0 ¥2.2 ¥2.1 ¥2.2 ¥2.4 ¥2.3 ¥2.2 ¥2.2 ¥2.4 ¥2.3 ¥2.5 ¥2.7 ¥2.6 ¥2.4 ¥2.4 ¥2.6 ¥2.5 ¥2.7 ¥2.9 ¥2.8 ¥2.5 ¥2.5 ¥2.7 ¥2.6 ¥2.8 ¥3.0 ¥2.9 用户可将用户程序区不用的程序Flash当EEPROM使用 ¥2.5 ¥2.5 ¥2.7 ¥2.6 ¥2.8 ¥3.0 ¥2.9 用户可将用户程序区不用的程序Flash当EEPROM使用 SOP28 SKDIP28 LQFP32 QFN32 PDIP40 LQFP44 ¥2.3 ¥2.5 ¥2.4 ¥3.0 ¥2.5 ¥2.5 ¥2.7 ¥2.6 ¥3.0 ¥2.7 ¥2.6 ¥2.8 ¥2.7 ¥2.65 ¥3.3 ¥2.8 用户可将用户程序区不用的程序Flash当EEPROM使用 ¥2.6 ¥2.8 ¥2.7 ¥3.3 ¥2.8 用户可将用户程序区不用的程序Flash当EEPROM使用 STC15W1K16S系列����������� 单片机选型价格一览表,大批量现货供应中 TSSOP20 SOP28 SKDIP28 LQFP32 QFN32 PDIP40 LQFP44 STC15W1K16S 2.6-5.5 16K 1K 1 有 3 - 有 5 ¥3.3 ¥3.5 ¥3.4 ¥4.0 ¥3.5 有 13K 有 有 16级 有 是 有 是 是 STC15W1K24S 2.6-5.5 24K 1K 1 有 3 - 有 5 ¥3.6 ¥3.8 ¥3.7 ¥4.3 ¥3.8 有 5K 有 有 16级 有 是 有 是 是 ¥3.6 ¥3.6 ¥3.6 ¥3.8 ¥3.7 ¥3.65 ¥4.3 ¥3.8 IAP15W1K29S 2.6-5.5 29K 1K 1 有 3 - 有 5 有 IAP 有 有 16级 有 是 有 是 是 用户可将用户程序区不用的程序Flash当EEPROM使用 IRC15W1K31S ¥3.6 ¥3.8 ¥3.7 ¥4.3 ¥3.8 3 - 有 5 有 IAP 有 有 固定 有 是 无 否 否 默认使用内部 2.6-5.5 31.5K 1K 1 有 用户可将用户程序区不用的程序Flash当EEPROM使用 24MHz时钟 单片机选型价格一览表� ,另有STC15L系列(工作电压2.4V-3.6V) STC15F2K60S2系列����������� 大批量 TSSOP20 SOP28 SKDIP28 LQFP32 QFN32 PDIP40 LQFP44 特别提醒:3路CCP/PCA/PWM还可当3路定时器使用 现货供应中 STC15F2K08S2 5.5-4.5 8K 2K 2 有 3 3-ch 有 5 10位 53K 有 有 8级 有 是 有 是 是 ¥3.8 ¥4.0 ¥3.9 ¥4.5 ¥4.0 STC15F2K16S2 5.5-4.5 16K 2K 2 有 3 3-ch 有 5 10位 45K 有 有 8级 有 是 有 是 是 ¥4.0 ¥4.2 ¥4.1 ¥4.7 ¥4.2 STC15F2K32S2 5.5-4.5 32K 2K 2 有 3 3-ch 有 5 10位 29K 有 有 8级 有 是 有 是 是 ¥4.3 ¥4.5 ¥4.4 ¥4.9 ¥4.5 STC15F2K48S2 5.5-4.5 48K 2K 2 有 3 3-ch 有 5 10位 13K 有 有 8级 有 是 有 是 是 ¥4.4 ¥4.6 ¥4.5 ¥4.9 ¥4.6 STC15F2K60S2 5.5-4.5 60K 2K 2 有 3 3-ch 有 5 10位 1K 有 有 8级 有 是 有 是 是 ¥4.4 ¥4.6 ¥4.5 ¥4.9 ¥4.6 IAP15F2K61S2 ¥4.4 ¥4.4 ¥4.6 ¥4.5 ¥4.45 ¥4.9 ¥4.6 5.5-4.5 61K 2K 2 有 3 3-ch 有 5 10位 IAP 有 有 8级 有 是 有 是 是 用户可将用户程序区不用的程序Flash当EEPROM使用 本身就是仿真器 IRC15F2K63S2 ¥4.9 ¥4.6 默认使用外部晶振 5.5-4.5 63.5K 2K 2 有 如无外部晶振则使 用内部24MHz时钟 28 27 26 25 24 23 22 21 20 19 18 17 16 15 ¥2.0 ¥2.2 ¥2.5 ¥2.7 ¥2.8 ¥2.8 AD0/P0.0 AD1/P0.1 AD2/P0.2 AD3/P0.3 AD4/P0.4 AD5/P0.5 AD6/P0.6 AD7/P0.7 RxD2/CCP1/ADC0/P1.0 TxD2/CCP0/ADC1/P1.1 ECI/SS/ADC2/P1.2 MOSI/ADC3/P1.3 MISO/ADC4/P1.4 SCLK/ADC5/P1.5 XTAL2/RxD_3/ADC6/P1.6 XTAL1/TxD_3/ADC7/P1.7 SS_3/MCLKO/RST/P5.4 Vcc C2 C1 P5.5 0.01μF 47μF Gnd Power On SW1 Vin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 我们直销,所以低价,���������������������������������������������������������� 以上单价为10K/M起定量,量小每片需加0.1元,以上价格运费由客户承担,零售10片起,如对价格不满,可来电要求降� 价 特别声明:以15F和15L开头且有SPI功能的芯片只支持"SPI主机模式";以15W开头且有SPI功能的芯片,SPI主/从机模式均支持 以15F和15L开头的芯片不支持"串行口掉电唤醒"功能,而以15W开头的芯片支持该功能 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 P4.5/ALE P2.7/A15/CCP2_3 P2.6/A14/CCP1_3 P2.5/A13/CCP0_3 P2.4/A12/ECI_3/SS_2 P2.3/A11/MOSI_2 P2.2/A10/MISO_2 P2.1/A9/SCLK_2 P2.0/A8/RST_LOW P4.4/RD P4.2/WR P4.1/MISO_3 P3.7/INT3/TxD_2/CCP2/CCP2_2 P3.6/INT2/RxD_2/CCP1_2 P3.5/T1/T0CLKO/CCP0_2 P3.4/T0/T1CLKO/ECI_2 P3.3/INT1 P3.2/INT0 P3.1/TxD/T2 P3.0/RxD/INT4/T2CLKO MCU_TxD(P3.1) 支持RS485下载 支持程序加密后传输(防拦截) 300Ω VO_3.3V 1 GND 0.1uF VO_33 8 2 TxD VDD_5 7 3 VDD_325 4 RxD 另有PL-2303HXD-SSOP28 及PL-2303HX-SSOP28,其 价格更低 DM 6 DP 5 MCU_RxD(P3.0) 10uF 27Ω 27Ω 0.1uF USB +5V VO_3.3V 1.5K 1 D- 2 D+ 3 4 PL-2303SA-SOP8 USB 也可使用普通的RS232芯片接电脑 如MAX232或MAX3232 SP232或SP3232 用户可将用户程序区不用的程序Flash当EEPROM使用 ¥4.4 ¥3.9 ¥4.4 ¥3.9 ¥4.5 ¥4.0 用户可将用户程序区不用的程序Flash当EEPROM使用 ¥3.9 ¥3.9 38个I/O IAP IAP ¥1.4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 P1.1/ADC1/CCP0 P1.0/ADC0/CCP1 P3.7/INT3/TxD_2/CCP2/CCP2_2 P3.6/INT2/RxD_2/CCP1_2 P3.5/T0CLKO/CCP0_2 P3.4/T0/ECI_2 P3.3/INT1 P3.2/INT0 P3.1/TxD/T2 P3.0/RxD/INT4/T2CLKO 用户可将用户程序区不用的程序Flash当EEPROM使用 ¥2.3 10-bit 有 CCP1_3/P2.6 CCP2_3/P2.7 RxD2/CCP1/ADC0/P1.0 TxD2/CCP0/ADC1/P1.1 ECI/SS/ADC2P1.2 MOSI/ADC3/P1.3 MISO/ADC4/P1.4 SCLK/ADC5/P1.5 XTAL2/RxD_3/ADC6/P1.6 XTAL1/TxD_3/ADC7/P1.7 MCLKO/RST/P5.4 Vcc P5.5 Gnd 用户可将用户程序区不用的程序Flash当EEPROM使用 SOP16 16级 16级 16级 16级 DFN8 20 19 18 17 16 15 14 13 12 11 PDIP40 IAP15W413AS 2.5-5.5 13K 512 1 有 2(T0/T2) 3-ch 有 5 10-bit 有 DIP8 有 有 固定 有 是 无 否 否 STC15W401AS系列单片机选型价格一览表,大批量现货供应中 特别提示:3路CCP/PCA/PWM还可当3路定时器使用 2.5-5.5 1K 512 1 有 2(T0/T2) 3-ch 有 5 10-bit 有 5K 有 有 2.5-5.5 2K 512 1 有 2(T0/T2) 3-ch 有 5 10-bit 有 5K 有 有 2.5-5.5 4K 512 1 有 2(T0/T2) 3-ch 有 5 10-bit 有 9K 有 有 2.5-5.5 8K 512 1 有 2(T0/T2) 3-ch 有 5 10-bit 有 5K 有 有 默认使用外部晶振 2.5-5.5 15.5K 512 1 有 2(T0/T2) 3-ch 有 5 如无外部晶振则使 用内部24MHz时钟 封装价格 (RMB ¥) SOP8 有 有 固定 有 是 无 否 否 STC15W201S系列������������������� 单片机选型价格一览表,大批量现货供应中 1K 256 1 - 2(T0/T2) - 有 5 有 4K 有 有 16级 有 是 有 是 是 2K 256 1 - 2(T0/T2) - 有 5 有 3K 有 有 16级 有 是 有 是 是 4K 256 1 - 2(T0/T2) - 有 5 有 1K 有 有 16级 有 是 有 是 是 1 2 3 4 5 6 7 8 9 10 26个I/O SOP28 / SKDIP28 所有封装 LQFP44/PDIP40 LQFP32/QFN32 SOP28/SKDIP28/TSSOP28/QFN28 SOP20/DIP20/TSSOP20 SOP16/DIP16 SOP8/DIP8/DFN8 (现此系列未生产PLCC44和SOP32封装) CMPO/ECI/SS/ADC2/P1.2 MOSI/ADC3/P1.3 MISO/ADC4/P1.4 SCLK/ADC5/P1.5 MCLKO_2/XTAL2/RxD_3/ADC6/P1.6 XTAL1/TxD_3/ADC7/P1.7 CMP-/MCLKO/RST/P5.4 Vcc CMP+/P5.5 Gnd 18个I/O SOP20/DIP20/TSSOP20 比较器可作掉电检测 1组比较器 20 14个I/O SOP16/DIP16 高频PWM:6位/7位/8位 STC15W10x系列���������� 单片机选型价格一览表 串行口功能可由[P3.0/ INT4, P3.1]结合定时器实现 2.5-5.5 0.5K 128 - - 2(T0/T2) - 有 5 有 有 2.5-5.5 1K 128 - - 2(T0/T2) - 有 5 4K 有 有 2.5-5.5 2K 128 - - 2(T0/T2) - 有 5 3K 有 有 2.5-5.5 4K 128 - - 2(T0/T2) - 有 5 1K 有 有 2.5-5.5 2.5-5.5 P5 LQFP44(12mm x 12mm, 强烈推荐) STC15W201S系列,RMB1.15元起 PDIP40(正常生产) P3.3/INT1 1 8 CMP-/MCLKO/RST/P5.4 LQFP32(9mm x 9mm, 推荐) QFN32(5mm x 5mm) Vcc P3.2/INT0 2 7 SOP28(强烈推荐) P3.1/TxD/T2 3 6 CMP+/P5.5 TSSOP28(6.4mm x 9.7mm) Gnd 4 5 P3.0/RxD/INT4/T2CLKO QFN28(5mm x 5mm) SOP-8 SKDIP28(正常生产) SOP20(强烈推荐) STC15W201S系列是目前全球抗干扰最强的Flash型单片机 DIP20(正常生产) 现悬赏 万元人民币寻找比STC15W201S系列抗干扰更强的Flash型单片机 TSSOP20 (6.5mm x 6.5mm) 1 16 CMPO/T0/P1.2 P1.1 SOP16(6mm x 9.9mm, 强烈推荐) 2 15 P1.0/RSTOUT_LOW P1.3 DIP16(正常生产) 3 14 P3.7/INT3/TxD_2 T0CLKO/P1.4 SOP8(强烈推荐) P3.6/INT2/RxD_2 4 13 P1.5 DIP8(正常生产) CMP-/MCLKO/RST/P5.4 P3.3/INT1 5 12 6 11 P3.2/INT0 Vcc DFN8(4mm x 4mm) 隆重推出 P3.1/TxD/T2 CMP+/P5.5 7 10 全部175℃ RMB 0.89元单片机 Gnd P3.0/RxD/INT4/T2CLKO 8 9 8小时高温烘烤 STC15F100W A/D 3路CCP/PCA/PWM PWM可当D/A使用 (高速10位8路) 降低的是成本 IRC15W415AS STC15W404S STC15W408S P4 最多42个I/O 比较 可 程可 串 普通 CCP 掉 支 A/D 器 内部 对 序设 行 定时器 PCA 电 内部 内 持 标准 8路 (可当 高 外 加下 R 口 计数器 PWM 唤 低压 部 Flash 外部 (3路 1路 可靠 输 密次 工作 并 S T0-T2 可当 醒 检测 看 高 更S 程序存 中断 PWM ADC EEP 复位 出 后 电压 可 P 外部 外部 专 中断 门 精 新 4 (可选 储器 支持 可当 使用, ROM 时 传 程 8 (V) 掉 I 管脚 中断 用 并可 狗 准 (byte) 掉电 3路 可作 复位 钟 输序 5 电 也能 并可 定 掉电 时 唤醒 D/A 外部 门槛 及 (防 需 唤 掉电 掉电 时 唤醒 钟 下 使用) 掉电 电压) 复 拦口 醒 唤醒 唤醒 器 载 检测) 位 截) 令 单片机选型价格一览表��� ,另有STC15L系列(工作电压2.4V-3.6V) STC15F100W系列������������� 串行口功能可由[P3.0/ INT4, P3.1]结合定时器实现 5.5-3.8 0.5K 128 - - 2(T0/T2) - 有 5 有 有 8级 有 是 有 是 是 5.5-3.8 1K 128 - - 2(T0/T2) - 有 5 4K 有 有 8级 有 是 有 是 是 5.5-3.8 2K 128 - - 2(T0/T2) - 有 5 3K 有 有 8级 有 是 有 是 是 5.5-3.8 4K 128 - - 2(T0/T2) - 有 5 1K 有 有 8级 有 是 有 是 是 - 2.5-5.5 2.5-5.5 2.5-5.5 P3 + P5.4 / P5.5 大 容 量 S R A M 字 节 2.5-5.5 P2 20万元人民币请专家帮忙查找加密有无漏洞 每片单片机具有全球唯一身份证号码(ID号),无法解密,加密坚不可摧 提升的是性能 ISP编程时可设置 16级复位门槛电压 超高速双串口(UART) 最多6个定时器 分时复用可当5组使用 5.5-3.8 P1 并行端口 P0/P1 P2/P3/P4 超强抗干扰,无法解密 宽电压(2.5V~5.5V) 内置高精准时钟(ISP编程时5~35MHz可任意设置) 内置高可靠复位电路(16级复位门槛电压可设置) 掉电模式: 3% 要更换波特率或者更换晶体频率, 重复步骤 1-4 例: SYSclk = 22.1184MHz, Baud0 = 57600 (12T 模式) 1. RELOAD = 256 - INT( 22118400/57600/32/12 + 0.5) = 256 - INT( 1.5 ) = 256 - 1 = 255 = 0FFH 2. Baud = 22118400/(256-255)/32/12 = 57600 3. 误差等于零 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 291 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 例: SYSclk = 18.432MHz, Baud0 = 57600 (12T 模式) 1. RELOAD = 256 - INT( 18432000/57600/32/12 + 0.5) = 256 - INT( 0.833 + 0.5 ) = 256 - INT( 1.333 ) = 256 - 1 = 255 = 0FFH 2. Baud = 18432000/(256-255)/32/12 = 48000 3. error = (48000 - 57600)/57600 * 100% = -16.66% 4. 误差很大, 要更换波特率或者更换晶体频率, 重新计算请见下一例 例: SYSclk = 18.432MHz, Baud0 = 9600 (12T 模式) 1. RELOAD = 256 - INT( 18432000/9600/32/12 + 0.5) = 256 - INT( 5.5 ) = 256 - 5 = 251 = 0FBH 2. Baud = 18432000/(256-251)/32/12 = 9600 3. 一目了然, 误差等于零 例: SYSclk = 2.000MHz, Baud = 4800 (1T 模式) 1. RELOAD = 256 - INT( 2000000/4800/32 + 0.5) = 256 - INT( 13.02 + 0.5 ) = 256 - INT( 13.52 ) = 256 - 13 = 243 = 0F3H 2. Baud = 2000000/(256-243)/32 = 4808 3. error = 0.16% C T S 292 南通国芯微电子有限公司 U C M . d e t i m Li 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 8.4 STC11/10xx系列单片机串行口在P3口还是在P1口的使用 由AUXR1寄存器设置(PCA/PWM/SPI/UART2)是在P1口还是在P4口 Mnemonic Add Name AUXR1 A2H Auxiliary Register 1 7 6 5 4 3 2 UART_P1 - - - GF2 - 1 0 Reset Value DPS 0xxx,0xx0 UART_P1: 0, 串口/UART在P3 口[RxD/P3.0,TxD/P3.1] 1, 串口/UART在P1 口,将串口从P3口切换到P1 口[RxD/P1.6,TxD/P1.7] 串行口做主机通信时,可控制串口通信在[RxD/P3.0,TxD/P3.1]和[RxD/P1.6 口,TxD/P1.7]之 间任意切换,实现2 组串口。建议用户将自己的串行口设置在[RxD/P1.6 口,TxD/P1.7]而将 [RxD/P3.0,TxD/P3.1]口作为ISP 下载的专用通信口,当然也可以当用户的普通I/O 口用� 。若用 户将[P3.0,P3.1]作串口通信用,则必须在������������������ ISP��������������� 下载程序时选择“下次冷启动时,P1.0/P1.1为0/0 才可下载程序”。 GF2: DPS: 通用标志位 U C M . d e t i m Li 0, 使用缺省数据指针DPTR0 1,使用另一个数据指针DPTR1 C T S 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 293 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 8.5 串行口的测试程序(C程序及汇编程序) 8.5.1 串行口在P3口的测试程序 1. C程序: /*------------------------------------------------------------------------------------*/ /* --- STC MCU International Limited ---------------------------------------*/ /* --- 演示STC 1T 系列单片机串行口功能 (8-bit/9-bit) ----------------*/ /* --- Mobile: (86)13922805190 -----------------------------------------------*/ /* --- Fax: 86-755-82905966 ---------------------------------------------------*/ /* --- Tel: 86-755-82948412 ----------------------------------------------------*/ /* --- Web: www.STCMCU.com -----------------------------------------------*/ /* 如果要在程序中使用或在文章中引用该程序, -------------------- ---*/ /* 请在程序中或文章中注明使用了STC的资料及程序 -----------*/ /*-------------------------------------------------------------------------------------*/ #include "reg51.h" #include "intrins.h" typedef unsigned char typedef unsigned int BYTE; WORD; U C M . d e t i m Li #define FOSC 18432000L #define BAUD 9600 //System frequency //UART baudrate /*Define UART parity mode*/ #define NONE_PARITY 0 #define ODD_PARITY 1 #define EVEN_PARITY 2 #define MARK_PARITY 3 #define SPACE_PARITY 4 //None parity //Odd parity //Even parity //Mark parity //Space parity C T S #define PARITYBIT sbit bit bit9 = P2^2; busy; EVEN_PARITY //Testing even parity //P2.2 show UART data bit9 void SendData(BYTE dat); void SendString(char *s); void main() { #if (PARITYBIT == NONE_PARITY) SCON = 0x50; //8-bit variable UART #elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY) SCON = 0xda; //9-bit variable UART, parity bit initial to 1 #elif (PARITYBIT == SPACE_PARITY) SCON = 0xd2; //9-bit variable UART, parity bit initial to 0 #endif 294 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com TMOD TH1 TR1 ES EA SendString("STC11/10xx\r\nUart Test !\r\n"); while(1); = 0x20; = TL1 = -(FOSC/12/32/BAUD); = 1; = 1; = 1; STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 //Set Timer1 as 8-bit auto reload mode //Set auto-reload vaule //Timer1 start run //Enable UART interrupt //Open master interrupt switch } /*---------------------------UART interrupt service routine ----------------------------*/ void Uart_Isr() interrupt 4 using 1 { if (RI) { RI = 0; P0 = SBUF; bit9 = RB8; } if (TI) { TI = 0; busy = 0; } } /*---------------------------Send a byte data to UART Input: dat (data to be sent) Output:None ----------------------------*/ void SendData(BYTE dat) { while (busy); ACC = dat; if (P) { #if (PARITYBIT == ODD_PARITY) TB8 = 0; #elif (PARITYBIT == EVEN_PARITY) TB8 = 1; #endif } C T S 南通国芯微电子有限公司 . d e t i m Li //Clear receive interrupt flag //P0 show UART data //P2.2 show parity bit U C M //Clear transmit interrupt flag //Clear transmit busy flag //Wait for the completion of the previous data is sent //Calculate the even parity bit P (PSW.0) //Set the parity bit according to P //Set parity bit to 0 //Set parity bit to 1 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 295 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com else { #if (PARITYBIT == ODD_PARITY) TB8 = 1; #elif (PARITYBIT == EVEN_PARITY) TB8 = 0; #endif } busy = 1; SBUF = ACC; } 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 /*---------------------------Send a string to UART Input: s (address of string) Output:None ----------------------------*/ void SendString(char *s) { while (*s) { SendData(*s++); } } C T S 296 南通国芯微电子有限公司 U C M //Set parity bit to 1 //Set parity bit to 0 //Send data to UART buffer . d e t i m Li //Check the end of the string //Send current char and increment string ptr 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 2. 汇编程序: /*------------------------------------------------------------------------------------*/ /* --- STC MCU International Limited ---------------------------------------*/ /* --- 演示STC 1T 系列单片机串行口功能 (8-bit/9-bit) ----------------*/ /* --- Mobile: (86)13922805190 -----------------------------------------------*/ /* --- Fax: 86-755-82905966 ---------------------------------------------------*/ /* --- Tel: 86-755-82948412 ----------------------------------------------------*/ /* --- Web: www.STCMCU.com -----------------------------------------------*/ /* 如果要在程序中使用或在文章中引用该程序, -------------------- ---*/ /* 请在程序中或文章中注明使用了STC的资料及程序 -----------*/ /*-------------------------------------------------------------------------------------*/ ;/*Define UART parity mode*/ #define NONE_PARITY 0 #define ODD_PARITY 1 #define EVEN_PARITY 2 #define MARK_PARITY 3 #define SPACE_PARITY 4 #define PARITYBIT EVEN_PARITY ;----------------------------------------BUSY BIT 20H.0 ;---------------------------------------- ORG 0000H LJMP MAIN C T S //None parity //Odd parity //Even parity //Mark parity //Space parity M CU . d e t i m Li //Testing even parity ;transmit busy flag ORG 0023H LJMP UART_ISR ;---------------------------------------- ORG 0100H MAIN: CLR BUSY CLR EA MOV SP, #3FH #if (PARITYBIT == NONE_PARITY) MOV SCON, #50H ;8-bit variable UART #elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY) MOV SCON, #0DAH ;9-bit variable UART, parity bit initial to 1 #elif (PARITYBIT == SPACE_PARITY) MOV SCON, #0D2H ;9-bit variable UART, parity bit initial to 0 #endif ;------------------------------- 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 297 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 MOV TMOD, #20H ;Set Timer1 as 8-bit auto reload mode MOV A, #0FBH ;256-18432000/12/32/9600 MOV TH1, A ;Set auto-reload vaule MOV TL1, A SETB TR1 ;Timer1 start run SETB ES ;Enable UART interrupt SETB EA ;Open master interrupt switch ;------------------------------ MOV DPTR, #TESTSTR ;Load string address to DPTR LCALL SENDSTRING ;Send string ;------------------------------ SJMP $ ;----------------------------------------TESTSTR: ;Test string DB "STC11/10xx Uart Test !", 0DH,0AH,0 ;/*---------------------------;UART2 interrupt service routine ;----------------------------*/ UART_ISR: PUSH ACC PUSH PSW JNB RI, CHECKTI CLR RI MOV P0, SBUF MOV C, RB8 MOV P2.2, C CHECKTI: JNB TI, ISR_EXIT CLR TI CLR BUSY ISR_EXIT: POP PSW POP ACC RETI C T S U C M ;/*---------------------------;Send a byte data to UART ;Input: ACC (data to be sent) ;Output:None ;----------------------------*/ SENDDATA: JB BUSY, $ MOV ACC, A JNB P, EVEN1INACC 298 南通国芯微电子有限公司 . d e t i m Li ;Check RI bit ;Clear RI bit ;P0 show UART data ;P2.2 show parity bit ;Check S2TI bit ;Clear S2TI bit ;Clear transmit busy flag ;Wait for the completion of the previous data is sent ;Calculate the even parity bit P (PSW.0) ;Set the parity bit according to P 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com ODD1INACC: #if (PARITYBIT == ODD_PARITY) CLR TB8 #elif (PARITYBIT == EVEN_PARITY) SETB TB8 #endif SJMP PARITYBITOK EVEN1INACC: #if (PARITYBIT == ODD_PARITY) SETB TB8 #elif (PARITYBIT == EVEN_PARITY) CLR TB8 #endif PARITYBITOK: SETB BUSY MOV SBUF, A RET C T S 南通国芯微电子有限公司 ;Set parity bit to 0 ;Set parity bit to 1 ;Set parity bit to 1 ;Set parity bit to 0 . d e t i m ;Parity bit set completed Li ;Send data to UART buffer U C M ;/*---------------------------;Send a string to UART ;Input: DPTR (address of string) ;Output:None ;----------------------------*/ SENDSTRING: CLR A MOVC A, @A+DPTR JZ STRINGEND INC DPTR LCALL SENDDATA SJMP SENDSTRING STRINGEND: RET ;---------------------------------------- END STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 ;Get current char ;Check the end of the string ;increment string ptr ;Send current char ;Check next 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 299 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 8.5.2 串行口在P1口的测试程序 1. C程序: /*------------------------------------------------------------------------------------*/ /* --- STC MCU International Limited ---------------------------------------*/ /* --- 演示 STC10/11xx 系列单片机串行口功能 (8-bit/9-bit) ----------------*/ /* --- Mobile: (86)13922805190 -----------------------------------------------*/ /* --- Fax: 86-755-82905966 ---------------------------------------------------*/ /* --- Tel: 86-755-82948412 ----------------------------------------------------*/ /* --- Web: www.STCMCU.com -----------------------------------------------*/ /* 如果要在程序中使用或在文章中引用该程序, -------------------- ---*/ /* 请在程序中或文章中注明使用了STC的资料及程序 -----------*/ /*-------------------------------------------------------------------------------------*/ #include "reg51.h" #include "intrins.h" typedef unsigned char typedef unsigned int BYTE; WORD; U C M . d e t i m Li #define FOSC 18432000L #define BAUD 9600 //System frequency //UART baudrate /*Define UART parity mode*/ #define NONE_PARITY 0 #define ODD_PARITY 1 #define EVEN_PARITY 2 #define MARK_PARITY 3 #define SPACE_PARITY 4 //None parity //Odd parity //Even parity //Mark parity //Space parity C T S #define PARITYBIT sfr AUXR1 = #define UART_P1 sbit bit bit9 = P2^2; busy; EVEN_PARITY //Testing even parity 0xA2; 0x80 //(AUXR1.7) switch RXD/TXD from P3.0/P3.1 to P1.6/P1.7 //P2.2 show UART data bit9 void SendData(BYTE dat); void SendString(char *s); void main() { AUXR1 |= UART_P1; //switch RXD/TXD from P3.0/P3.1 to P1.6/P1.7 #if (PARITYBIT == NONE_PARITY) SCON = 0x50; //8-bit variable UART #elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY) 300 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 SCON = 0xda; #elif (PARITYBIT == SPACE_PARITY) SCON = 0xd2; #endif //9-bit variable UART, parity bit initial to 1 //Set Timer1 as 8-bit auto reload mode //Set auto-reload vaule //Timer1 start run //Enable UART interrupt //Open master interrupt switch TMOD = 0x20; TH1 = TL1 = -(FOSC/12/32/BAUD); TR1 = 1; ES = 1; EA = 1; SendString("STC10/11xx\r\nUart Test !\r\n"); while(1); //9-bit variable UART, parity bit initial to 0 . d e t i m } /*---------------------------UART interrupt service routine ----------------------------*/ void Uart_Isr() interrupt 4 using 1 { if (RI) { RI = 0; P0 = SBUF; bit9 = RB8; } if (TI) { TI = 0; busy = 0; } } C T S /*---------------------------Send a byte data to UART Input: dat (data to be sent) Output:None ----------------------------*/ void SendData(BYTE dat) { while (busy); ACC = dat; 南通国芯微电子有限公司 U C M Li //Clear receive interrupt flag //P0 show UART data //P2.2 show parity bit //Clear transmit interrupt flag //Clear transmit busy flag //Wait for the completion of the previous data is sent //Calculate the even parity bit P (PSW.0) 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 301 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com if (P) { #if (PARITYBIT == ODD_PARITY) TB8 = 0; #elif (PARITYBIT == EVEN_PARITY) TB8 = 1; #endif } else { #if (PARITYBIT == ODD_PARITY) TB8 = 1; #elif (PARITYBIT == EVEN_PARITY) TB8 = 0; #endif } busy = 1; SBUF = ACC; } 302 南通国芯微电子有限公司 研发顾问Tel:13922805190 //Set the parity bit according to P //Set parity bit to 0 //Set parity bit to 1 //Set parity bit to 1 . d e t i m //Set parity bit to 0 Li //Send data to UART buffer U C M /*---------------------------Send a string to UART Input: s (address of string) Output:None ----------------------------*/ void SendString(char *s) { while (*s) { SendData(*s++); } } C T S 临时技术支持Tel:13922829991 //Check the end of the string //Send current char and increment string ptr 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 2. 汇编程序: /*------------------------------------------------------------------------------------*/ /* --- STC MCU International Limited ---------------------------------------*/ /* --- 演示STC 1T 系列单片机串行口1功能 (8-bit/9-bit) ----------------*/ /* --- Mobile: (86)13922805190 -----------------------------------------------*/ /* --- Fax: 86-755-82905966 ---------------------------------------------------*/ /* --- Tel: 86-755-82948412 ----------------------------------------------------*/ /* --- Web: www.STCMCU.com -----------------------------------------------*/ /* 如果要在程序中使用或在文章中引用该程序, -------------------- ---*/ /* 请在程序中或文章中注明使用了STC的资料及程序 -----------*/ /*-------------------------------------------------------------------------------------*/ AUXR1 UART_P1 EQU EQU 0A2H 80H ;/*Define UART parity mode*/ #define NONE_PARITY 0 #define ODD_PARITY 1 #define EVEN_PARITY 2 #define MARK_PARITY 3 #define SPACE_PARITY 4 C T S Li //None parity //Odd parity //Even parity //Mark parity //Space parity U C M #define PARITYBIT EVEN_PARITY ;----------------------------------------BUSY BIT 20H.0 ;---------------------------------------- ORG 0000H LJMP MAIN ORG 0023H LJMP UART_ISR ;---------------------------------------- ORG 0100H MAIN: ORL AUXR1,#UART_P1 . d e t i m //(AUXR1.7) switch RXD/TXD from P3.0/P3.1 to P1.6/P1.7 //Testing even parity ;transmit busy flag ;switch RXD/TXD from P3.0/P3.1 to P1.6/P1.7 CLR BUSY CLR EA MOV SP, #3FH #if (PARITYBIT == NONE_PARITY) MOV SCON, #50H ;8-bit variable UART #elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY) MOV SCON, #0DAH ;9-bit variable UART, parity bit initial to 1 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 303 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com #elif (PARITYBIT == SPACE_PARITY) MOV SCON, #0D2H #endif ;------------------------------- MOV TMOD,#20H MOV A,#0FBH MOV TH1,A MOV TL1,A SETB TR1 SETB ES SETB EA ;------------------------------ MOV DPTR, #TESTSTR LCALL SEND STRING ;------------------------------ SJMP $ ;----------------------------------------TESTSTR: DB "STC10/11xx Uart Test !",0DH,0AH,0 304 南通国芯微电子有限公司 研发顾问Tel:13922805190 ;9-bit variable UART, parity bit initial to 0 ;Set Timer1 as 8-bit auto reload mode ;256-18432000/12/32/9600 ;Set auto-reload vaule ;Timer1 start run ;Enable UART interrupt ;Open master interrupt switch . d e t i m ;Load string address to DPTR ;Send string U C M ;/*---------------------------;UART2 interrupt service routine ;----------------------------*/ UART_ISR: PUSH ACC PUSH PSW JNB RI, CHECKTI CLR RI MOV P0, SBUF MOV C, RB8 MOV P2.2, C CHECKTI: JNB TI, ISR_EXIT CLR TI CLR BUSY ISR_EXIT: POP PSW POP ACC RETI C T S 临时技术支持Tel:13922829991 Li ;Test string ;Check RI bit ;Clear RI bit ;P0 show UART data ;P2.2 show parity bit ;Check S2TI bit ;Clear S2TI bit ;Clear transmit busy flag 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com ;/*---------------------------;Send a byte data to UART ;Input: ACC (data to be sent) ;Output:None ;----------------------------*/ SENDDATA: JB BUSY, $ MOV ACC, A JNB P, EVEN1INACC ODD1INACC: #if (PARITYBIT == ODD_PARITY) CLR TB8 #elif (PARITYBIT == EVEN_PARITY) SETB TB8 #endif SJMP PARITYBITOK EVEN1INACC: #if (PARITYBIT == ODD_PARITY) SETB TB8 #elif (PARITYBIT == EVEN_PARITY) CLR TB8 #endif PARITYBITOK: ;Parity bit set completed SETB BUSY MOV SBUF, A RET C T S 南通国芯微电子有限公司 ;Wait for the completion of the previous data is sent ;Calculate the even parity bit P (PSW.0) ;Set the parity bit according to P ;Set parity bit to 0 . d e t i m ;Set parity bit to 1 U C M ;/*---------------------------;Send a string to UART ;Input: DPTR (address of string) ;Output:None ;----------------------------*/ SENDSTRING: CLR A MOVC A, @A+DPTR JZ STRINGEND INC DPTR LCALL SENDDATA SJMP SENDSTRING STRINGEND: RET ;---------------------------------------- END STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 Li ;Set parity bit to 1 ;Set parity bit to 0 ;Send data to UART buffer ;Get current char ;Check the end of the string ;increment string ptr ;Send current char ;Check next 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 305 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 8.6 双机通信 STC11/10xx系列单片机的串行通信根据其应用可分为双机通信和多机通信两种。下面先介 绍双机通信。 如果两个8051应用系统相距很近,可将它们的串行端口直接相连(TXD—RXD,RXD— 地),即可实现双机通信。为了增加通信距离,减少通道及电源干扰, TXD,GND—GND—������������������������������� 可采用RS—232C或RS—422、RS—485标准进行双机通信,两通信系统之间采用光����� —���� 电隔离技 术,以减少通道及电源的干扰,提高通信可靠性。 8051 TxD RxD RxD TxD GND GND U C M . d e t i m 8051 Li 为确保通信成功,通信双方必须在软件上有系列的约定通常称为软件通信������� “������ 协议���� ”��� 。现举 例简介双机异步通信软件������� “������ 协议���� ”��� 如下: C T S 通信双方均选用2400波特的传输速率,设系统的主频SYSclk=6MHz,甲机发送数据,乙机 接收数据。在双机开始通信时,先由甲机发送一个呼叫信号(例如� “06H”�������� ),以询问乙机是 否可以接收数据;乙机接收到呼叫信号后,若同意接收数据,则发回� “00H”������� 作为应答信号, 否则发� “05H”��������������������������� 表示暂不能接收数据,;甲机只有在接收到乙机的应答信号� “00H”���� 后才可将 存储在外部数据存储器中的内容逐一发送给乙机,否则继续向乙机发呼叫信号,直到乙机同意 接收。其发送数据格式如下: 字节数n 数据1 数据2 数据3 … 数据n 累加校验和 字节数n:甲机向乙机发送的数据个数; 数据1~数据n:甲机将向乙机发送的n帧数据; 累加校验和:为字节数n、数据1、���� …��� 、数据n,这(n+1)个字节内容的算术累加和. 乙机根据接收到的������������ “����������� 校验和�������� ”������� 判断已接收到的n个数据是否正确。若接收正确,向甲机回发 “0FH”信号,否则回发“F0H”信号。甲机只有在接收到乙机发回的� “0FH”��������� 信号才算完成发送任 务,返回被调用的程序,否则继续呼叫,重发数据。 不同的通信要求,软件����������������������������� “���������������������������� 协议�������������������������� ”������������������������� 内容也不一样,有关需甲、乙双方共同遵守的约定应尽量 完善,以防止通信不能正确判别而失败。 STC11/10xx系列单片机的串行通信,可直接采用查询法,也可采用自动中断法。 306 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 (1)������������ 查询方式双机通信软件举例 ①�������� 甲机发送子程序段 下图为甲机发送子程序流程图。 开始 定时器,串行口初始化 发送数据 地址指针DPTR,长度计数器 R7,校验寄存器R6置初值 发送完否? N Y . d e t i m 发送校验和 发送呼叫信号06H Li 等待乙机回答 CU 等待乙机回答 N 是00H? C T S Y 发字节长度数 M N 传送正确吗? Y 返回 甲机发送程序设置: (a) �������������������������������������������� 波特率设置:选用定时器��������������������������������� /�������������������������������� 计数器����������������������������� 1���������������������������� 定时模式、工作方式������������������� 2������������������ ,计数常数������������� F3H���������� ,��������� SMOD=1��� 。波 特率为���������� 2400������ (位���� /��� 秒); (b) �������������������� 串行通信设置:异步通信方式������� 1������ ,允许接收; (c) 内部������������������������������������������ �������������������������������������������� RAM��������������������������������������� 和工作寄存器设置:������������������������������ 31H��������������������������� 和�������������������������� 30H����������������������� 单元存放发送的数据块首地址;��������� 2FH������ 单元存放 发送的数据块个数;���������� R6�������� 为累加和寄存器。 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 307 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 甲机发送子程序清单: START: MOV MOV MOV MOV MOV SETB ST-RAM: MOV MOV MOV MOV TX-ACK: MOV MOV WAIT1: JBC SJMP RX-YES: JBC SJMP NEXT1: MOV CJNE TX-BYT: MOV TMOD,#20H TH1, #0F3H TL1, #0F3H SCON, #50H PCON, #80H TR1 ;设置定时器/计数器1定时、工作方式2 ;设置定时计数常数 ; ;串口初始化 ;设置SMOD=1 ;启动定时 DPH, DPL, R7, R6, 31H 30H 2FH #00H ;设置外部RAM数据指针 ;DPTR初值 ;发送数据块数送R7 ;累加和寄存器R6清0 A, #06H ; SBUF, A ; T1, WAIT1 ;等待发送完呼叫信号 ;未发送完转WATI1 RX – YES RI, NEXT1 RX-YES C T S . d e t i m Li 发送呼叫信号“06H” U C M ;判断乙机回答信号 ;未收到回答信号,则等待 A, A, SBUF ;接收回答信号送A #00H, TX-ACK ;判断是否“00H”,否则重发呼叫信号 A, R7 ; MOV SBUF, ADD A, MOV R6, WAIT2: JBC TI, A R6 A ; 发送数据块数n TX-NES ; JMP TX-NES: MOVX MOV ADD MOV INC WAIT2 ; 等待发送完 A, SBUF, A, R6, DPTR @DPTR A R6 A ;从外部RAM取发送数据 ;发送数据块 308 南通国芯微电子有限公司 ;DPTR指针加1 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 WAIT3: JBC SJMP NEXT2: DJNZ TX-SUM: MOV MOV WAIT4: JBC TI, 官方网站:www.STCMCU.com TI, WAIT3 NEXT2 ;判断一数据块发送完否 ;等待发送完 R7, TX-NES ;判断发送全部结束否 A, R6 SBUF, A ;发送累加和给乙机 RX-0FH ; SJMP RX-0FH: JBC WAIT4 ; 等待发送完 SJMP IF-0FH: MOV RX-0FH CJNE RET STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 RI, A, A, IF-0FH SBUF; . d e t i m ; ; 等待接收乙机回答信号 ; Li #0FH, ST-RAM ; 判断传输是否正确,否则重新发送 ;返回 C T S U C M 乙机接收子程序段 接收程序段的设置: (a) ��������������� 波特率设置初始化:同发送程序; (b) �������������� 串行通信初始化:同发送程序; (c) ������ 寄存器设置: 内部RAM 31H、30H单元存放接收数据缓冲区首地址。 R7——数据块个数寄存器。 R6——累加和寄存器。 (d) ��������� 向甲机回答信号:“0FH”为接收正确,“F0H”为传送出错,“00H”为同意接收数 据,“05H”为暂不接收。 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 309 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 下图为双机通信查询方式乙机接收子程序流程图。 开始 定时器,串行口初始化 接收数据并存入RAM 地址指针DPTR赋值, 校验寄存器清0 地址指针DPTR加1 数据接收完否? N Y . d e t i m 接收呼叫信号 接收校验和 是06H? Y N 向甲机回送15H 向甲机回送00H C T S 接收数据块长度 Li 传送正确吗? U C M Y N 向甲机回送F0H 向甲机回送0FH 返回 接收子程序清单: TART: MOV MOV ; TL1, #0F3H TR1 SCON, #50H ; 定时器/计数器1设置 ;启动定时器/计数器1 ; 置串行通信方式1,允许接收 MOV ST-RAM: MOV PCON, #80H ; SMOD置位 DPH, 31H ; DPL, 30H R6, #00H ; 设置DPTR首地址 ;校验和寄存器清0 310 MOV SETB MOV TMOD, #20H TH1, #0F3H MOV MOV 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 RX-ACK: JBC RI, IF-06H SJMP RX-ACK MOV A, CJNEA #06H, TX-05H ;判断接收呼叫信号 ;等待接收呼叫信号 IF-06H: SBUF ;呼叫信号送A ;判断呼叫信号正确否? TX-00H: MOV A, #00H MOV WAIT1: SBUF, A JBC TI, SJMP WAIT1 ; ; RX-BYS 向甲机发送“00H”,同意接收 ;等待应答信号发送完 TX-05H: MOV A, #05H MOV SBUF, A ;不正确信号 WAIT2:  JBC TI, HAVE1 C T S LJMP RX-ACK RX-BYS: JBC SJMP WAIT2 HAVE1:  RI, Li U C M ;等待发送完 ;因呼叫错,返回重新接收呼叫 HAVE2 SJMP RX-BYS . d e t i m ;向甲机发送“05H”呼叫 ;等待接收数据块个数 ; HAVE2: MOV A, SBUF ; MOV R7, A ;数据块个数帧送R7,R6 MOV R6, A ; RX-NES: JBC RI, HAVE3 SJMP RX-NES HAVE3: A, ; MOV MOVX @DPTR,A INC DPTR ADD A, R6 MOV DJNZ R6, R7, A RX-NES 南通国芯微电子有限公司 ; SBUF 接收数据帧 ; ;接收到的数据存入外部RAM ; ; ; 形成累加和 ;判断数据是否接收完 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 311 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 RX-SUM: JBC RI, HAVE4 SJMP RX-SUM HAVE4: ; ; MOV A, SBUF CJNE TX-RIT: A, R6, MOV A, #0FH MOV WAIT3: JBC SJMP TX-ERR: MOV A, MOV SBUF, A JBC TI, ; ; ; #0F0H LJMP GOOD: AGAIN SJMP WAIT4 AGAIN: RET C T S ST-RAM ; WAIT4: ; GOOD WAIT3 TX-ERR ; SBUF, A TI, 判断传输是否正确 向甲机发送接收正确信息 . d e t i m 等待发送结束 Li ;向甲机发送传输有误信号 U C M 等待接收校验和 ;等待发送完 ;返回重新开始接收 ;传输正确返回 (2)中断方式双机通信软件举例 在很多应用场合,双机通信的双方或一方采用中断方式以提高通信效率。由于STC11/10xx 系列单片机的串行通信是双工的,且中断系统只提供一个中断矢量入口地址,所以实际上是中 断和查询必须相结合,即接收/发送均可各自请求中断,响应中断时主机并不知道是谁请求中 断,统一转入同一个中断矢量入口,必须由中断服务程序查询确定并转入对应的服务程序进行 处理。 这里,任以上述协议为例,甲方(发送方)任以查询方式通信(从略),乙方(接收方) 则改用中断���������� —��������� 查询方式进行通信。 在中断接收服务程序中,需设置三个标志位来判断所接收的信息是呼叫信号还是数据块个 数,是数据还是校验和。增设寄存器:内部RAM32H单元为数据块个数寄存器,33H单元为校 验和寄存器,位地址7FH、7EH、7DH为标志位。 312 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 乙机接收中断服务程序清单 采用中断方式时,应在主程序中安排定时器/计数器、串行通信等初始化程序。通信接收的数据存放在外 部RAM的首地址也需在主程序中确定。 主程序: ORG AJMP START ORG 0023H LIMP SERVE 0000H ;转至主程序起始处 ;转中断服务程序处 · · · . d e t i m START: MOV TMOD, #20H MOV TH1, #0F3H MOV MOV TL1, #0F3H SCON, #50H MOV PCON, #80H SETB TR1 SETB 7FH SETB 7EH SETB 7DH MOV 31H,#10H MOV MOV SETB SETB 30H,#00H 33H,#00H EA ES C T S ;定义定时器/计数器1定时、工作方式2 ; Li ; 设置波特率为2400位/秒 ;设置串行通信方式1,允许接收 U C M ;设置SMOD=1 ;启动定时器 ; ;设置标志位为1 ; ; 规定接收的数据存储于外部RAM的 ; 起始地址1000H ;累加和单元清0 ; ; 开中断 · · · 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 313 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 中断服务程序: SERVE: CLR EA ;关中断 CLR RI ;清除接收中断请求标志 PUSH DPH ; PUSH DPL ; 现场保护 PUSH A JB 7FH, RXACK ;判断是否是呼叫信号 JB 7EH, RXBYS ;判断是否是数据块数据 JB 7DH, RXDATA ;判断是否是接收数据帧 MOV A, ;接收到的校验和 CJNE A, 33H, TXERR :判断传输是否正确 MOV A, ; ; RXSUM: SBUF TXRI: MOV WAIT1: #0FH SBUF, A JNB TI, WAITI CLR TI SJMP AGAIN TXERR: MOV MOV WAIT2: C T S A, SBUF, A JNB TI, CLR TI SJMP AGAIN ;等待发送完毕 ;转结束处理 ; ; WAIT2 Li 向甲机发送接收正确信号“0FH” ;清除发送中断请求标志位 #0F0H U C M ; . d e t i m 向甲机发送接收出错信号“F0H” ;等待发送完毕 ;清除发送中断请求标志 ;转结束处理 RXACK: MOV A, SBUF ;判断是否是呼叫信号“06H” XRL A, #06H ;异或逻辑处理 JZ TXREE ;是呼叫,则转TXREE TXNACK: 314 MOV A, #05H MOV SBUF, A 南通国芯微电子有限公司 ;接收到的不是呼叫信号,则向甲机发送 ;“05H”,要求重发呼叫 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 WAIT3: JNB TI, CLR TI SJMP RETURN WAIT3 ; 等待发送结束 ;转恢复现场处理 TXREE: MOV A, MOV SBUF, A #00H JNB TI, CLR TI CLR 7FH SJMP RETURN ;接收到的是呼叫信号,发送“00H” ;接收到的是呼叫信号,发送“00H” WAIT4: WAIT4 ;等待发送完毕 ;清除TI标志 ;清除呼叫标志 MOV A, MOV 32H, A ADD A, MOV CLR 33H, A 7EH SJMP RETURN SBUF 33H U C M ; Li ; 形成累加和 ;清除数据块数标志 ;转恢复现场处理 MOV DPH, 31H MOV MOV DPL, 30H A, SBUF ;接收到数据块数 ;存入32H单元 C T S RXDATA: ; MOVX @DPTR, A INC DPTR MOV 31H, DPH MOV ADD 30H, DPL A, 33H MOV DJNZ 33H, A 32H, RETURN ; 形成累加和 ;判断数据接收完否 CLR 7DH ;清数据接收完标志 SJMP RETURN 南通国芯微电子有限公司 ; 设置存储数据地址指针 ;读取数据帧 ;将数据存外部RAM . d e t i m ;转恢复现场处理 RXBYS: ;地址指针加1 ; ; ; 保存地址指针值 ;转恢复现场处理 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 315 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 AGAIN: SETB 7FH ; SETB 7EH ;恢复标志位 SETB 7DH ; MOV 33H, #00H ;累加和单元清0 MOV 31H, #10H ; 30H, ; ; MOV RETURN: POP A POP DPL POP DPH SETB EA RET1 #00H 恢复接收数据缓冲区首地址 ;恢复现场 ; . d e t i m ;开中断 ;返回 U C M Li 上述程序清单中,ORG为程序段说明伪指令,在程序汇编时,它向汇编程序说明该程序段 的起始地址。 在实际应用中情况多种多样,而且是两台独立的计算机之间进行信息传输。因此,应周密 考虑通信协议,以保证通信的正确性和成功率 C T S 316 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 8.7 多机通信 在很多实际应用系统中,需要多台微计算机协调工作。STC11/10xx系列单片机的串行通 信方式2和方式3具有多机通信功能,可构成各种分布式通信系统。下图为全双工主从式多机 通信系统的连接框图。 STC MCU TxD RxD 主机 TxD TxD RxD STC MCU 从机1 STC MCU 从机2 U C M . d e t i m Li RxD TxD … RxD STC MCU 从机n 上图为一台主机和几台从机组成的全双工多机通信系统。主机可与任一台从机通信,而从 机之间的通信必须通过知己转发。 C T S (1)��������� 多机通信的基本原理 在多机通信系统中,为保证主机(发送)与多台从机(接收)之间能可靠通信,串行通 信必须具备识别能力。����������������������������������� MCS-51����������������������������� 系列单片机的串行通信控制寄存器�������������� SCON���������� 中设有多机通信选择位 SM2�������������������������������������������� 。当程序设置�������������������������������������� SM2=1��������������������������������� ,串行通信工作于方式����������������������� 2���������������������� 或方式������������������� 8������������������ ,发送端通过对����������� TB8�������� 的设置以区别于发 送的是地址帧(������������������������������������������� TB8=1�������������������������������������� )还是数据帧(������������������������������� TB8=0�������������������������� ),接收端通过对接收到��������������� RB8������������ 进行识别:当������ SM2=1� , 若接收到��������������������������������������������� RB8=1���������������������������������������� ,则被确认为呼叫地址帧,将该帧内容装入��������������������� SBUF����������������� 中,并置位������������ RI=1�������� ,向������ CPU��� 请求中 断,进行地址呼叫处理;若���������������������������������� RB8=0����������������������������� 为数据帧,将不予理睬,接收的信息被丢弃。若�������� SM2=0��� ,则无 论是地址帧还是数据帧均接收,并置位����������������������������� RI=1������������������������� ,向����������������������� CPU�������������������� 请求中断,将该帧内容装入�������� SBUF���� 。据此原 理,可实现多机通信。 对于上图的从机式多机通信系统,从机的地址为�������������������� 0������������������� ,������������������ 1����������������� ,���������������� 2��������������� ,�������������� …������������� ,������������ n����������� 。实现多机通信的过程如 下: ① ����������������������� 置全部从机的����������������� SM2=1������������ ,处于只接收地址帧状态。 ② ������������������������������������� 主机首先发送呼叫地址帧信息,将���������������������� TB8������������������� 设置为���������������� 1��������������� ,以表示发送的是������� 呼叫地址帧。 ������ ③ ������������������������������������ 所有从机接收到呼叫地址帧后,各自将接收到的主机呼叫的地址与本机的地址相比 较:若比较结果相等,则为被寻址从机,清除����������������������� SM2=0������������������ ,准备接收从主机发送的数据帧,直至全 部数据传输完;若比较不相等,则为非寻址从机,任维持������������������ SM2=1������������� 不变,对其后发来的数据帧不 予理睬,即接收到的数据帧内容不装入���������������������������� SBUF������������������������ ,不置位,������������������� RI=0��������������� ,不会产生中断请求,直至被寻址 为止。 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 317 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 ④ ����������������������������� 主机在发送完呼叫地址帧后,接着发送一连串的数据帧,其中的� TB8=0�������������� ,以表示为数据帧。����� ⑤ ����������������������������� 当主机改变从机通信时间则再发呼叫地址帧,寻呼其他从机,原先 被寻址的从机经分析得知主机在寻呼其他从机时,恢复其���������������� SM2=1����������� ,对其后主机发送的数据 帧不予理睬。 上述过程均在软件控制下实现。 (2)�������� 多机通信协议简述 由于串行通信是在二台或多台各自完全独立的系统之间进行信息传 ����������������������������� 输这就需要根据时间通信要求制定某些约定,作为通信规范遵照执行,协议要求严格、完 善,不同的通信要求,协议的内容也不相同。在多机通信系统中要考虑的问题较多,协议内容 比较复杂。这里仅例举几条作一说明。 . d e t i m Li 上图的主从式多机通信系统,允许配置���������������� 255������������� 台从机,各从机的地址分别为00H~FEH。 ① ������������������������������������������ 约定地址�������������������������������������� FFH����������������������������������� 为全部从机的控制命令,命令各从机恢复����������������� SM2=1������������ 状态,准备接收主机的地 址呼叫。 ② �������������������������������������� 主机和从机的联络过程约定:主机首先发送地址呼叫帧,被寻址的从机回送本机地址 给主机,经验证地址相符后主机再向被寻址的从机发送命令字,被寻址的从机根据命 令字要求回送本机的状态,若主机判断状态正常,主机即开始发送或接收数据帧,发 送或接收的第一帧为传输数据块长度。 U C M C T S ③ ������������ 约定主机发送的命令字为: 00H����������� :要求从机接收数据块; 01H����������� :要求从机发送数据块; · · · 其他:非法命令。 ④ ������������ 从机的状态字格式约定为: B7 B6 B5 B4 B3 B2 B1 B0 ERR 0 0 0 0 0 TRDY RRDY ��������������������� 定义: 若���������������� ERR=1����������� ,从机接收到非法命令; ����������������� 若���������������� TRDY=1���������� ,从机发送准备就绪; ����������������� 若���������������� RRDY=1���������� ,从机接收准备就绪; ⑤ ������������ 其他:如传输出错措施等。 318 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 (3)���� 程序举例 在实际应用中如传输波特率不太高,系统实时性有一定要求以及希望提高通信效率,则 �������������������������������������� 多半采用中断控制方式,但程序调试较困难,这就要求提高程序编制的正确性。采用查询方 式,则程序调试较方便。这里仅以中断控制方式为例简单介绍主������������� —������������ 从机之间一对一通信软件。 ① ������ 主机发送程序 该主机要发送的数据存放在内部����������������������������� RAM�������������������������� 中,数据块的首地址为���������������� 51H������������� ,数据块长度存放做���� 50H� 单 元中,有关发送前的初始化、参数设置等采用子程序格式,所有信息发送均由中断服务程序完 成。当主机需要发送时,在完成发送子程序的调用之后,随即返回主程序继续执行。以后只需 查询��������������������������� PSW·5���������������������� 的��������������������� F0������������������� 标志位的状态即可知道数据是否发送完毕。 要求主机向��������������������� #5������������������� 从机发送数据,中断服务程序选用工作寄存存器区1的R0~R7。 . d e t i m 主机发送程序清单: ORG AJMP MAIN ORG 0023H ;发送中断服务程序入口 LJMP SERVE ;转中断服务程序 0000H Li . . . MAIN: ... C T S ... . . . ORG 1000H TXCALL: ;转主程序 U C M ;主程序 ;发送子程序入口 MOV TMOD, #20H MOV TH1, #0F3H ;设置波特率为2400位/秒 MOV TL1, #0F3H ;置位SMOD ;设置定时器/计数器1定时、方式2 MOV PCON, #80H SETB TR1 MOV SCON, #0D8H SETB EA ;开中断总控制位 CLR ES ;禁止串行通信中断 ; ;启动定时器/计数器1 ;串行方式8,允许接收,TB8=1 TXADDR: MOV SBUF, #05H JNB TI, CLR TI ;发送呼叫从机地址 WAIT1: 南通国芯微电子有限公司 WAIT1 ;等待发送完毕 ;复位发送中断请求标志 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 319 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 RXADDR: JNB RI, CLR TI MOV A, SBUF CJNE A, #05H, TXADDR CLR TB8 CLR PSW.5 RXADDR ;等待从机回答本机地址 ;复位接收中断请求标志 ;读取从机回答的本机地址 ;判断呼叫地址符否,否则重发 ;地址相符,复位TB8=0,准备发数据 ;复位F0=0标志位 MOV 08H, #50H ;发送数据地址指针送R0 MOV 0CH, 50H ;数据块长度送R4 INC 0CH SETB ES RET ;数据块长度加1 ;允许串行通信中断 SERVE: CLR TI U C M PUSH PSW PUSH A CLR RS1 Li ;中断服务程序段,清中断请求标志TI ; ; ; ; C T S . d e t i m ;返回主程序 . . . 现场入栈保护 SETB TXDATA: RS0 MOV SBUF, @R0 JNB TI, CLR TI ;复位TI=0 INC R0 ;地址指针加1 DJNZ R4, SETB PSW.5 ;已发送完毕置位F0=1 CLR ES ;关闭串行中断 WAIT2: WAIT2 RETURN 选择工作寄存器区1 ;发送数据块长度及数据 ;等待发送完毕 ;数据块未发送完,转返回 RETURN: POP A POP RETI PSW 320 南通国芯微电子有限公司 ; ; 恢复现场 ;返回 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 ②������ 从机接收程序 主机发送的地址呼叫帧,所有的从机均接收,若不是呼叫本机地址即从中断返回;若是 本机地址,则回送本机地址给主机作为应答,并开始接收主机发送来的数据块长度帧,并存放 于内部RAM的60H单元中,紧接着接收的数据帧存放于61H为首地址的内部RAM单元中,程序 中还选用20·0H、20·1H位作标志位,用来判断接收的是地址、数据块长度还是数据,选用了 2FH、2EH两个字节单元用于存放数据字节数和存储数据指针。#5从机的接收程序如下,供参 考。 #5从机接收程序清单: ORG AJMP START 0000H ORG 0023H LJMP SERVE ORG 0100H ;转主程序段 ;从中断入口转中断服务程序 START: MOV TMOD, #20H MOV TH1, #0F3H MOV TL1, #0F3H MOV PCON, #80H C T S MOV SCON, #0F0H SETB TR1 SETB U C M . d e t i m Li ;主程序段:初始化程序,设置定时 ;器/计数器1定时、工作方式2,设 ;置波特率为2400位/秒的有关初值 ;置位SMOD ;设置串行方式3,允许接收,SM2=1 ;启动定时器/计数器1 20·0 ; SETB SETB 20·1 EA ; ; 置标志位为1 SETB . . . ES ; 开中断 ORG 1000H ;清接收中断请求标志RI=0 ; SERVE: CLR RI PUSH A PUSH PSW CLR RS1 SETB JB RS0 20·0H, ISADDR ; 选择工作寄存器区1 ;判断是否是地址帧 JB 20·1H, ISBYTE ;判断是否是数据块长度帧 南通国芯微电子有限公司 ; ; 现场保护 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 321 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 ISDATA: MOV R0, 2EH MOV A, SBUF MOV @R0, A INC 2EH DJNZ 2FH, RETURN SETB 20·0H ; SETB 20·1H ;恢复标志位 SETB SM2 SJMP RETURN ;数据指针送R0 ;接收数据 ;数据指针加1 ;判断数据接收完否? ; ;转入恢复现场,返回 ISADDR: MOV A, SBUF CJNE MOV A, #05H, RETURN SBUF, #01H JNB TI, CLR TI CLR 20·0H CLR SM2 SJMP RETURN . d e t i m ; 是地址呼叫,判断与本机地址 WAIT: U C M Li ;等待发送结束 ;清0TI,20·0,SM2 ;清0TI,20·0,SM2 ;清0TI,20·0,SM2 C T S ISBYTES: WAIT ; 相符否,不符则转返回 ;相符,发回答信号“01H” ;转返回 MOV A, SBUF MOV R0, #60H MOV @R0, A ;将数据块长度存入内部RAM MOV 2FH, A ;60H单元及2FH单元 MOV 2EH, #61H CLR 20·1H ;接收数据块长度帧 ; ;置首地址61H于2EH单元 ;清20·1H标志,表示以后接收的为数据 RETURN: POP PSW POP RETI A ; ; 恢复现场 ;返回 多机通信方式可多种多样,上例仅以最简单的住一从式作了简单介绍,仅供参考。 对于串行通信工作方式0的同步方式,常用于通过移位寄存器进行扩展并行I/O口,或配 置某些串行通信接口的外部设备。例如,串行打印机、显示器等。这里就不一一举例了。 322 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 第9章 STC11/10xx系列单片机EEPROM的应用 STC11/10xx���������������������������������������� 系列单片机内部集成了的EEPROM是与程序空间是分开的,利用ISP/IAP技术可 将内部Data Flash当EEPROM,擦写次数在10万次以上。EEPROM可分为若干个扇区,每个扇区包 含512字节。使用时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不 同的扇区,不一定要用满。数据存储器的擦除操作是按扇区进行的。 EEPROM可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。在用户程序 中,可以对EEPROM进行字节读/字节编程/扇区擦除操作。����������������� 在工作电压Vcc偏低时,建议不要进 行EEPROM/IAP操作。 需要注意的是:STC11xx系列5V单片机在4.1V以上对EEPROM进行操作才有效,4.1V以下对 EEPROM进行操作,MCU不执行此功能;3.3V单片机在2.4V以上对EEPROM进行操作才有效,2.4V以 下对EEPROM操作,MCU不执行此功能。STC10xx系列5V单片机在3.8V以上对EEPROM进行操作才有 效,3.8V以下对EEPROM进行操作,MCU不执行此功能;3.3V单片机在2.4V以上对EEPROM进行操作才 有效,2.4V以下对EEPROM操作,MCU不执行,所以建议ISP烧录程序时选择高的复位门槛电压,如 5V单片机选择4.1V以下复位,3V 单片机选择2.4V以下复位。 U C M . d e t i m Li 9.1 IAP及EEPROM新增特殊功能寄存器介绍 符号 IAP_DATA IAP_ADDRH IAP_ADDRL IAP_CMD IAP_TRIG IAP_CONTR PCON C T S 描述 地址 ISP/IAP Flash Data Register ISP/IAP Flash Address High ISP/IAP Flash Address Low ISP/IAP Flash Command Register ISP/IAP Flash Command Trigger ISP/IAP Control Register Power Control 南通国芯微电子有限公司 C2H 位地址及符号 MSB LSB 复位值 1111 1111B C3H 0000 0000B C4H 0000 0000B C5H - - - - - - MS1 MS0 C6H xxxx xx00B xxxx xxxxB C7H IAPEN SWBS SWRST CMD_FAIL 87H SMOD SMOD0 LVDF 总机:0513-5501 2928 / 2929 / 2966 POF GF1 - WT2 WT1 GF0 PD WT0 0000 x000B IDL 0011 0000B 传真:0513-5501 2969 / 2956 / 2947 323 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 1. ISP/IAP数据寄存器IAP_DATA IAP_DATA : ISP/IAP操作时的数据寄存器。 ISP/IAP 从Flash读出的数据放在此处,向Flash写的数据也需放在此处 2. ISP/IAP地址寄存器IAP_ADDRH和IAP_ADDRL IAP_ADDRH : ISP/IAP 操作时的地址寄存器高八位。������� 该寄存器地址为C3H,复位后值为00H. 该寄存器地址为C4H,复位后值为00H. IAP_ADDRL : ISP/IAP 操作时的地址寄存器低八位。������� 3. ISP/IAP命令寄存器IAP_CMD ISP/IAP命令寄存器IAP_CMD格式如下: SFR name Address bit B7 B6 B5 B4 B3 IAP_CMD C5H name - - - - - B2 B1 . d e t i m - MS1 MS1 MS0 0 0 命令 / 操作 模式选择 Standby 待机模式,无ISP操作 0 1 从用户的应用程序区对"Data Flash/EEPROM区"进行字节读 1 0 从用户的应用程序区对"Data Flash/EEPROM区"进行字节编程 1 1 从用户的应用程序区对"Data Flash/EEPROM区"进行扇区擦除 U C M B0 MS0 Li 程序在用户应用程序区时,仅可以对数据Flash区(EEPROM)进行字节读/字节编程/扇区擦除 ,IAP12C5A62S2/IAP12LE5A62S2等����������������������� 除外,这几个型号可在应用程序区修改应用程序区。 C T S 4. ISP/IA命令触发寄存器IAP_TRIG IAP_TRIG: ISP/IAP 操作时的命令触发寄存器。 在IAPEN(IAP_CONTR.7) = 1 时,对IAP_TRIG先写入5Ah,再写入A5h,ISP/IAP 命令才会生效。 ISP/IAP操作完成后,IAP地址高八位寄存器IAP_ADDRH、IAP地址低八位寄存器IAP_ADDRL 和IAP命令寄存器IAP_CMD的内容不变。如果接下来要对下一个地址的数据进行ISP/IAP操 作,需手动将该地址的高8位和低8位分别写入IAP_ADDRH和IAP_ADDRL寄存器。 每次IAP操作时,都要对IAP_TRIG先写入5AH,再写入A5H,ISP/IAP命令才会生效。 324 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 传真:0513-5501 2969 / 2956 / 2947 STC10/11xx系列单片机指南 官方网站:www.STCMCU.com STC — 全球最大的8051单片机设计公司 技术支持QQ:800003751 5. ISP/IAP命令寄存器IAP_CONTR ISP/IAP控制寄存器IAP_CONTR格式如下: SFR name Address IAP_CONTR C7H bit B7 B6 B5 B4 name IAPEN SWBS SWRST CMD_FAIL B3 B2 B1 B0 - WT2 WT2 WT0 IAPEN: ISP/IAP功能允许位。0:禁止IAP读/写��� /�� 擦除Data Flash/EEPROM 1: 允许IAP读/写��� /�� 擦除Data Flash/EEPROM SWBS: 软件选择从用户应用程序区启动(送0),还是从������������ 系统���������� ISP������� 监控����� 程序区启动(送1)。 要与SWRST直接配合才可以实现 SWRST: 0: 不操作; 1: 产生软件系统复位,硬件自动��� 复位� 。 CMD_FAIL: 如果送了ISP/IAP命令,并对IAP_TRIG送5Ah/A5h触发失败,则为1,需由软件清零 .;在用户应用程序区(AP区)软件复位并从用户应用程序区(AP区)开始执行程序 MOV IAP_CONTR, #00100000B ;SWBS = 0(选择AP区), SWRST = 1(软复位) ;在用户应用程序区(AP区)软件复位并从系统ISP监控程序区开始执行程序 MOV IAP_CONTR, #01100000B ;SWBS = 1(选择ISP区), SWRST = 1(软复位) ;在系统ISP监控程序区软件复位并从用户应用程序区(AP 区)开始执行程序 MOV IAP_CONTR, #00100000B ;SWBS = 0(选择AP 区), SWRST = 1(软复位) ;在系统ISP监控程序区软件复位并从系统ISP监控程序区开始执行程序 MOV IAP_CONTR, #01100000B ;SWBS = 1(选择ISP区), SWRST = 1(软复位) U C M 设置等待时间 CPU等待时间(多少个CPU工作时钟 ) Sector Erase Read/读 Program/编程 WT2 WT1 WT0 扇区擦除 (2个时钟) (=55us) (=21ms) 1 1 1 2个时钟 55个时钟 21012个时钟 1 1 0 2个时钟 110个时钟 42024个时钟 1 0 1 2个时钟 165个时钟 63036个时钟 1 0 0 2个时钟 330个时钟 126072个时钟 0 1 1 2个时钟 660个时钟 252144个时钟 0 1 0 2个时钟 1100个时钟 420240个时钟 0 0 1 2个时钟 1320个时钟 504288个时钟 0 0 0 2个时钟 1760个时钟 672384个时钟 C T S 南通国芯微电子有限公司 总机:0513-5501 2928 / 2929 / 2966 . d e t i m Li Recommended System Clock 跟等待参数对应的推荐系统时钟 ≤ 1MHz ≤ 2MHz ≤ 3MHz ≤ 6MHz ≤ 12MHz ≤ 20MHz ≤ 24MHz ≤ 30MHz 传真:0513-5501 2969 / 2956 / 2947 325 STC11/10xx系列单片机指南 技术支持网站:www.GXWMCU.com 临时技术支持Tel:13922829991 研发顾问Tel:13922805190 EEPROM使用注意事项: 为了保证单片机内部EEPROM的正常可靠工作,目前供货的单片机: STC11xx系列: 5V������������������������������������������������ 单片机在�������������������������������������������� Vcc
STC11F32XE-35I-PDIP40 价格&库存

很抱歉,暂时无法提供与“STC11F32XE-35I-PDIP40”相匹配的价格&库存,您可以联系我们找货

免费人工找货
STC11F32XE-35I-PDIP40

库存:0