SH79F326应用指南

Size: px
Start display at page:

Download "SH79F326应用指南"

Transcription

1 SH79F6442 用户指南 SH79F6442 用户指南 - 集成 4 路 UART 和 3 路 PWM 的增强型 8051 微控制器 1 V1.0

2 一 SH79F6442 I/O 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯 片它有着运行更快速的优越特性 SH79F6442 其 IO 特性为 : 61 个双向 I/O 端口 I/O 端口可与其它功能共享 部分第二功能可通过寄存器配置 26 个可选择的 TTL 电平 I/O 口 SH79F6442 提供 61 个位可编程双向 I/O 端口 端口数据在寄存器 Px 中 每个 I/O 口均有内部上拉电阻 端口控制寄存器 (PxCRy) 控制端口是作为输入或者输出 当端口作为输入时, 每个 I/O 端口带有由 PxPCRy 控制的内部上拉电阻 (x = 0-5,y = 0-7) 2. 控制寄存器 IO 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 模块输出输入 PxCRy (x=0-7,y=0-7) PxPCRy (x=0-7,y=0-7) 2 IO 输入输出控制寄存器 IO 上拉电阻控制寄存器 Px.y (x=0-7,y=0-7) IO 端口数据寄存器 数据指针选择 INSCON 特殊功能寄存器页选择 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 注意 : 在对 P5~P7,P5CR~P7CR,P5PCR~P7PCR 寄存器位于 BANK1, 对其进行操作前, 请先 将 INSCON 中的 BSK0 位置 1 3. IO 设置 3.1. IO 输出设置 IO 作为输出模式, 需要将其 PxCRy(x=0-7,y=0-7) 设置为 1, 此时若设置 Px.y(x=0-7,y=0-7) 为 0, 则 IO 输出低电平, 低电平的值为 GND 若设置 Px.y(x=0-7,y=0-7) 为 1, 则 IO 输出高电 平, 高电平的值为 VDD 3.2. IO 输入设置 IO 作为输入模式, 需要将其 PxCRy(x=0-7,y=0-7) 设置为 0, 此时若设置 PxPCRy(x=0-7, y=0-7) 为 0, 则 IO 处于输入 Floating 状态, 若设置 PxPCRy(x=0-7,y=0-7) 为 1, 则上拉电阻打

3 开,IO 处于输入高的状态 IO 输入的高低之分是在 VDD/2 左右, 具体参数请参考 SH79F6442 DATASHEET 3.3. 开漏极 I/O 设置 SH79F6442 的 TWI 功能使能, 相应口会自动被设置成 N 沟道开漏输出, 通过设置 TWITOUT 中的 TWIPCR 位, 打开内部上拉电阻 用户可根据实际应用情况选择外接或者打开内部上拉电阻 4. 应用实例 4.1. 要求将一个 0~5V 的三角波从 P3.0 输入,P3.0 的值通过 P5.0 输出 4.2. 例程 bit a; void main(void) P3CR &= 0xFE; //P3.0 输入 P3PCR = 0x01; //P3.0 上拉电阻打开 INSCON = 0x40; // 切换至 BANK1 P5CR = 0x01; // P5.0 输出 INSCON &= 0xBF; // 切换至 BANK0 while(1) a = P3.0; INSCON = 0x40; // 切换至 BANK1 P5.0 = a; // P5.0 输出值为 P3.0 输入值 INSCON &= 0xBF; // 切换至 BANK0 3

4 二 SH79F6442 Flash&EEPROM 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯 片它有着运行更快速的优越特性 SH79F6442 其 Flash&EEPROM 特性为 : Flash 存储器包括 128 * 512B 区块, 总共 64KB EEPROM 存储器 0~4KB 代码选项可选 在工作电压范围内都能进行编程和擦除操作 在线编程 (ICP) 操作支持写入 读取和擦除操作 支持整体 / 扇区擦除和编程 (SSP) 编程 / 擦除次数 : 程序区 : 至少 100,00 次 数据保存年限 : 至少 10 年 低功耗 类 EEPROM 区 : 至少 100,000 次 FFFFH OP_EEPROMSIZE Program Memory Block (64K) OP_EEPROMSIZE 0000H EEPROM Like Data Block 0000H Information Block Program Memory Block SH79F6442 为存储程序代码内置 64K 可编程 Flash(Program Memory Block), 可以通过在线编程 (ICP) 模式和扇区自编程 (SSP) 模式对 Flash 存储器操作 每个扇区 512 字节 SH79F6442 还内置最大 4096 字节的类 EEPROM 存储区用于存放用户数据, 每个扇区 512 字节, 最多支持 8 个扇区 EEPROM 存储区位于 Flash 存储器, 与程序存储区是共享的, 举例说明 : 当 OP_EEPROMSIZE=0000 时, 即 EEPROM 大小为 4KB, 此时程序存储区的大小为 64KB-4KB=60KB; 当 OP_EEPROMSIZE=0100 时, 即 EEPROM 大小为 2KB, 此时程序存储区的大小为 64KB-2KB=62KB 具体 EEPROM 大小选择详见在代码选项章节 4

5 2. 控制寄存器 Flash&EEPROM 模块使用的所有控制寄存器如下表所示 : 类别 缩写符号 功能说明 XPAGE 编程用地址选择寄存器 IB_OFFSET 编程用地址偏移寄存器 IB_DATA 编程用数据寄存器 IB_CON1 SSP 型选择寄存器 模块控制 IB_CON2 SSP 流程控制寄存器 1 IB_CON3 SSP 流程控制寄存器 2 IB_CON4 SSP 流程控制寄存器 3 IB_CON5 SSP 流程控制寄存器 4 FLASHCON 访问控制寄存器 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. SSP 编程设置 3.1. Flash SSP 编程设置若使用 SSP 功能对 Flash 进行擦除或者编写, 首先需要将 FLASHCON 的 FAC 位置 0, 然后设置相应的 XPAGE,IB_OFFSET,IB_DATA( 需要操作的地址和数据 ), 再设置 IB_CON1, 若 IB_CON1 为 0xE6, 则相应的操作为扇区擦除, 若 IB_CON1 为 0x6E, 则相应的操作为存储单元编程 之后再设置 IB_CON2 为 0x05,IB_CON3 为 0x0A,IB_CON4 为 0x06,IB_CON5 为 0x09 完成 Flash 的整个操作 需要注意,SSP 扇区擦除操作不可选择 SSP 程序所在扇区作为操作对象 特别地, 若需要对特定扇区进行保护, 防止 SSP 误操作, 可在 Keil 中通过 Options->Utilities->Settings-> Security 路径设置 Sector 加密 其中,B0 加密对应 Flash 代码保护模式 0;B1 加密对应 Flash 代码保护模式 1 Flash 代码保护模式详细介绍, 请参照 SH79F6442 DATASHEET 5

6 3.2. EEPROM SSP 编程设置若使用 SSP 功能对 EEPROM 进行擦除或者编写, 首先需要将 FLASHCON 的 FAC 位置 1, 然后设置相应的 XPAGE,IB_OFFSET,IB_DATA( 需要操作的地址和数据 ), 再设置 IB_CON1, 若 IB_CON1 为 0xE6, 则相应的操作为扇区擦除, 若 IB_CON1 为 0x6E, 则相应的操作为存储单元编程 之后再设置 IB_CON2 为 0x05,IB_CON3 为 0x0A,IB_CON4 为 0x06,IB_CON5 为 0x09 完成 EEPROM 的整个操作 Flash 控制流程图如 3.3 所示 3.3. Flash & EEPROM 控制流程图 6

7 Set FLASHCON Set IB_OFFSET Set XPAGE Set IB_DATA Set IB_CON1 S0 IB_CON2[3:0] 5H Set IB_CON2[3:0]=5H IB_CON2 5H S1 IB_CON3 AH IB_CON2 5H ELSE S2 Set IB_CON3=AH IB_CON3 AH Set IB_CON4=9H Reset IB_CON1-5 IB_CON4 9H S3 S4 Set IB_CON5=6H Sector Erase IB_CON1=E6H &IB_CON2[3:0]=5H &IB_CON3=AH &IB_CON4=9H &IB_CON5=6H IB_CON1=6EH &IB_CON2[3:0]=5H &IB_CON3=AH &IB_CON4=9H &IB_CON5=6H Programming 3.4. 应用实例 要求 先将整个 Flash 区域整体擦除, 再 sector0 写入 00,sector1 写入 01, 依次类推至 sector15 写入 0F 例程 #include <SH79F6442.h> 7

8 #include <intrins.h> #include <absacc.h> #define uchar unsigned char #define uint unsigned int #define NOP _nop_(); uchar i,j,m; uint n; uint code *p; uchar count = 0; uchar Ssp_flag; void main (void) uchar temp; CLKCON = 0; m = 0; n = 0; Ssp_flag = 0xA5; /********************sector erase****************/ EA = 0; for(i=0x00;i<0x40;i++) FLASHCON = FLASHCON&0xFE; NOP EA = 0; IB_CON1 = 0xE6; IB_CON2 = 0x05; IB_CON3 = 0x0A; IB_CON4 = 0x09; if(!(ssp_flag==0xa5)) goto Error; XPAGE = (i<<1)&0xfe; IB_CON5 = 0x06; NOP NOP NOP 8

9 NOP NOP /********************sector write****************/ temp = 0x00; for(m=0x00;m<0x10;m++) for(n=0x00;n<512;n++) temp = m; FLASHCON = FLASHCON&0xFE; NOP EA = 0; IB_OFFSET = n; XPAGE = n>>8; XPAGE = m<<1; IB_DATA = temp; IB_CON1 = 0x6E; IB_CON2 = 0x05; IB_CON3 = 0x0A; IB_CON4 = 0x09; if(!(ssp_flag==0xa5)) goto Error; IB_CON5 = 0x06; NOP NOP NOP NOP NOP XPAGE = 0; while(1); Error: Ssp_flag = 0; IB_CON1 = 0x00; IB_CON2 = 0x00; 9

10 IB_CON3 = 0x00; IB_CON4 = 0x00; IB_CON5 = 0x00; XPAGE = 0x00; FLASHCON = 0x00; EA = 0; while(1); 10

11 4. 可读识别码 SH79F6442 每颗芯片出厂后都固化有一个 40 位的可读识别码, 它的值为 0-0xffffffffff 的随机 值, 它是无法擦除的 ( 存放在地址信息存储区 0x127b - 127f), 可以由程序或编程工具读出 程序读出示例 : #include <SH79F6442.h> #include <intrins.h> #include <absacc.h> unsigned char Temp1,Temp2,Temp3,Temp4,Temp5; void main() FLASHCON = 0x01; Temp1 = CBYTE[0x127b]; Temp2 = CBYTE[0x127c]; Temp3 = CBYTE[0x127d]; Temp4 = CBYTE[0x127e]; Temp5 = CBYTE[0x127f]; FLASHCON = 0x00; while(1); 5. 编程注意事项 为确保顺利完成 SSP 编程, 用户软件必须按以下步骤设置 : (1) 用于代码 / 数据编程 : 1. 关闭中断 ; 2. 根据地址设置 XPAGE,IB_OFFSET; 3. 按编程需要, 设置 IB_DATA; 4. 按照顺序设置 IB_CON1-5; 5. 添加 4 个 NOP 指令 ; 6. 开始编程,CPU 将进入 IDLE 模式 ; 烧写完成后自动退出 IDLE 模式 ; 7. 如需继续写入数据, 跳转至第 2 步 ; 8. XPAGE 寄存器清 0, 恢复中断设置 (2) 用于扇区擦除 : 1. 关闭中断 ; 2. 按相应的扇区设置 XPAGE; 3. 按照顺序设置 IB_CON1-5; 4. 添加 4 个 NOP 指令 ; 11

12 5. 开始擦除,CPU 将进入 IDLE 模式 ; 擦除完成后自动退出 IDLE 模式 ; 6. 如需要继续擦除数据, 跳转至第 2 步 ; 7. XPAGE 寄存器清 0, 恢复中断设置 (3) 读取 : 使用 MOVC A,@A+DPTR 或者 MOVC A,@A+PC 指令 (4) 对于类 EEPROM 区域 对于类 EEPROM 的操作类似于 Flash 的操作, 即类似上述 (1)/(2)/(3) 部分的描述 区别在于 : 1. 在对类 EEPROM 进行擦除 写或读之前, 应首先将 FLASHCON 寄存器的最低位 FAC 位置 1 2. 类 EEPROM 的扇区大小可以通过 option 选择 注意 : 1. 系统时钟不得低于 200kHz 以确保 FLASH 的正常编程 2. 当不需对类 EEPROM 操作时, 必须将 FAC 位清 0 6. FLASH/ 类 EEPROM 的烧写 / 擦除的超级抗干扰措施 1) 在程序下载时, 选择代码选项中的 enable LVR function 2) 设置扇区时, 对 XPAGE 写立即数 3) 在调用烧写或擦除函数前, 置一个标志, 比如 0A5H; 在烧写或擦除函数中判断此标志是否 为 0A5H, 否则清零此标志, 退出函数 下面类 EEPROM 示例仅供参考 : C 文件 : uchar Ssp_flag; /********************SSP Erase****************/ Ssp_flag = 0xA5; EA = 0; FLASHCON = 0x01; IB_CON1 = 0xE6; IB_CON2 = 0x05; IB_CON3 = 0x0A; IB_CON4 = 0x09; if(!(ssp_flag==0xa5)) goto Error; XPAGE = 0x01; IB_CON5 = 0x06; NOP NOP NOP NOP //XPAGE 写立即数 12

13 /********************sector write****************/ Ssp_flag = 0x5A; EA = 0; FLASHCON = 0x01; IB_DATA = data; //data 为烧写数据 IB_OFFSET = addr; //addr 为烧写地址低位 IB_CON1 = 0x6E; IB_CON2 = 0x05; IB_CON3 = 0x0A; IB_CON4 = 0x09; if(!(ssp_flag==0x5a)) goto Error; XPAGE = 0x01; // 烧写地址高位, 写立即数 IB_CON5 = 0x06; NOP NOP NOP NOP while(1); Error: Ssp_flag = 0; IB_CON1 = 0x00; IB_CON2 = 0x00; IB_CON3 = 0x00; IB_CON4 = 0x00; IB_CON5 = 0x00; XPAGE = 0x00; FLASHCON = 0x00; EA = 0; while(1); 13

14 三 SH79F6442 Timer3 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯 片它有着运行更快速的优越特性 适用于小家电, 白色家电,LCD 显示等 SH79F6442 其 Timer3 特性为 : SH79F6442 其 Timer4 特性为 : 定时器 4 是 16 位自动重载定时器, 且可以触发 ADC 转换 定时器 3 是 16 位自动重载定时器, 且可以工作在掉电模式 定时器 3 是 16 位自动重载定时器, 通过两个数据寄存器 TH3 和 TL3 访问, 由 T3CON 寄存器 控制 IEN0 寄存器的 ET3 位置 1 允许定时器 3 中断 ( 详见中断章节 ) 定时器 3 只有一个工作方式 :16 位自动重载计数器 / 定时器, 可以设置预分频比, 并可以工作在 CPU 掉电模式 定时器 3 有一个 16 位计数器 / 定时器寄存器 (TH3,TL3) 当 TH3 和 TL3 被写时, 用作定时 器重载寄存器, 当被读时, 被用做计数寄存器 TR3 位置 1 使定时器 3 开始递增计数 定时器在 0xFFFF 到 0x0000 溢出并置 TF3 位为 1 溢出同时, 定时器重载寄存器的 16 位数据被重新载入计数寄存器 中,TH3 写操作也导致重载寄存器的数据重新载入计数寄存器 TH3 和 TL3 读写操作遵循以下顺序 : 写操作 : 先低位后高位 读操作 : 先高位后低位 定时器 3 可以工作在掉电模式 当 T3CLKS [1:0] 选为 00 时, 定时器 3 在掉电模式下不计数 当 T3CLKS [1:0] 选为 01 时, 定时器 3 可以工作在掉电模式 即使所有振荡器关闭, 定时器 3 依然可以对 T3 计数 当 T3CLKS [1:0] 选为 10 时, 定时器 3 可以工作在掉电模式 但是如果在掉电模式下低频振荡 器关闭则定时器 3 不计数 详见下表 : T3CLKS [1:0] 振荡器状态 普通模式 掉电模式 00 不限 工作 不工作 01 不限 工作 工作 10 低频打开, 且掉电模式低频关闭低频打开, 且掉电模式低频不关闭 工作 工作 不工作 工作 14

15 2. 控制寄存器 Timer3 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 T3CON TL3 TH3 控制寄存器 低位计数器 高位计数器 数据指针选择 INSCON 特殊功能寄存器页选择 注意 : 1. 在读或写 TH3 和 TL3 时, 如果时钟源不是系统时钟, 要确保 TR3=0 2. 当定时器 3 用 T3 端口作为时钟源时,TR3 由 0 变为 1 之后的 1.5 个系统周期内,T3 的下降沿无效 3. 定时器 3 相关的寄存器位于 Bank1, 对 Timer3 的寄存器进行相关操作时请先将 INSCON 中的 BSK0 位置 1. 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. Timer3 设置 Timer3 只有一种工作方式 :16 位自动重载计数器 / 定时器, 且 Timer3 可以在掉电模式下计数, 但是在掉电模式下计数对 Timer3 的工作时钟是有要求的, 具体参见概述中的表格 要使用 Timer3 需要要设置好 Timer3 的工作时钟, 然后设置工作时钟的预分频比, 再写入符合自己要求的 TL3,TH3 然后启动 Timer3 即可 注 :Timer3 中断标志位由硬件清零 4 应用实例 4.1 要求 Timer3 计数时钟选择 T3 口输入的时钟,T3 口输入的时钟频率为 2kHz, 设置 Timer3 每一秒中唤 醒 Power-Down 一次 4.2 例程 #include <SH79F6442.H> #include <intrins.h> void Timer3_init(void) CLKCON = 0x00; INSCON = 0x40; T3CON = 0x01; TL3 = 0x30; TH3 = 0XF8; INSCON &= 0xBF; // 系统时钟设置为 24MHz // 切换至 BANK1 // T3 口作为 Timer3 的时钟输入口, 该口上拉自动打开 // 定时 1 s 产生中断 // 切换至 BANK0 15

16 void main(void) Timer3_init(); EA = 1; IEN2 = 0x02; INSCON = 0x40; TR3 = 1; INSCON &= 0xBF; while(1) SUSLO = 0x55; PCON = 0x02; _nop_(); _nop_(); _nop_(); _nop_(); // 允许 Timer3 中断 // 切换至 BANK1 // Timer3 开始计数 // 切换至 BANK0 // 进入掉电模式 void timer3_int(void) interrupt 16 _push_(inscon); INSCON = 0x40; // 切换至 BANK1 TF3 = 0; INSCON = 0x00; // 切换至 BANK0 _pop_(inscon); 16

17 四 SH79F6442 Timer4 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 定时器 4 是带边沿触发的 16 位自动重载定时器 定时器 4 是 16 位自动重载定时器 两个数据寄存器 TH4 和 TL4 可作为一个 16 位寄存器来访问 由 T4CON 寄存器控制 IEN1 寄存器的 ET4 位置 1 允许定时器 4 中断 ( 详见 DATASHEET 中断章节 ) 当 TH4 和 TL4 被写时, 用作定时器重载寄存器, 当被读时, 被用做计数寄存器 TR4 位置 1 使定时器 4 开始递增计数 定时器在 0xFFFF 到 0x0000 溢出并置 TF4 位为 1 溢出同时, 定时器重载寄存器的 16 位数据重新载入计数寄存器中, 对 TH4 的写操作也导致重载寄存器的数据重新载入计数寄存器 TH4 和 TL4 读写操作遵循以下顺序 : 写操作 : 先低位后高位 读操作 : 先高位后低位 2. 控制寄存器 Timer4 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 T4CON TL4 TH4 控制寄存器 低位计数器 高位计数器 注 :Timer4 相关的寄存器位于 Bank1, 对 Timer4 相关的寄存器进行相关操作的时候请先将 INSCON 寄存器中的 BSK0 位置 1 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. Timer4 设置 定时器 4 有两种工作方式 :16 位自动重载定时器和有 T4 边沿触发的 16 位自动重载定时器 这些 方式通过 T4CON 寄存器的 T4M[1:0] 设置 Timer4 的溢出可以触发 ADC 转换 3.1 方式 0 设置 定时器 4 在方式 0 为 16 位自动重载定时器 若使用其功能, 需要将 T4M[1:0] 设置为 00, 再设置 T4CLKS, 若为 0 则选择系统时钟, 若为 1 则选择从 T4 口输入的外部输入时钟 然后设置 T4PS[1:0] 选择好分频比, 选择好 TL4,TH4 的初值, 最后使 TR4 置 1, 这样 Timer4 方式 0 就启动了, 当定时 器从 0xFFFF 到 0x0000 溢出并置 TF4 位为 1, 可供查询或者产生中断 3.2 方式 2 设置 定时器 4 在方式 2 为 16 位自动重载定时器 T4CON.0 寄存器的 T4CLKS 位一直为 0, 定时器 4 只能选择系统时钟为时钟源, 其余设置与方式 0 一致 17

18 方式 2 和方式 0 不同之处在于方式 2 的自动重载是带边沿触发的, 这方式 2 下,T4 端口不能作为外部时钟输入, 其功能为触发 Timer4 自动重载 若使用其功能, 需要将 T4M[1:0] 设置为 10( 下降沿触发 ) 或者 11( 上升沿触发 ), 再设置 T4PS[1:0] 选择好分频比, 然后设置 TC4, 为 0 则 Timer4 不能再被触发, 为 1 则 Timer4 可以再被触发, 选择好 TL4,TH4 的初值, 最后使 TR4 置 1, 这样 TC4 的下降沿可以使 Timer4 启动, 当定时器从 0xFFFF 到 0x0000 溢出并置 TF4 位为 1, 同时会停止 Timer4 定时, 等待下一个 T4 的下降沿或者下降沿可以启动 Timer4(TC4 = 1) 注 : 当定时器 4 用作计数器时,T4 引脚的输入信号频率要小于系统时钟的一半 4. 应用实例 4.1 方式 0 要求 Timer4 时钟为系统时钟, 循环定时产生一个 100ms 的定时中断 4.2 方式 0 例程 #include <SH79F6442.H> #include <intrins.h> void Port_init(void) P1 = 0x00; P1CR = 0x01; // P1.0 作为输出标志 void Timer4_init(void) CLKCON = 0x20; // 系统时钟设置为 12MHz INSCON = 0x40; T4CON &= 0xF3; // 工作方式选择 Mode0 T4CON &= 0xFE; // Timer4 时钟选择系统时钟,.T4 口作为普通 IO 口 T4CON &= 0xEF; T4CON = 0x20; // 预分频比设置为 1/64 TL4 = 0x3E; // 定时 100ms 产生一次中断 TH4 = 0X49; INSCON = 0x00; void main(void) Timer4_init(); 18

19 Port_init(); EA = 1; IEN2 = 0x1; // 使能 timer4 中断 INSCON = 0x40; TR4 = 1; // timer4 开始计数 INSCON = 0x00; while(1); void timer4_int(void) interrupt 15 _push_(inscon); INSCON = 0x40; TF4 = 0; INSCON = 0x00; P1_0 = ~P1_0; // P1.0 的翻转周期为 200ms, 即频率为 5Hz _pop_(inscon); 4.3 方式 2 要求在 T4 的每个下降沿之后的 100ms 处产生一次 P1.0 翻转 4.4 方式 2 例程 #include <SH79F6442.H> #include <intrins.h> void Port_init(void) P1 = 0x00; P1CR = 0x01; // P1.0 作为输出标志 void Timer4_init(void) CLKCON = 0x00; INSCON = 0x40; T4CON = 0x0C; // 系统时钟 12MHz // 选择 Mode2, 上升沿触发 19

20 T4CON &= 0xEF; T4CON = 0x20; // 预分频比选择 1/64 T4CON = 0x40; // TC4 = 1, 可以再次被触发 TL4 = 0x3E; // 定时 100ms 产生中断 TH4 = 0X49; INSCON = 0x00; void main(void) Timer4_init(); Port_init(); EA = 1; IEN2 = 0x1; // 使能 timer4 中断 INSCON = 0x40; TR4 = 1; // timer4 开始计数 INSCON = 0x00; while(1); void timer4_int(void) interrupt 15 _push_(inscon); INSCON = 0x40; TF4 = 0; INSCON = 0x00; P1_0 = ~P1_0; // P1.0 的翻转周期为 200ms, 即频率为 5Hz _pop_(inscon); 20

21 五 SH79F6442 Timer5 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 SH79F6442 其 Timer5 特性为 : 定时器 5 是 16 位自动重载定时器 定时器 5 是 16 位自动重载定时器 两个数据寄存器 TH5 和 TL5 可作为一个 16 位寄存器来访问 由 T5CON 寄存器控制 IEN0 寄存器的 ET5 位置 1 允许定时器 5 中断 ( 详见 DATASHEET 中断章节 ) 当 TH5 和 TL5 被写时, 用作定时器重载寄存器, 当被读时, 被用做计数寄存器 TR5 位置 1 使定时器 5 开始递增计数 定时器在 0xFFFF 到 0x0000 溢出并置 TF5 位为 1 溢出同时, 定时器重载寄存器的 16 位数据重新载入计数寄存器中, 对 TH5 的写操作也导致重载寄存器的数据重新载入计数寄存器 TH5 和 TL5 读写操作遵循以下顺序 : 写操作 : 先低位后高位 读操作 : 先高位后低位 2. 控制寄存器 Timer5 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 T5CON TL5 TH5 21 控制寄存器 低位计数器 高位计数器 注 :Timer5 相关的寄存器位于 Bank1, 对 Timer5 相关的寄存器进行相关操作的时候请先将 INSCON 寄存器中的 BSK0 位置 1. 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. Timer5 设置 定时器 5 有一种工作方式 :16 位自动重载定时器 Timer5 只能使用系统时钟作为模块的时钟, 使用其时, 先根据需要的定时时基结合系统时钟设置 好预分频比选择位 T5PS[1:0], 然后 TR5 置 1, 使能 Timer5, 定时器在 0xFFFF 到 0x0000 溢出并置 TF5 位为 1, 可供查询和中断 溢出同时, 定时器重载寄存器的 16 位数据重新载入计数寄存器中 4. 应用实例 4.1. 要求 Timer5 循环定时产生一个 5ms 的定时中断 4.2. 例程

22 #include <SH79F6442.H> #include <intrins.h> void Port_init(void) P1 = 0x00; P1CR = 0x01; void Timer5_init(void) CLKCON = 0x20; INSCON = 0x40; T5CON = 0x00; TL5 = 0XA0; TH5 = 0X15; INSCON = 0x00; // P1.0 作为输出标志 // 系统时钟 12MHz // Timer5 时钟选择系统时钟 = 12MHz // 定时 5ms 产生一次中断 void main(void) Timer5_init(); Port_init(); EA = 1; IEN2 = 0x04; // 使能 timer5 中断 INSCON = 0x40; TR5 = 1; // timer5 开始计数 INSCON = 0x00; while(1); void timer5_int(void) interrupt 17 _push_(inscon); INSCON = 0x40; T5CON &= 0x7F; INSCON = 0x00; 22

23 _pop_(inscon); P1_0 = ~P1_0; // P1.0 的翻转周期为 10ms, 即频率为 100Hz 23

24 MISO MOSI SCK SS MISO MOSI SCK SS MISO MOSI SCK SS MISO MOSI SCK SS SH79F6442 应用指南 六 SH79F6442 SPI 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯 片它有着运行更快速的优越特性 SH79F6442 其 SPI 模块特性为 : 全双工, 三线同步传输 主从机操作 7 个可编程主时钟频率 极性相位可编程的串行时钟 带 MCU 中断的主模式故障出错标志 写入冲突标志保护 可选择 LSB 或 MSB 传输 串行外部设备接口 (SPI) 是一种高速串行通信接口, 允许 MCU 与外围设备 ( 包括其它 MCU) 进行全双工, 同步串行通讯 下图所示即为典型的由一个主设备和若干从属外部设备组成的 SPI 总线网络, 主设备通过 3 条线连接所有从设备, 主设备控制连接从属设备 SS 引脚的 4 个并行端口来选中其中一个从属设备进行通讯 V DD MISO MOSI SCK SS Master Port0.0 Port0.1 Port0.2 Port0.3 Slave Slave Slave Slave 2. 控制寄存器 SPI 模块使用的所有控制寄存器如下表所示 : 类别 缩写符号 功能说明 SPCON 控制寄存器 模块控制 SPSTA 状态寄存器 SPDAT 数据寄存器 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. SPI 设置 3.1. 波特率设置 在主模式下,SPI 的波特率有 7 种可选择的频率, 分别是内部时钟的 4,8,16,32,64,128, 256 或 512 分频, 可以通过设定 SPCON 寄存器的 SPR[2:0] 位进行选择, SPR[2:0]=000 无效 24

25 3.2. 工作模式设置 SPI 可配置为主模式或从属模式中的一种 SPI 模块的配置和初始化通过设置 SPCON 寄存器 ( 串 行外围设备控制寄存器 ) 和 SPSTA( 串行外围设备状态寄存器 ) 来完成 配置完成后, 通过设置 SPCON,SPSTA,SPDAT( 串行外围设备数据寄存器 ) 来完成数据传送 在 SPI 通讯期间, 数据同步地被串行的移进移出 串行时钟线 (SCK) 使两条串行数据线 (MOSI 和 MISO) 上数据的移动和采样保持同步 从设备选择线 (SS ) 可以独立地选择 SPI 从属设备 ; 如果 从设备没有被选中, 则不能参与 SPI 总线上的活动 当 SPI 主设备通过 MOSI 线传送数据到从设备时, 从设备通过 MISO 线发送数据到主设备作为响 应, 这就实现了在同一时钟下数据发送和接收的同步全双工传输 发送移位寄存器和接收移位寄存器 使用相同的特殊功能器地址, 对 SPI 数据寄存器 SPDAT 进行写操作将写入发送移位寄存器, 对 SPDAT 寄存器进行读操作将获得接收移位寄存器的数据 8-bit Shift Register MISO MISO 8-bit Shift Register MOSI MOSI SPI Clock Generator SCK SS V DD SCK SS Master MCU Slave MCU V SS 全双工主从互联图主模式 (1) 模式启动 SPI 主设备控制 SPI 总线上所有数据传送的启动 当 SPCON 寄存器中的 MSTR 位置 1 时,SPI 在主模式下运行, 只有一个主设备可以启动传送 (2) 发送在 SPI 主模式下, 写一个字节数据到 SPI 数据寄存器 SPDAT, 数据将会写入发送移位缓冲器 如果发送移位寄存器已经存在一个数据, 那么主 SPI 产生一个 WCOL 信号以表明写入太快 但是在发送移位寄存器中的数据不会受到影响, 发送也不会中断 另外如果发送移位寄存器为空, 那么主设备立即按照 SCK 上的 SPI 时钟频率串行地移出发送移位寄存器中的数据到 MOSI 线上 当传送完毕, SPSTA 寄存器中的 SPIF 位被置 1 如果 SPI 中断被允许, 当 SPIF 位置 1 时, 也会产生一个中断 (3) 接收当主设备通过 MOSI 线传送数据给从设备时, 相对应的从设备同时也通过 MISO 线将其发送移位寄存器的内容传送给主设备的接收移位寄存器, 实现全双工操作 因此,SPIF 标志位置 1 即表示传送完成也表示接收数据完毕 从设备接收的数据按照 MSB 或 LSB 优先的传送方向存入主设备的接收移位寄存器 当一个字节的数据完全被移入接收寄存器时, 处理器可以通过读 SPDAT 寄存器获得该数据 如果发生超限 (SPIF 标志未被清 0, 就试图开始下一次传送 ),RXOV 位置 1, 表示发生数据超限, 此时接收移位寄存器保持原有数据并且 SPIF 位置 1, 这样直到 SPIF 位被清 0,SPI 主设备将不会接收任何数据 25

26 从模式 (1) 模式启动 当 SPCON 寄存器中的 MSTR 位清 0,SPI 在从模式下运行 在数据传送之前, 从设备的 SS 引脚 必须被置低, 而且必须保持低电平直到一个字节数据传送完毕 (2) 发送与接收 从属模式下, 按照主设备控制的 SCK 信号, 数据通过 MOSI 引脚移入,MISO 引脚移出 一个位 计数器记录 SCK 的边沿数, 当接收移位寄存器移入 8 位数据 ( 一个字节 ) 同时发送移位寄存器移出 8 位数据 ( 一个字节 ),SPIF 标志位被置 1 数据可以通过读取 SPDAT 寄存器获得 如果 SPI 中断被 允许, 当 SPIF 置 1 时, 也会产生一个中断 为防止超限,SPI 从设备在向接收移位寄存器移入数据之前也必须软件清零 SPIF 标志位, 否则 RXOV 位置 1, 表示发生数据超限 此时接收移位寄存器保持原有数据并且 SPIF 位置 1, 这样 SPI 从设备将不会接收任何数据直到 SPIF 清 0 SPI 从设备不能启动数据传送, 所以 SPI 从设备必须在主设备开始一次新的数据传送之前将要传 送的数据写入发送移位寄存器 如果从设备在第一次开始发送之前未写入数据, 从设备将传送 0x00 字节给主设备 如果写 SPDAT 操作发生在传送过程中, 那么 SPI 从设备的 WCOL 标志位置 1, 即如 果传送移位寄存器已经含有数据,SPI 从设备的 WCOL 位置 1, 表示写 SPDAT 冲突 但是移位寄存 器的数据不受影响, 传送也不会被中断 3.3. 出错检测 SPSTA 寄存器中的标志位表示在 SPI 通讯中的出错情况 : (1) 模式故障 (MODF) SPI 主模式下的模式故障出错表明 SS 引脚上的电平状态与实际的设备模式不一致 SPSTA 寄存器中 MODF 位置 1 后, 表明系统控制存在多主设备冲突的问题 这种情况下,SPI 系统受到如下影响 : 产生 SPI 接收 / 错误 CPU 中断请求 ; SPSTA 寄存器的 SPEN 位清 0,SPI 被禁止 ; SPCON 寄存器的 MSTR 位清 0 当 SPCON 寄存器的 SS 引脚禁止位 (SSDIS) 清 0,SS 引脚信号为低时,MODF 标志位置 1 然而, 对于只有一个主设备的系统来说, 主设备的 SS 引脚被拉低, 那决不是另外一个主设备试图驱动网络 这种情况下, 为防止 MODF 置 1, 可使 SPCON 寄存器中的 SSDIS 位置 1,SS 引脚作为普通 I/O 口或是其它功能引脚 重新启动串行通信时, 用户必须将 MODF 位软件清 0, 将 SPCON 寄存器中的 MSTR 位和 SPSTA 寄存器的 SPEN 位置 1, 重新启动主模式 (2) 写冲突 (WCOL) 在发送数据序列期间写入 SPDAT 寄存器会引起的写冲突,SPSTA 寄存器中的 WCOL 位置 1 WCOL 位置 1 不会引起中断, 发送也不会中止 WCOL 位需由软件清 0 (3) 超限情况 (RXOV) 主设备或从设备尚未清除 SPIF 位, 主或从设备又试图发送几个数据字节时, 超限情况发生 在这种情况下, 接收移位寄存器保持原有数据,SPIF 置 1, 同样 SPI 设备直到 SPIF 被清除后才会再接收数据 在 SPIF 位被清除之前继续调用中断, 发送也不会中止 RXOV 位置 1 不会引起中断,RXOV 位需由软件清 0 26

27 两种 SPI 状态标志 SPIF & MODF 能产生一个 CPU 中断请求 串行外围设备数据发送标志,SPIF: 完成一个字节发送后由硬件置 1 模式故障标志,MODF: 该位被置 1 表示 SS 引脚上的电平与 SPI 模式不一致的 SSDIS 位为 0 并且 MODF 置 1 将产生 SPI 接收器 / 出错 CPU 中断请求 当 SSDIS 置 1 时, 无 MODF 中断请求产 生 SPIF SPI Transmitter CPU Interrupt Request SPI CPU Interrupt Request MODF SSDIS SPI Receiver/Error CPU Interrupt Request SPI 中断请求的产生 4. 应用实例 4.1. 要求 主模式,SCK = SYS/64, 无效 SS 脚, 不停循环发送 0x00~0xFF 4.2. 例程 #include <SH79F6442.H> #include <intrins.h> unsigned char out_flag = 0; unsigned char r_data = 0; void spi_init(void) CLKCON = 0x00; // 系统时钟 = 24Mz SPCON = 0x40; // 主模式 SPCON = 0x08; // 关闭 SS 引脚 SPCON = 0x05; // 串行外部设备时钟速率 = 系统时钟频率 / 64 SPSTA = 0x00; void main(void) spi_init(); 27

28 EA = 1; IEN1 = 0x40; // 使能 spi 中断 SPEN = 1; // 使能 spi 模块 SPDAT = 0x00; while(1) if(out_flag == 1) SPDAT ++; out_flag = 0; void spi_interrupt(void) interrupt 13 out_flag = 1; SPIF = 0; 28

29 七 SH79F6442 EUART 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片它有着运行更快速的优越特性 SH79F6442 其 EUART 模块特性为 : SH79F6442 带有 4 个 EUART, 兼容传统 8051 EUART0/EUART1/EUART2/EUART3 自带波特率发生器, 波特率可选择系统时钟分频或自带波特率发生器溢出率的 1/16 增强功能包括帧出错检测及自动地址识别 支持 TTL 电平转换 EUART 有四种工作方式 2. 控制寄存器 EUART 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 SCON SBUF PCON SADDR SADEN SFINE SBRT UTOS EUART 控制及状态寄存器 EUART 数据寄存器电源控制寄存器 EUART 从属地址寄存器 EUART 地址掩码寄存器波特率微调寄存器波特率发生器寄存器 TTL 电平使能寄存器 注意 :EUART1/EUART2/EUART3 相关寄存器在 BANK1 中, 对其进行操作前, 请先将 INSCON 中的 BSK0 位置 1 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. EUART 设置 EUART 有 4 种工作方式 在通信之前用户必须先初始化 SCON, 选择方式和波特率 在所有四种方式中, 任何将 SBUF 作为目标寄存器的写操作都会启动发送 在方式 0 中由条件 RI = 0 和 REN = 1 初始化接收 这会在 TxD 引脚上产生一个时钟信号, 然后在 RxD 引脚上移 8 位数据 在其它方式中由输入的起始位初始化接收 ( 如果 REN = 1) 通过发送起始位, 外部发送器开始通信 29

30 EUART 方式列表 SM0 SM1 方式类型 波特率 帧长度起始位停止位第 9 位 同步 f SYS /(4 或 12) 8 位 无 无 无 异步 自带波特率发生器的溢出率 /16 10 位 1 1 无 异步 f SYS /(32 或 64) 11 位 1 1 0, 异步 自带波特率发生器的溢出率 /16 11 位 1 1 0, 方式 0 设置 使用方式 0, 需要先通过置 SM2 位 (SCON.5) 为 0 或 1, 波特率固定为系统时钟的 1/12 或 1/4 当 SM2 位为 0 时, 串行端口以系统时钟的 1/12 运行 当置 1 时, 串行端口以系统时钟的 1/4 运行 然后任何将 SBUF 作为目标寄存器的写操作都会启动发送 下一个系统时钟 Tx 控制块开始发送 数据转换发生在移位时钟的下降沿, 移位寄存器的内容逐次从左往右移位, 空位置 0 当移位寄存器 中的所有 8 位都发送后,Tx 控制模块停止发送操作, 然后在下一个系统时钟的上升沿将 TI 置 1 (SCON.1) 若接收到数据, 则 REN(SCON.4) 置 1 和 RI(SCON.0) 清 0 初始化接收 下一个系统时钟启 动接收, 在移位时钟的上升沿锁存数据, 接收转换寄存器的内容逐次向左移位 当所有 8 位都接收到 接收移位寄存器中后,Rx 控制块停止接收, 然后在下一个系统时钟的上升沿上 RI 置 1, 直到被软件 清 0 才允许接收 3.2. 方式 1 设置 方式 1 提供 10 位全双工异步通信,10 位由一个起始位 ( 逻辑 0), 8 个数据位 ( 低位为第一位 ) 和一个停止位 ( 逻辑 1) 组成 在接收时, 这 8 个数据位存储在 SBUF 中而停止位储存在 RB8(SCON.2) 中 方式 1 中的波特率固定为自带波特率发生器溢出率的 1/16 任何将 SBUF 作为目标寄存器的写操作都会启动发送, 实际上发送是从 16 分频计数器中的下一 次跳变之后的系统时钟开始的, 因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步 起始位首先在 TXD 引脚上移出, 然后是 8 位数据位 在发送移位寄存器中的所有 8 位数据都发送完 后, 停止位在 TXD 引脚上移出, 在停止位发出的同时 TI 标志置位 只有 REN 位置 1 时才允许接收 当 RxD 引脚检测到下降沿时串行口开始接收串行数据 为此, CPU 对 RxD 不断采样, 采样速率为波特率的 16 倍 当检测下降沿时,16 分频计数器立即复位, 这 有助于 16 分频计数器与 RxD 引脚上的串行数据位同步 16 分频计数器把每一位的时间分为 16 个状 态, 在第 状态时, 位检测器对 RXD 端的电平进行采样 为抑制噪声, 在这 3 个状态采样中 至少有 2 次采样值一致数据才被接收 如果所接收的第一位不是 0, 说明这位不是一帧数据的起始位, 该位被忽略, 接收电路被复位, 等待 RxD 引脚上另一个下降沿的到来 若起始位有效, 则移入移位 寄存器, 并接着移入其它位到移位寄存器 8 个数据位和 1 个停止位移入之后, 移位寄存器的内容被 分别装入 SBUF 和 RB8 中,RI 置 1, 但必须满足下列条件 : 1. RI = 0 2. SM2 = 0 或者接收的停止位 = 1 如果这些条件被满足, 那么停止位装入 RB8,8 个数据位装入 SBUF,RI 被置 1 否则接收的帧 会丢失 这时, 接收器将重新去探测 RxD 端是否另一个下降沿 用户必须用软件清除 RI, 然后才能 30

31 再次接收 3.3. 方式 2 设置 方式 2 是使用异步全双工通信中的 11 位 一帧由一个起始位 ( 逻辑 0), 8 个数据位 ( 低位为第 一位 ), 一个可编程的第 9 数据位和一个停止位 ( 逻辑 1) 组成 方式 2 支持多机通信和硬件地址识别 ( 详见多机通信章节 ) 在数据传送时, 第 9 数据位 (SCON 中的 TB8) 可以写 0 或 1, 例如, 可写 入 PSW 中的奇偶位 P, 或用作多机通信中的数据 / 地址标志位 当接收到数据时, 第 9 数据位进入 RB8 而停止位不保存 PCON 中的 SMOD 位选择波特率为系统工作频率的 1/32 或 1/64 任何将 SBUF 作为目标寄存器的写操作都会启动发送, 同时也将 TB8 载入到发送移位寄存器的 第 9 位中 实际上发送是从 16 分频计数器中的下一次跳变之后的系统时钟开始的, 因此位时间与 16 分频计数器是同步的, 与对 SBUF 的写操作不同步 起始位首先在 TXD 引脚上移出, 然后是 9 位数 据 在发送转换寄存器中的所有 9 位数据都发送完后, 停止位在 TXD 引脚上移出, 在停止位开始发 送时 TI 标志置位 只有 REN 位置 1 时才允许接收 当 RxD 引脚检测到下降沿时串行口开始接收串行数据 为此, CPU 对 RxD 不断采样, 采样速率为波特率的 16 倍 当检测下降沿时,16 分频计数器立即复位 这有助于 16 分频计数器与 RxD 引脚上的串行数据位同步 16 分频计数器把每一位的时间分为 16 个 状态, 在第 状态时, 位检测器对 RXD 端的电平进行采样 为抑制噪声, 在这 3 个状态采样 中至少有 2 次采样值一致数据才被接收 如果所接收的第一位不是 0, 说明这位不是一帧数据的起始 位, 该位被忽略, 接收电路被复位, 等待 RxD 引脚上另一个下降沿的到来 若起始位有效, 则移入 移位寄存器, 并接着移入其它位到移位寄存器 9 个数据位和 1 个停止位移入之后, 移位寄存器的内 容被分别装入 SBUF 和 RB8 中,RI 置 1, 但必须满足下列条件 : 1. RI = 0 2. SM2 = 0 或者接收的第 9 位 = 1, 且接收的字节符合实际从机地址 如果这些条件被满足, 那么第 9 位移入 RB8,8 位数据移入 SBUF,RI 被置 1 否则接收的数据 帧会丢失 在停止位的当中, 接收器回到寻找 RxD 引脚上的另一个下降沿 用户必须用软件清除 RI, 然后 才能再次接收 3.4. 方式 3 设置 方式 3 使用方式 2 的传输协议以及方式 1 的波特率产生方式 3.5. EUART 波特率设置 在方式 0 中, 波特率可编程为系统时钟的 1/12 或 1/4, 由 SM2 位决定 当 SM2 为 0 时, 串行端口在系统时钟的 1/12 下运行 当 SM2 为 1 时, 串行端口在系统时钟的 1/4 下运行 在方式 1 和方式 3 中, 使用自带波特率发生器, 波特率可微调, 精度为一个系统时钟, 公式如下 : BaudRate 16 Fsys SBRT SFINE 例如 :Fsys = 8MHz, 需要得到 Hz 的波特率,SBRT 和 SFINE 值计算方法如下 : /16/ =

32 SBRT = = = /(16 X 4 + SFINE) SFINE = 此微调方式计算出的实际波特率为 , 误差为 0.64%; 在方式 2 中, 波特率固定为系统时钟的 1/32 或 1/64, 由 SMOD 位 (PCON.7) 决定 当 SMOD 位为 0 时,EUART 以系统时钟的 1/64 运行 当 SMOD 位为 1 时,EUART 以系统时钟的 1/32 运行 SMOD f SYS BaudRate 2 ( ) EUART TTL 电平设置针对 5V 供电源应用中,UART 与 3V 设备通讯电平不匹配问题,SH79F6442 的 EUART 增加了 RXD 脚的 TTL 电平转换功能, 由 UTOS 寄存器控制 当 UTOS 的 bit 为 0 时,RXD 引脚的输入高电平阈值为 0.8VDD, 输入低电平阈值为 0.2VDD 此时, 若 SH79F6442 的 VDD=5V, 则 RXD 引脚的输入高电平阈值为 4V, 输入低电平阈值为 1V, 无法与 3V 设备的 UART 正常通讯 ;UTOS 的 bit1=1 时, 若 VDD = 4.5V~5.5V,RXD 引脚的输入高电平阈值为 2.0V, 输入低电平阈值为 0.8V 若 VDD = 2.0V~4.5V, 则 RXD 引脚的输入高电平阈值为 0.25VDD + 0.8, 输入低电平阈值为 0.15VDD, 能够正确接收 3V 设备所发送的数据 4. 应用实例 4.1. 要求 使用 EUART 进行串口通讯, 通讯的波特率为 9600,1 位起始位,8 位数据位,1 位停止位, 通 讯内容为 : 收到一个数据后发送收到的数据出去 4.2. 例程 #include <SH79F6442.H> unsigned char r_data; unsigned char out_flag; void uart0_init(void) CLKCON = 0x40; SBRTH=0Xff; SBRTL=0xd9; SFINE=0x01; SCON = 0x50; // 系统时钟选择 6MHz // 工作方式选择 Mode0 32

33 void main(void) uart0_init(); r_data = 0x00; out_flag = 0; TI = 0; RI = 0; EX0 = 1; EA = 1; REN = 1; TR2 = 1; while(1) if(out_flag == 1) SBUF = r_data; out_flag = 0; void uart0_int(void) interrupt 4 if(ti == 1) TI = 0; else if(ri == 1) r_data = SBUF; RI = 0; out_flag = 1; // 发送接收到的数据 5. UART1/2/3 UART1/2/3 的用法同 UART0, 需要注意的是 UART1/2/3 的相关寄存器在 BANK1 33

34 八 SH79F6442 ADC 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 SH79F6442 其 ADC 模块特性为 : 12 位分辨率 最高转换速率可达 1Msps 参考电压可选外接 VREF 或 VDD 15 路外接模拟输入,1 路内部模拟通道 4 路触发源可选自动触发 AD 转换 支持序列转换, 而且每个信道都可以配置为多路模拟输入中的任意一路 序列转换时相邻通道转换之间的时间间隔可以软件设定 SH79F6442 包括一个单端型 12 位逐次逼近型模 / 数转换器 (ADC,Analog-to-Digit Converter), 模块如图所示 ADC 负责模拟信号到相应 12 位的数字信号的转换, 当输入为 GND 时, 输出为 0; 当输入大于等于 Vref ( 所选基准电压 ) 1LSB 时, 输出最大值 ADC 的基准电压可以为 VDD 或外 接 VREF, 芯片复位后默认使用 VDD 使用外接 VREF 时, 可通过在外部引脚接电容的方法提高抗 噪性能 该模块中有 15 路模拟输入 (CH0 CH15, V BG ), 通过配置信道寄存器, 都可以编入序列中自动 进行转换 结果储存在对应的结果寄存器 ADDxH,ADDxL(x = 0-8) 中, 每转换一次序列, 结果寄 存器的值更新一次 结果寄存器和模拟输入之间的映射关系可以随意设置来组成一个转换序列, 而且 可以将某一模拟输入通道在序列中重复设置, 从而在结果寄存器中获得此模拟输入通道连续多次转换 的结果 对于单个信道, 转换速率最高可达 1MSPS, 可由寄存器设置 ADC 时钟速率以及采样时间 序列中相邻通道之间的时间间隔亦可通过寄存器设置 (TGAP[2:0]) ADC 模块能在 Idle 模式下工作, 并且 ADC 中断能够唤醒 Idle 模式 在 Power-Down 模式下, ADC 模块不工作 ADC 模块图如下 : 34

35 Software Trigger Event Trigger sequence mode SEQCH0 State pointer + GRP[2:0] SEQCHn + + SEQCH7 CH0 CH1 MUX 4 4 SOC Mode Arbiter SOC EOC EOC 3 ADD0L/H CH15 MUX 12-Bits ADC MUX REG MUX ADDnL/H VBG(1.20V) ADD7L/H VREF 1 VDD 0 ADCON1[REFC] Refc ADC_Clk Time Gap Logic Pre-Counter for ADC clock,4-bit SOC Stands for Start of Convertion EOC Stands for End of Convertion n = ADCON2[GRP] ADT[TADC] System Clock 35

36 2. 控制寄存器 ADC 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 ADT 36 ADC 时钟设置寄存器 ADCON1 ADC 控制寄存器 1 ADCON2 ADC 控制寄存器 2 SEQCON 映像控制寄存器 ADCH1 设置 AD 信道配置寄存器 1 ADCH2 设置 AD 信道配置 2 SEQCHx ADDxL ADDxH 通道寄存器,x=0-7 ADC 结果低位寄存器,x=0-7 ADC 结果高位寄存器,x=0-7 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. ADC 设置 软件启动 ADC 转换步骤 : 1. 使能 ADC 模块 2. 选择参考电压 3. 设置转换序列, 包括信道数设置以及信道中模拟输入的选择 4. 清 0ADCIF 5. GO/DONE置 1 开始 ADC 转换 6. GO/DONE为 0 或者 ADCIF 为 1, 如果 ADC 中断使能, 则进入中断处理程序, 软件清 0 ADCIF 7. 通过设置映射寄存器, 依次读取出转换序列中各通道结果寄存器 ADDxH/ADDxL 的转换数据 8. 重复 3~7 开始另一次转换 硬件启动 ADC 转换步骤 : 1. 使能 ADC 模块 2. 选择参考电压 3. 设置转换序列, 包括信道数设置以及信道中模拟输入的选择 4. 设置触发源 5. 清 0ADCIF 6. 若 ADCIF 为 1, 如果 ADC 中断使能, 则进入中断处理程序, 软件清 0ADCIF 7. 通过设置映射寄存器, 依次读取出转换序列中各通道结果寄存器 ADDxH/ADDxL 的转换数据 4. 应用实例 4.1. 要求 连续顺序采样 AN7,AN6, AN5, AN4, AN3, AN2, AN1,AN0 端口的输入电压,Vref = Vdd, 转 换结果放在 ADC_res 数组中 4.2. 例程

37 #include "SH79F6442.h" #include "intrins.h" #include "cpu.h" UINT16 ADC_res[8]; void init_adc() UCHAR i; ADCON1 = 0x80; //ADC 参考电压选择 VDD, 无触发 ADT=0x21; // 系统时钟 24M Sysclk, 500k sps. ADCON2 = 0x72; // 8 路采样通道采样间隔时间为 :4Tad ADCH1 = 0xff; //P3.7~P3.4, P4.3~P4.0 作为 ADC 采样通道 AN7~AN0 // 配置通道采样序列为 :AN7,AN6, AN5, AN4, AN3, AN2, AN1, AN0 SEQCON = 0x0; // 配置 SEQCH0 SEQCHX = 0x7; SEQCON = 0x01; // 配置 SEQCH1 SEQCHX = 0x06; SEQCON = 0x02; // 配置 SEQCH2 SEQCHX = 0x05; SEQCON = 0x03; // 配置 SEQCH3 SEQCHX = 0x04; SEQCON = 0x04; // 配置 SEQCH4 SEQCHX = 0x03; SEQCON = 0x05; // 配置 SEQCH5 SEQCHX = 0x02; SEQCON = 0x06; // 配置 SEQCH6 SEQCHX = 0x01; SEQCON = 0x07; // 配置 SEQCH7 SEQCHX = 0x0; SEQCON &= 0x7f; // 转换结果左对齐 ADCON1 = 0x01; // 开始转换 while(adcon1 & 0x01); // 检测是否转换完成 for(i = 0; i < 8; i++) // 获取转换结果 SEQCON = i; ADC_res[i] = ((ADDXH << 4) + (ADDXL >> 4)); 37

38 Clock Select P0CEX1 P0CEX0 SH79F6442 应用指南 九 SH79F6442 PCA 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 SH79F6442 其 PCA 特性为 : SH79F6442 有 4 个 16 位定时器 PCA(0-3), 都具有两路独立比较捕捉模块 ; 可以实现相位修正, 相频修正说明 :1 小下标 n 为比较捕捉模块序号, 例如 P0CEXn(n=0 1), 下文将统一使用 P0CEXn, 不再说明 n 的值 以 PCA0 为例介绍 : 可编程计数器阵列 PCA0 提供增强的定时器功能, 与标准 8051 的计数器 / 定时器相比, 它需要较少 的 CPU 干预 PCA0 都由一个专用的 16 位计数器 / 定时器和 2 个 16 位捕捉 / 比较模块组成,PCA 的原 理框图如下所示, 每个捕捉 / 比较模块有其自己的 I/O 线 (P0CEXn(n=0,1) Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0CPS2~0 PRx Capture/ Compare Cell 0 P0TOPH P0TOPL Overflow Flag 16Bit Compare Overflow CF0 16 Bit Counter Clear Capture/ Compare Cell 1 Interrupt Request 16 位的 PCA0 计数器 / 定时器内部集成 16 位的计数单元, 16 位的计数溢出值寄存器由 P0TOPH 和 P0TOPL 组成, 用户可以自由地配置 P0TOP 寄存器定义计数器的溢出值,P0TOP 寄存器上电初始 值为 0xFFFF 16 位定时器 / 计数器是 PCA0 最基本, 也是各个模块正常运转必不可少的单元 通过 PCACON 寄存器的 PR0 位可以开启 / 禁止定时器 / 计数器工作, 当 PR0 设置为逻辑 0 时, 定时器 / 计数器 16 位 counter 也被强制清 0 当计时器从 0x0000 向 P0TOP 计数溢出 (P0TOP 到 0x0000 的同一个系统时钟里, 即单斜坡模式 ) 或计数器从 P0TOP 递减计数为 0x0000(PCA0 Counter 工作在双斜坡模式 ) 时, P0CF 寄存器中的溢出标志 (CF0) 被置为逻辑 1 并产生一个中断请求 (P0CMD 中 ECF0 位设置为逻辑 1 即可允许 CF0 标志产生中断请求 ) 当 CPU 转向中断服务程序时,CF0 位不能被硬件自动清除, 必须用软件清除 注意 :16 位寄存器 P0TOPH 和 P0TOPL P0CPHn 和 P0CPLn 读写操作遵循以下顺序 : 写操作 : 先高位后低位 读操作 : 读 P0TOPH 和 P0TOPL P0CPHn 和 P0CPLn 对 PCA0 计数无影响 38

39 2. 控制寄存器 PCA 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 P0CF PCACON P0CMD P0CPMn PCA 中断标志寄存器 PCA 计数使能寄存器 PCA 方式寄存器 PCA 比较捕捉寄存器 模块控制 P0FORCE 比较捕捉模块强制输出控制寄存器 P0TOPL P0TOPH P0CPLn P0CPHn PCA0 计数最大值低字节 PCA0 计数最大值高字节 PCA 比较捕捉模块低字节 PCA 比较捕捉模块高字节 注意 :PCA0/PCA1/PCA2/PCA3 相关寄存器在 BANK2 中, 对其进行操作前, 请先将 INSCON 中的 BKS1 位置 1 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 注意 :n 表示比较捕捉模块的序号 3. PCA 设置 3.1. PCA 时钟设置 PCA0 的计数器 / 定时器有一个可编程选择时钟源 : 系统时钟 系统时钟 /4 系统时钟 /12 系统时 钟 /32 外部振荡器时钟 /8 定时器 3 溢出或 ECI0 输入引脚上的外部时钟信号 Khz 晶振 / 内建 128kHzRC, 通过 P0CMD 寄存器中的 P0CPS2-P0CPS0 位选择定时器 / 计数器的时钟源 ( 详见 DATASHEET), 如下表所示 PxCPS2 PxCPS1 PxCPS0 时钟源 系统时钟 系统时钟的 4 分频 系统时钟的 12 分频 系统时钟的 32 分频 定时器 4 溢出 外部振荡器的 8 分频 ECI0 下降沿 ( 最大速率 = 系统时钟频率 /4) Khz/ 内建 128kHzRC 注意 :1 外部振荡器 8 分频与系统时钟同步 2 系统时钟周期不得低于计数时钟周期的 4 倍频 ( 计数时钟为系统时钟时除外 ), 否则 PCA0 Counter 将不能正确计数 3 只有当 OP_OSC[3:0]=1010 时, 外部 Khz 晶振作为计数源时钟, 当 OP_OSC[3:0]=0011 或 0110 时, 内建的 128Khz 作为计数源时钟 39

40 3.2. PCA 计数方式设置 PCA0 的计数器 / 定时器有一个计数方式可选择的控制位, 通过 P0CMD 寄存器中的 P0SDEN 为 0 表示单斜坡,P0SDEN 为 1 表示双斜坡 单斜坡和双斜坡的时序波形图如下所示 : When CF0=1,new TOP reload,new TOP will take effect after the next interrupt PCA0 period 单斜坡时序图 CF0 set 1 PCA0 period 3.3. PCA 模式设置 双斜坡示意图 PCA0 计数器挂载 2 路捕捉 / 比较模块均可以实现增强功能 每个捕捉 / 比较模块 n 都可被配置为独 立工作, 每个模块在系统控制器中都有属于自己的特殊功能寄存器 (SFR), 这些寄存器用于配置模块 的工作方式和与模块交换数据 可以通过配置各自模块 P0CPMn 寄存器中 P0SMPn 和 P0SMNn 两位 使能该模块工作在以下 4 种工作模式之一 : 边沿触发捕捉 软件定时器 频率输出 PWM 输出模式 模式选择表如下所示 : 模式 PxSDEN P0SMPn P0SMNn P0FSPn P0FSNn 功能说明 Mode Mode X 正沿触发捕捉 ( 单斜坡 ) 1 0 负沿触发捕捉 ( 单斜坡 ) 1 1 任意沿触发捕捉 ( 单斜坡 ) 0 X 连续软件定时 ( 单斜坡 ) 1 X 单次软件定时 ( 单斜坡 ) Mode X X 频率输出 ( 单斜坡 ) Mode3 其它 位 PWM( 单斜坡 ) 位 PWM( 单斜坡 ) 16 位相位修正 PWM( 双斜坡 ) 16 位相频修正 PWM( 双斜坡 ) PCA0 Counter 正确计数, 但比较 / 捕捉模块不工作

41 Clock Select SH79F6442 应用指南 注意 :1 X 表示任意 ; 2 当 PCA0 被设定为两种斜坡中的一种时, 比较捕捉模块的另一种斜坡模式即使被配置也是无效的 3 改变 P0TOP 值必须保证新的 P0TOP 值不小于所有比较寄存器的数值 4 比较 / 捕捉模块作为 PWM 输出功能时, 若 P0CPHn 等于 0x00, 输出一直保持为低电 平 ; 若 P0CPHn 等于 P0TOP, 输出则保持为高电平 引脚取反则输出正好相反 ; 5 PCA0 的所有比较 / 捕捉模块只能工作于同一斜坡模式 ( 例 :PCA0 的比较 / 捕捉模块 0 和比较 / 捕捉模块 1 只能工作在同一斜坡模式 ) 3.4. PCA 模式 0 设置 模式 0 称为边沿触发的捕捉模式, 在该方式,P0CEXn 引脚上出现的电平跳变将捕捉 PCA0 计数 器 / 定时器的当前计数值并将其装入到对应模块的 16 位捕捉 / 比较寄存器 (P0CPLn 和 P0CPHn ) 中 模式 0: 需配置 P0CPMn 的 bit7:bit6=00. 正沿触发捕获 : 需配置 P0CPMn 的 bit5:bit4=00 或 01 负沿触发捕获 : 需配置 P0CPMn 的 bit5:bit4=10 双沿触发捕获 : 需配置 P0CPMn 的 bit5:bit4=11 使能比较捕捉模块 : 需配置 P0CPMn 的 bit3=1 使能比较捕捉模块中断使能 :P0CPMn 的 bit1=1 (P0SMPn:P0SMNn) (P0ECOMn) (P0FSPn:P0FSNn) 详细的解释参见 SH79F6442 DATASHEET 寄存器 P0CPMn 的描述 捕获的原理框图如下 : P0CPS2~0 Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0SMPn P0SMNn P0ECOMn PR0 P0FSPn P0TOPH P0TOPL 16Bit Compare PH0 PL0 Capture Overflow Clear Overflow Flag CF0 Interrupt Request P0CEXn P0FSNn P0CPHn P0CPLn P0CCFn ADC P0TCPn PCA0 捕捉方式原理框图 3.5. PCA 模式 1 设置模式 1 称之为软件定时方式, 软件定时器方式也称为比较输出方式 ( 通过配置 P0SMPn: P0SMNn=01 使能该方式 ) 在该方式,P0FSPn :P0FSNn =0x, 可以实现连续软件定时,PCA0 将计数器 / 定时器的计数值与模块的 16 位捕捉 / 比较寄存器 (P0CPHn 和 P0CPLn) 进行比较 当发生匹配时,P0CF 中的捕捉 / 比较标志 (P0CCFn) 被置为逻辑 1 ( 当 P0MATn = 1 时 ) 并产生一个中断请求 ( 如果 P0CCFn 中断被允许 ), 并且模块的 P0CEXn 引脚上的逻辑电平将发生变化 ( 设置 P0TCPn 位使能该 41

42 Clock Select SH79F6442 应用指南 功能 ) 当 CPU 转向中断服务程序时,P0CCFn 位不能被硬件自动清除, 必须用软件清 0 模式 1: 需配置 P0CPMn 的 bit7:bit6=01 (P0SMPn:P0SMNn) 连续软件定时 : 需配置 P0CPMn 的 bit5:bit4=00 或 01 (P0FSPn:P0FSNn) 单次软件定时 : 需配置 P0CPMn 的 bit5:bit4=10 或 11 (P0FSPn:P0FSNn) 使能比较捕捉模块 : 需配置 P0CPMn 的 bit3=1 (P0ECOMn) P0CEXn 引脚输出电平 : 需配置 P0CPMn 的 bit2=1 (P0TCPn) 详细的解释参见 SH79F6442 DATASHEET 寄存器 P0CPMn 的描述 软件定时原理框图如下 : Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0ECOMn P0SMPn P0SMNn P0CPS2~0 PR0 Enable P0TOPH P0TOPL 16Bit Compare PH0 PL0 16Bit Compare P0CPHn P0CPLn Overflow Clear Match ADC P0MATn Overflow Flag CF0 P0CCFn P0TCPn P0CEXn Interrupt Request 3.6. PCA 模式 2 设置 软件定时原理框图 模式 2 称为频率输出方式, 频率输出方式可在模块的 P0CEXn 引脚产生可编程频率的方波 ( 配置 P0SMPn:P0SMNn=10 使能该模式, 在此模式下,P0CPn 寄存器的更新不使用双缓冲机制 ) 捕捉/ 比较模块的高字节 P0CPH0 保持输出电平改变前要计的 PCA 时钟数 所产生的方波的频率 FP0CEXn= FPCA0 /(2 P0CPHn) 注 : 对于该方程,P0CPHn 中的值为 0x00 时, 相当于 256 捕捉 / 比较模块的低字节 P0CPLn 与 PCA0 计数器的低字节 PLx 进行比较 ; 若两者匹配时,P0CEXn 引脚的电平发生改变, 同时高字节 P0CPHn 中的偏移值被加到 P0CPLn,PLx 继续计数直到再次匹配, P0CEXn 引脚的电平改变, 周而复始,P0CEXn 引脚输出频率由 P0CPH0 控制 如果 PCA0 的某个比较 / 捕捉模块使能该模式,P0TOPL 的值固定为 0XFF, 用户可以配置 P0TOPH 值来改变计数最大值 模式 2: 需配置 P0CPMn 的 bit7:bit6=10 (P0SMPn:P0SMNn) 使能比较捕捉模块 : 需配置 P0CPMn 的 bit3=1 (P0ECOMn) 频率输出原理框图如下 : 42

43 Enabl e Clock Select SH79F6442 应用指南 Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0CPS2~0 PR0 P0TOPL 8Bit Compare PL0 PL0 Overflow Clear P0ECOMn P0SMPn P0SMNn Enable 8Bit Compare Match P0CEX n P0CPLn 8Bit Adder P0CPHn 频率输出原理图 3.7. PCA 模式 3 设置模式三称为 PWM 模式,PWM 模式分为四种, 如下表所示 : P0FSPn P0FSNn 功能说明 位 PWM( 单斜坡 ) 位 PWM( 单斜坡 ) 位相位修正 PWM( 双斜坡 ) 位相频修正 PWM( 双斜坡 ) 模式 3: 需配置 P0CPMn 的 bit7:bit6=11 PWM 模式需配置 bit5:bit4 (P0FSPn:P0FSNn), 如上表所示 位 PWM 模式 ( 单缓冲机制, 单斜坡 ) 当比较 / 捕捉模块工作在 8 位 PWM 功能时,PCA0 Counter 低 8 位 PLx 从 0x00 向 P0TOPL 递增计数 ( 单斜坡模式 ), 当 PLx 溢出时 ( 从 0xFF 到 0x00), 保存在 P0CPHn 中的值被自动装入到 P0CPLn, 这个过程不需软件干预, 当 P0TCPn =0 时,PCA 计数器 / 定时器的低字节 (PLx) 与 P0CPLn 中的值相等时, P0CEXn 引脚上的输出被清 0 ; 当 PLx 中的计数值溢出时,P0CEXn 输出被置 1 ; 当 P0TCPn =1 时,P0CEXn 引脚输出极性相反的波形 8 位 PWM 方式的占空比 Duty=(256-(P0CPHn+1)) /256 如果 PCA0 的某个比较 / 捕捉模块使能该模式,P0TOPL 的值固定为 0XFF, 用户可以配置 P0TOPH 值来改变计数最大值, 但不影响 8 位 PWM 输出周期 原理框图如下所示 详情参见 SH79F6442 DATASHEET 43

44 Clock Select Clock Select SET CLR SH79F6442 应用指南 P0TOPL PxCPS2~0 Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0ECOMn P0FSPn P0FSNn P0SMPn P0SMNn PRx Enable 8Bit Compare PL0 8Bit Compare P0CPLn PL0 Overflow Clear Match P0MATn S R Q Q P0CCFn Interrupt Request P0CEXn P0CPHn Reload P0TCPn 8 位脉宽调制器 (PWM) 方式原理框图 位 PWM 模式 ( 单缓冲机制, 单斜坡 ) 16 位脉宽调制 PWM 同 8 位 PWM 模式类似, 都是基于 PCA0 Counter 的单沿计数模式 在该方式下,16 位捕捉 / 比较模块 PxCPn 用来定义 PWM 信号低电平时间的 PCA0 时钟数 当 P0TCPn =0 时, PCA0 计数器与模块的匹配寄存器 PxCPn 值匹配时,P0CEXn 的输出被置为清 0 ; 当计数器溢出时, P0CEXn 输出被置 1, 当 P0TCPn =1 时,P0CEXn 引脚输出极性相反的波形 16 位 PWM 方式的占空比 Duty=(65536-(PxCPn+1)) /65536 原理框图如下所示 详情参见 SH79F6442 DATASHEET Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0ECOMn P0FSPn P0FSNn P0SMPn P0SMNn PxCPS2~0 PRx P0TOPH P0TOPL 16Bit Compare PH0 PL0 Overflow Clear Enable 16Bit Compare Match P0CPHn P0CPLn P0MATn R S SET CLR Q Q P0TCPn Overflow Flag CF0 P0CCFn Interrupt Request P0CEXn 16 位 PWM 模式框图 位相位修正 PWM 模式 ( 双缓冲机制, 双斜坡,TOP 端更新 ) 相位修正 PWM(XPWM) 功能为用户提供了一个获得高精度的 相位准确的 PWM 波形的方法 此模式是基于双斜坡操作 即计时器重复地从 0x0000 计到 P0TOP, 然后又从 P0TOP 倒退回到 0x0000 当 P0TCPn=0 时, 当计时器往 P0TOP 计数时若 PCA0 Counter 与 PxCPn 匹配,P0CEXn 将清零为低电平 ; 而在计时器往 0x0000 计数时若 PCA0 Counter 与 P0CPn 匹配,P0CEXn 将置位为高电平 当 P0TCPn =1 时,P0CEXn 引脚输出极性相反的波形 工作于相位修正 PWM 模式时, 计数器的数值一直累加到 P0TOP 值, 然后改变计数方向 在一个定时器时钟周期里 PCA0 值等于 P0TOP 值, 然后在下一次计数到来时 P0TOP 和 P0CPn 将得到更新 原理框图如下所示 详情参见 SH79F6442 DATASHEET 44

45 Clock Select Clock Select SET CLR SH79F6442 应用指南 Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0CPS2~0 0x0000 PR0 16Bit Compare PH0 PL0 P0TOP Decrease Count P0MATn Matc h CF0 P0CCFn Interrupt Request P0ECOMn P0FSPn P0FSNn P0SMPn P0SMNn Enabl e 16Bit Compare P0CPHn P0CPLn /2 R S Q Q P0TCP n P0CEX n 16 位相位修正模式框图 位相频修正 PWM 模式 ( 双缓冲机制, 双斜坡,BOTTOM 端更新 ) 相位与频率修正 PWM(XPPWM) 模式以下简称相频修正 PWM 模式 与相位修正模式类似, 该功能也是基于双斜坡 操作 XPPWM 可以产生高精度的 相位与频率都准确的 PWM 波形 其实现原理框图如下图 XXX 所示 计时器重复地从 0x0000 计到 P0TOP, 然后又从 P0TOP 倒计数到 0X0000 P0TCPn=0 时, 当计时器往 P0TOP 计数时若 PCA0 Counter 与 PxCPn 匹配,P0CEXn 将清零为低电平 ; 而在计时器往 0x0000 计数时若 PCA0 Counter 与 PxCPn 匹配,P0CEXn 将置位为高电平 当 P0TCPn=1 时,P0CEXn 引脚输出极性相反的波形 相频修正 PWM 输出的 PWM 在所有的周期中均为对称的信号, 这是由于相位修正 PWM 是在 P0TOP 点更新 PxCPn 和 P0TOP 寄存器值, 而相频修正 PWM 则是在 0x0000 点更新 PxCPn 和 P0TOP 寄存器的值 原理框图如下所示 详情参见 SH79F6442 DATASHEET Sysclk Sysclk/4 Sysclk/12 Sysclk/32 TIMER3 ECI0 Crystal/ k/128k P0ECOMn P0FSPn P0FSNn P0SMPn P0SMNn P0CPS2~0 0x0000 PR0 Enabl e 16Bit Compare PH0 PL0 16Bit Compare P0CPHn P0CPLn P0MATn Matc h /2 P0TOP S R CF0 P0CCFn P0TCP n SET CLR Q Q Interrupt Request P0CEX n 16 位相频修正模式框图 4. 应用实例 4.1. 方式 0 例程 #include "SH79F6442.h" uchar Val_l; uchar Val_h; void main() IEN0 =0x80; // 开总中断 EA 45

46 IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; // 切换至 BANK2 P0CMD=0x00; // 选择系统时钟, 单斜坡方式, 禁止溢出中断 P0CPM0=0x39; // 方式 0, 双沿触发捕获, 允许捕获中断 P0TOPH=0x08; P0TOPL=0x00; PCACON=0x1; // 启动计数 While(1); void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; Val_l=P0CPL0; // 从 P0CEX0 灌上升沿或下降沿后将捕获的值赋给变量 Val_h=P0CPH0; P0CF =0x0; _pop_(inscon); 4.2. 方式 1 例程要求 :P0CEX0 输出方波 #include "SH79F6442.h" void main() IEN0 =0x80; // 开总中断 EA IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; P0CMD=0x00; // 选择系统时钟, 单斜坡方式, 禁止溢出中断 P0CPM0=0x47; // 方式 1, 允许 P0CEX0 输出波形, 允许比较捕捉模块中断 P0TOPH=0x40; P0TOPL=0x20; P0CPH0=0x00; P0CPL0=0x20; P0CPM0 =0x08; // 使能比较捕捉模块 PCACON=0x1; // 启动计数 While(1); 46

47 void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; P0CF =0x0; _pop_(inscon); 4.3. 方式 2 例程要求 :P0CEX0 输出一定频率的方波 #include "SH79F6442.h" void main() IEN0 = 0x80; // 开总中断 EA IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; P0CMD=0x00; // 选择系统时钟, 单斜坡方式, 禁止溢出中断 P0CPM0=0x80; // 方式 2 P0CPH0=0x10; P0CPL0=0x20; PCACON=0x1; P0CPM0 =0x08; // 使能比较捕捉模块 PCACON=0x1; // 启动计数 While(1); void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; P0CF =0x0; _pop_(inscon); 4.4. 方式 3 例程 位 PWM 方式要求 :P0CEX0 和 P0CEX1 输出一对无死区的方波 #include "SH79F6442.h" 47

48 void main() IEN0 = 0x80; //EA IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; P0CMD=0x80; // 选择系统时钟, 单斜坡方式, 允许溢出中断 P0CPM0=0xC3; // 比较捕捉模块 0 方式 3(8 位 PWM), 允许比较捕捉模块中断 P0CPH0=0x30; P0CPL0=0x30; P0CPM0 =0x08; // 使能比较捕捉模块 0 P0CPM1=0xC3; // 比较捕捉模块 1 方式 3(8 位 PWM), 允许比较捕捉模块中断 P0CPH1=0x30; P0CPL1=0x30; P0CPM1 =0x0c; // 使能比较捕捉模块 1 PCACON=0x1; // 启动计数 While(1); void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; P0CF =0x0; _pop_(inscon); 位 PWM 方式 #include "SH79F6442.h" 要求 :P0CEX0 和 P0CEX1 输出一对无死区的方波 void main() IEN0 = 0x80; // EA IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; P0CMD=0x80; // 选择系统时钟, 单斜坡方式, 允许溢出中断 P0CPM0=0xD3; // 比较捕捉模块 0 方式 3(16 位 PWM), 允许比较捕捉模块中断 P0CPH0=0x30; 48

49 P0CPL0=0x30; P0CPM0 =0x08; // 使能比较捕捉模块 0 P0CPM1=0xD3; // 比较捕捉模块 1 方式 3(16 位 PWM), 允许比较捕捉模块中断 P0CPH1=0x30; P0CPL1=0x30; P0CPM1 =0x0c; // 使能比较捕捉模块 1 PCACON=0x1; // 启动计数 While(1); void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; P0CF =0x0; _pop_(inscon); 位相位调整 PWM 方式要求 :P0CEX0 和 P0CEX1 输出一对无死区的方波 void main() IEN0 = 0x80; //EA IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; P0CMD=0xC0; // 选择系统时钟, 双斜坡方式, 允许溢出中断 P0TOPH=0x01; P0TOPL=0x00; P0CPM0=0xE3; // 比较捕捉模块 0 方式 3(16 位相位修正 PWM), 允许比较捕捉模块中断 P0CPH0=0x0; P0CPL0=0x90; P0CPM0 =0x08; // 使能比较捕捉模块 0 P0CPM1=0xE3; // 比较捕捉模块 1 方式 3(16 位相位修正 PWM), 允许比较捕捉模块中断 P0CPH1=0x0; P0CPL1=0x90; P0CPM1 =0x0c; // 使能比较捕捉模块 1 PCACON=0x1; // 启动计数 While(1); 49

50 void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; P0CF =0x0; _pop_(inscon); 位相频调整 PWM 方式要求 :P0CEX0 和 P0CEX1 输出一对无死区的方波 void main() IEN0 = 0x80; //EA IEN1 = 0x10; // 允许 PCA0 中断 INSCON=0x80; P0CMD=0xC0; // 选择系统时钟, 双斜坡方式, 允许溢出中断 P0TOPH=0x01; P0TOPL=0x00; P0CPM0=0xF3; // 比较捕捉模块 0 方式 3(16 位相频修正 PWM), 允许比较捕捉模块中断 P0CPH0=0x0; P0CPL0=0x90; P0CPM0 =0x08; // 使能比较捕捉模块 0 P0CPM1=0xF3; // 比较捕捉模块 0 方式 3(16 位相频修正 PWM), 允许比较捕捉模块中断 P0CPH1=0x0; P0CPL1=0x90; P0CPM1 =0x0c; // 使能比较捕捉模块 1 PCACON=0x1; // 启动计数 While(1); void INT_PCA0(void) interrupt 11 _push_(inscon); INSCON=0x80; P0CF =0x0; _pop_(inscon); 50

51 5. PCA1/2/3 PCA1/2/3 的用法同 PCA0, 需要注意的是 PCA0/1/2/3 的相关寄存器在 BANK2 51

52 十 SH79F6442 LCD 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 SH79F6442 其 LCD 驱动器特性为 : 支持 的 LCD 驱动 LCD 驱动支持 1/3 1/4Bias 电阻型 LCD 驱动支持软件对比度调节 电阻型 LCD 驱动支持快速充电模式 (Fast Charge Mode) 以降低功耗 SH79F6442 提供传统电阻型 LCD 显示方式, 支持对比度调节, 支持 1/4 占空比 1/3 偏置电压 1/5 占空比 1/3 偏置电压和 1/6 占空比 1/4 偏置电压驱动方式 当 LCDCON 寄存器的 ELCC 位置 1 时 LCD 驱动电压 V LCD 由对比度控制位决定, 当 ELCC 位清 0 时,V LCD 等于 V DD 当 MCU 进入省电模 式后, 若 kHz 振荡器 /128kHzRC 工作, 则 LCD 工作 在上电复位 引脚复位 低电压复位或 看门狗复位期间,LCD 被关闭 当 LCD 被关闭时,COM 和 SEG 被复用为 IO 2. 控制寄存器 LCD 模块使用的所有控制寄存器如下表所示 : 类别 缩写符号 功能说明 LCDCON 控制寄存器 DISPCON1 控制寄存器 1 DISPCLK0 时钟控制寄存器 LCDSEG1 Px 模式选择寄存器 模块控制 LCDSEG2 Px 模式选择寄存器 LCDSEG3 Px 模式选择寄存器 LCDSEG4 Px 模式选择寄存器 LCDSEG5 Px 模式选择寄存器 COMSEL COM 模式选择寄存器 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. LCD 设置 3.1 LCD 时钟及帧频设置 代码选项选择双时钟且低频为 K crystal 时 (OP_OSC 为 1010),LCD 的时钟源为 K crystal, 固定帧频 64Hz,DISPCLK0 寄存器无效 ; 选择不同的占空比, 帧频略有差异 ; 52

53 代码选项选择其余时钟时 ( 包括高频单时钟 ),LCD 的时钟源为 128K RC, 设置 DISPCLK0 寄存器 DCK[1:0], 选择 1/4,1/3,1/2,1/1 分频比, 对应的 LCD/LED 帧频为 256/4Hz,256/3Hz, 256/2Hz,256/1Hz, 选择不同的占空比, 帧频略有差异 ; 代码选项选择高频单时钟时 (OP_OSC 为 0000,1110 或 1111),STOP 模式下,LCD/LED 时钟关闭 ; 代码选项选择双时钟 (OP_OSC 为 0011,1010 或 0110), 且工作在高频时钟, 进 STOP 模式, LCD 时钟继续工作 ; 代码选项选择双时钟 (OP_OSC 为 0011,1010 或 0110), 且工作在低频时钟, 进 stop 模式,LCD 时钟关闭 ;IDLE 模式下,LCD 时钟保持工作 3.2 LCD 占空比及偏置电阻设置由 DISPCON1 寄存器的 DUTY[2:0] 位选择 1/4 占空比 1/3 偏置,1/5 占空比 1/3 偏置电压,1/6 占空比 1/3 偏置,1/8 占空比,1/4 偏置电压. 由 DISPCON 寄存器的 VOL[3:0] 位控制 16 级对比度调节 ; LCD 偏置电阻 (RLCD) 偏 20K/300K/500K, 偏置电阻总和为 60K/900K/1.5M 3.3 LCD 模式设置由 DISPCON1 寄存器的 MOD[1:0] 位控制, 可选择为传统电阻型 LCD, 也可选择为另一种即快速充电模式 (Fast Charge Mode) 以降低功耗 选择 20k 偏置电阻可以得到较好的显示效果, 但电流相对会大一些, 不适合低功耗的应用 若选择 300k/500k 偏置电阻, 虽然可以达到较低的功耗, 但 LCD 显示效果会变得差一些 因此,SH79F6442 提供了兼顾低功耗和显示效果的显示模式 : 快速充电模式 设置 MOD[1:0] = 10 可以选择此种显示方式, 在显示数据刷新时刻选择 20k 偏置电阻, 提供较大的驱动电流, 在数据保持期间选择 300k/500k 偏置电阻, 提供较小的驱动电流 由 DISPCON1 寄存器的 FCCTL[1:0] 位选择充电时间为 LCD COM 周期的 1/8 1/16 1/32 或 1/64 53

54 4. 应用实例 4.1 要求 选用 COM1-4,SEG5-6 产生如下的显示波形 :(frame = 64Hz) COM4 one frame COM3 COM2 COM1 COM1 COM2 COM3 Vcc V2 V1 0 Vcc V2 V1 0 Vcc V2 V1 0 COM4 Vcc V2 V1 0 SEGn+1 SEGn SEGn Vcc V2 V1 0 SEGn+1 Vcc V2 V1 0 Vcc V COM4 - SEGn V1 0 -V1 -V2 -Vcc 54

55 4.2 例程 #include <SH79F6442.H> #include <intrins.h> xdata unsigned char SEG5 _at_ 0x1004; xdata unsigned char SEG6 _at_ 0x1005; void LCD_init(void) CLKCON = 0x00; // 系统时钟选择 24MHz DISPCON = 0x2F; //LCD 对比度选择 Vlcd = Vdd DISPCON1 = 0x20; //1/8 占空比, 传统电阻型 LCD 驱动, 总电阻 900K DISPCLK0 = 0x00; //LCD 帧频 64Hz LCDSEG1 = 0x60; LCDSEG2 = 0x00; LCDSEG3= 0x00; LCDSEG4= 0x00; LCDSEG5= 0x00; COMSEL = 0xff; // 选择 com1-8, seg 5-6 void main(void) LCD_init(); SEG5 = 0x0D; SEG6 = 0x0B; LCDCON = 0x80; while(1); //LCD RAM 赋初值 // 使能 LCD 驱动模块 55

56 十一 SH79F6442 LED 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片它有着运行更快速的优越特性 LED 驱动器包含一个控制器,8 个 COM 输出引脚和 16 个 SEG 输出引脚 支持 1/1~1/8 占空比电压驱动方式 LED 和 LCD 功能, 同时只能使用一种功能 LED 驱动器有两种运行模式 模式 1: 亮灭 LED 模式当 LED 驱动器工作在亮灭 LED 模式时, 每一个 LEDRAM 位控制一个 LED 灯, 当 LEDRAM 位为 0 时,LED 熄灭, 当 LEDRAM 位为 1 时,LED 点亮 ; 在 LED 一帧或者一个 COM 扫描结束后, LED 驱动器对应的中断标志位 LEDIF 或者 COMIF 标志位置 1 模式 2: 调光 LED 模式当 LED 驱动器工作在调光 LED 模式时, 每一个 LEDRAM byte 控制正在扫描的 COM 周期内 SEG 的占空比 ; 该占空比总共可以 256 档可选 ; 当 LEDRAM byte 为 0xff 时,SEG 输出最大占空比, 当 LEDRAM byte 为 0x00 时,SEG 输出最小占空比 ; 当 LEDRAM byte 为 0x00~0xff 中间值时,SEG 输出相对应的占空比 ; 针对 LEDRAM byte 的修改, 会在下一个 COM 扫描周期生效 ; 在 LED 每一个 COM 周期扫描结束后, 立即进行下一个 COM 周期的扫描,LED 驱动器对应的中断标志位 COMIF 会置 1, 由于 LED 驱动器工作在模式 2, 所以在 LED 驱动使能后,COMIF 中断标志位也会置 1, 方便用户修改 LEDRAM 的值 ; 在扫描完成一帧后,LED 驱动器对应的中断标志位 LEDIF 会置 1; 无论 LED 驱动器工作在模式 1 或者模式 2,COM 和 SEG 的非选电平都为浮动电平, COM 的输出有效电平为低电平,SEG 的输出有效电平为输出高电平 LEDCOM 寄存器控制 LED 驱动器的 COM 个数 ;SEG01/SEG02 寄存器控制 LED 驱动器 SEG 的个数 ; DISPCOM 寄存器可以设置每一个 COM 周期的宽度 ; 为了防止两个 COM 显示切换之间的不确定状态,LED 驱动器会在 2 个 COM 之间插入一段死区时间, 在死区时间内,COM 输出浮动电平, 死区时间的长度为 N 个系统时钟宽度, 可以通过 LEDDZ 寄存器来设置 ; 在上电复位 引脚复位 低电压复位或看门狗复位期间,LED 被关闭 当 LED 被关闭时, 被选中 COM 和 SEG 输出为浮动电平 IDLE 模式下,LED 驱动器保持工作,Power-Down 模式下,LED 驱动器关闭 在双时钟模式下, LED 工作在高频时钟, 需要设置高频时钟下的 LED 时钟寄存器 DISCOM, 切换到低频时钟时, 需要将 LED 时钟寄存器 DISCOM 做相应修改 56

57 2. 控制寄存器 LED 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 LEDCON DISCOM LEDDZ SEG01/SEG02 COMSEL 控制寄存器 COM 扫描宽度控制寄存器死区宽度控制寄存器 SEG 模式选择寄存器 COM 模式选择寄存器 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. LED 设置模式 1 举例 : TB 为 LED 单 COM 扫描宽度,TSYS 为系统时钟宽度, TLED 为 LED 扫描时间宽度 TB = TSYS*256*DISCOM TLED = TB *S S 为 LED 扫描的 COM 数量 : 扫描 4COM 即 S=4, 扫描 5COM 即 S=5, 以此类推 以需要显示的 LED 帧频 200HZ(5ms) 为例, 当 LED 为 5COM 且系统时钟为 RC 24MHz 时 : TB= TSYS *256* DISCOM =41.66ns*256*94(5EH) = ns= u s=1.002ms 需要设置 TLED =5ms TLED= TB*S =1.002ms*5=5.010ms 设置需要开启的中断功能 (ELED=1), 可选择帧中断 (LEDFY=1) ( 必须 ) 或者 COM 中断 (LEDCY=1)( 可选 ) 开启 LED 模块并启动 LED 扫描, 当一帧 / 一 COM 波形扫描结束后, 相应选择的帧中断 (LEDIF=1)/COM 中断 (COMIF=1) 中断标志会置起 (SEG 和 COM 的非选电平都为浮动电平, COM 有效电平为低电平,SEG 有效电平为高电平 ) 模式 2 举例 : TB 为 LED 单 COM 扫描宽度,TSYS 为系统时钟宽度, TLED 为 LED 扫描时间宽度 TB = TSYS*256*DISCOM TLED = TB *S S 为 LED 扫描的 COM 数量 : 扫描 4COM 即 S=4, 扫描 5COM 即 S=5, 以此类推 以需要显示的 LED 帧频 200HZ(5ms) 为例, 当 LED 为 5COM 且系统时钟为 RC 24MHz 时 : TB= TSYS *256* DISCOM =41.66ns*256*94(5EH) = ns= u s=1.002ms 57

58 需要设置 TLED =5ms TLED= TB*S =1.002ms*5=5.010ms 1. 第一个 COM 的 SEG 的波形 SEGXduty(X=0~16)( 如果输出满幅设置 0XFF, 即第一个 COM 周期显示 100% 占空比高电平, 如果不显示, 设置 0X00, 即显示浮动电平, 如果设置 0X7F,SEG 输出 50% 占空比高电平 ), 设置需要开启的中断功能 (ELED=1), 需要选择帧 COM 中断 (LEDCY=1)( 必须 ), 或加上帧中断 (LEDFY=1)( 可选 ) 开启 LED 中断和 LED 模块 2. 开启 LED 功能前, 设置第一个 COM 的波形, 启动 LED 功能, 在 LED 中断 (COMIF=1) 来临时, 改写第二个 COM 周期的 SEG 的波形 SEGXduty(X=0~16) 如果不修改, 则显示上周期波形 以此类推, 到一帧 (LEDIF=1) 结束 最后第二个 COM 中断来临时, 填写下一帧的第一个 COM 的 SEG 的波形 4. 应用实例 4.1 要求选用 COM1-4,SEG1-8, 显示四个共阴八段码 LED, 显示内容为 1,2,3,4, 八段码 LED 的 SEG 定义如下图所示 : SEG1 SEG6 SEG2 SEG7 SEG5 SEG3 SEG8 SEG4 4.2 例程 #include <SH79F6442.H> #include <intrins.h> #include <absacc.h> xdata unsigned char COM1 _at_ 0x1000; xdata unsigned char COM2 _at_ 0x1002; xdata unsigned char COM3 _at_ 0x1004; xdata unsigned char COM4 _at_ 0x1006; void LED_init(void) 58

59 CLKCON = 0x00; // 系统时钟 24MHz LEDCON = 0x0; // 模式 1 DISCOM = 0x3f; // 设置单 COM 扫描时间 LEDDZ = 0x10; // 设置死区时间 SEG01 = 0xFF; //LED_S1~LED_S8 复用打开 COMSEL = 0x0f; //LED_C1~LED_C4 复用打开 void main(void) LED_init(); COM1 = 0x06; //show 1 COM2 = 0x5B; //show 2 COM3 = 0x4F; //show 3 COM4 = 0x66; //show 4 LEDCON = 0x80; // 使能 LED 驱动模块 while(1); 59

60 十二 SH79F6442 TWI 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 SH79F6442 TWI 特性为 : 两线模式, 简单快捷 支持主机模式 (Master) 和从机模式 (Slave) 允许发送数据 (Transmitter) 和接收数据 (Receiver) 支持多主机通讯的仲裁功能 具有低电平总线超时判断 (Timeout) 空闲模式下可唤醒系统 地址可编程 2. 控制寄存器 TWI 模块使用的所有控制寄存器如下表所示 : 类别 缩写符号 功能说明 模块控制 TWICON 控制寄存器 总线超时控制 TWITOUT 总线超时计数寄存器 状态 TWISTA 状态寄存器 高电平控制 TWIFREE 高电平超时计数寄存器 比特率 TWIBR 比特率寄存器 地址 TWIADR 地址寄存器 数据 TWIDAT 数据寄存器 地址屏蔽 TWIAMR 地址屏蔽寄存器 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. TWI 设置 TWI 功能打开时, 相应的 SCL 和 SDA 被配置成开漏输出, 开漏输出结构不具有输出高电平的能 力 因此, 需要上拉电阻 ( 可以外接或者 TWIPCR = 1 打开内部上拉 ) 来配合使用 此时, 应保证 IO 口上的电平不超过 VDD+0.3V, 否则有可能损坏芯片 可以通过 LCM 功能, 配置 TWI 到不同的 IO 口 对于 TWI 的相关协议, 请参照 SH79F6442 DATASHEET 4. 应用实例 60

61 4.1. 要求 SH79F6442 作为主机, 向从机传送数据, 分别为 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A 例程 #include <SH79F6442.H> #include <intrins.h> #define ERR 0 #define ACK 1 #define NAK 2 #define RCVCMDREAD 3 #define RCVCMDWRITE 4 #define RCVADDRESS0 5 #define LOSEARBITRATION 6 #define CMD_WRITE 7 #define CMD_READ 8 #define FAIL 0 #define OK 1 void TwiInit() CLKCON =0x08; Delay(); CLKCON =0x04; TWITOUT = 0x02; // 打开 SCL,SDA 上拉电阻 TWIBR=0x02; // 配置发送波特率, 禁止总线超时判断 f=fsys/(16+2*cr*twibr) TWISTA=0x0; //64 分频 TWICON = 0x40; //ENTWI, 禁止高电平超时 TWTFREE = 0xff; // 最大超时配置 bit M_TwiSendStart() TWICON =0x20; // 总线空闲时发送起始条件 //TWICON &= 0xdf; while(1) // 等待 TWI 中断 61

62 if(twicon&0x08) if(((twista&0xf8)==0x08) ((TWISTA&0xF8)==0x10)) return OK; // 成功发送开始条件或重复开始条件 else return FAIL; if(0x02 == (0x02 & TWICON)) TWICON &= 0xdf; return FAIL; // 等待中断超时 UCHAR M_TwiSendCmd(UCHAR addr,uchar cmd) UCHAR SlaveAddr; UCHAR i=0; if(cmd) SlaveAddr=((addr&0x7f)<<1) 0x01; // 读 else SlaveAddr=((addr&0x7f)<<1); TWICON &= 0xf7; // 清除中断标志 TWIDAT=SlaveAddr; // 写 62

63 while(1) // 等待 TWI 中断 i++; if(twicon&0x08) if(cmd) if((twista&0xf8)==0x40) return ACK; // 成功发送 SLA+R else if((twista&0xf8)==0x48) return NAK; else if((twista&0xf8)==0x18) return ACK; // 成功发送 SLA+W else if((twista&0xf8)==0x20) return NAK; if((twista&0xf8)==0x38) return LOSEARBITRATION; else if((twista&0xf8)==0x68) return RCVCMDWRITE; 63

64 else if((twista&0xf8)==0x78) return RCVCMDREAD; else if((twista&0xf8)==0xb0) return RCVADDRESS0; else return ERR; if(i>=250) return ERR; // 等待中断超时 UCHAR M_TwiSendData(UCHAR byte) UCHAR i=0; TWICON &= 0xf7; TWIDAT=byte; TWICON=0x40; while(1) i++; if(twicon&0x08) if((twista&0xf8)==0x28) return ACK; else if((twista&0xf8)==0x30) 64

65 return NAK; else if((twista&0xf8)==0x38) return LOSEARBITRATION; else return ERR; if(i>=250) return ERR; // 等待中断超时 bit M_SendDataToSlave() UCHAR ret,i=0; TwiInit(); H_Timeout_check; // 使能总线超时,SCL 总线高电平超时判断 ret=m_twisendstart(); if(ret==ok) //send-sta OK if(m_twisendcmd(0x2d,0x0)==ack) while(i < 0xff) ret=m_twisenddata(0x40+i); i++; if(ret==nak) return 1; // 数据发送结束 65

66 else if((ret==losearbitration) (ret==err)) return 0; else //err process while(1); void main() M_SendDataToSlave(); while(1); 66

67 十三 SH79F6442 LPD 应用指南 1 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯 片它有着运行更快速的优越特性 SH79F6442 其 LPD 模块特性为 : 低电压检测并产生中断 可选的 LPD 检测电压 LPD 含双边去抖动功能, 当检测电压高于 / 低于检测点持续约 10ms 时,LPD 发生并产生中断 低电压检测 (LPD) 功能用来监测电源电压, 如果电压低于指定值时产生内部标志 LPD 功能用来通知 CPU 电源是否被切断或电池是否用尽, 因此在电压低于最小工作电压之前, 软件可以采取一些保护措施 在进入 Idle 以及 PD 之前, 必须软件关闭 LPD 模块 2 控制寄存器 LPD 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 LPDCON 控制寄存器 档位选择 LPDSEL 电压检测档位控制寄存器 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3 LPD 设置 低电压检测主要应用于当系统电压低于某个值的时候, 系统认为存在断电的风险, 需要做一些 保护措施, 来防止短时间的掉电, 如果在一定时间内, 系统重新上电, 可以继续掉电前的状态往下 运行 使用 LPD 时, 需要先设置检测模式和一个合适的电压值,SH79F6442 提供 2 种检测模式和 16 档检测电压, 可以通过 LPDCON 和 LPDSEL 来选择, 设置完毕, 使能 LPD 模块, 可以通过查询 LPDF 或者使能 LPD 中断来快速检测掉电 4 应用实例 4.1. 要求 系统工作电压为 5V, 当电压小于 3.5V 时系统认为存在掉电风险, 若 Vdd 电压小于 3.5V, 则将 关键参数存于 C0H~CFH 中, 然后系统进入 Power-Down 模式 4.2. 例程 #include <SH79F6442.H> #include <intrins.h> unsigned char outflag = 0; idata unsigned char temp0 _at_ 0xC0; 67

68 idata unsigned char temp1 _at_ 0xC1; idata unsigned char temp2 _at_ 0xC2; idata unsigned char temp3 _at_ 0xC3; idata unsigned char temp4 _at_ 0xC4; idata unsigned char temp5 _at_ 0xC5; idata unsigned char temp6 _at_ 0xC6; idata unsigned char temp7 _at_ 0xC7; idata unsigned char temp8 _at_ 0xC8; idata unsigned char temp9 _at_ 0xC9; idata unsigned char temp10 _at_ 0xCA; idata unsigned char temp11 _at_ 0xCB; idata unsigned char temp12 _at_ 0xCC; idata unsigned char temp13 _at_ 0xCD; idata unsigned char temp14 _at_ 0xCE; idata unsigned char temp15 _at_ 0xCF; unsigned char Important_data0; unsigned char Important_data1; unsigned char Important_data2; unsigned char Important_data3; unsigned char Important_data4; unsigned char Important_data5; unsigned char Important_data6; unsigned char Important_data7; unsigned char Important_data8; unsigned char Important_data9; unsigned char Important_data10; unsigned char Important_data11; unsigned char Important_data12; unsigned char Important_data13; unsigned char Important_data14; unsigned char Important_data15; void main(void) CLKCON = 0x00; // 系统时钟 = 24MHz LPDCON = 0x80; // 使能 LPD 模块 LPDSEL = 0x08; // 设置 Vlpd =3.5V 68

69 Delay(); // 延时 20us LPDCON &= 0xef; // 清标志位 EA = 1; // 开启总中断 IEN1 = 0x40; // 允许 LPD 中断 while(1) if(outflag == 1) //LPD 发生 temp0 = Important_data0; temp1 = Important_data1; temp2 = Important_data2; temp3 = Important_data3; temp4 = Important_data4; temp5 = Important_data5; temp6 = Important_data6; temp7 = Important_data7; temp8 = Important_data8; temp9 = Important_data9; temp10 = Important_data10; temp11 = Important_data11; temp12 = Important_data12; temp13 = Important_data13; temp14 = Important_data14; temp15 = Important_data15; LPDCON &= 0x7F; SUSLO = 0x55; PCON = 0x02; _nop_(); _nop_(); _nop_(); // 关闭 LPD 模块 69

70 void LPD_int(void) interrupt 13 LPDCON &= 0xEF; outflag = 1; 70

71 十四 SH79F6442 PWM 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 SH79F6442 其 PWM 驱动器特性为 : 3 路 12bit 精度 PWM 模块 提供每个 PWM 周期溢出中断 输出极性可选择 SH79F6442 集成了三路 12 位 PWM 模块 PWM 模块可以产生周期和占空比分别可调整的脉宽调制波形 PWMxCON(x = 0-2) 寄存器用于控制 PWMx 模块的时钟 波形输出以及周期中断, PWMxPH/L 寄存器用于控制 PWMx 输出波形的周期,PWMxDH/L(x = 0-2) 寄存器用于控制 PWMx 模块输出波形的占空比 在 PWM 输出允许期间, 可以修改这三个寄存器, 但在下一个 PWM 周期修改才会起作用 2. 控制寄存器 PWM0 模块使用的所有控制寄存器如下表所示 : 类别缩写符号功能说明 模块控制 PWM0CON PWM0PH PWM0PL PWM0DL PWM0DH 控制寄存器周期控制寄存器高 4 位周期控制寄存器低 8 位占空比控制寄存器低 8 位占空比控制寄存器高 4 位 针对每个寄存器的详细介绍, 请参照 SH79F6442 DATASHEET 3. PWM0 设置 PWM 编程分为以下几步 : (1) 选择 PWM 模块时钟源 (2) 通过写适当的值到 PWM 周期控制寄存器 (PWMxPH/L) 或 PWM 占空比寄存器 (PWMxDH/L) 设置 PWM 周期 / 占空比, 先设置低位, 再设置高位 注意, 即使高位数值不变, 也要重写一次, 否则, 低位的修改无效 (3) 通过设置 PWM 控制寄存器 (PWMxCON) 的 PWMxS 位选择 PWMx 输出模式 ( 高电平有效或低电平有效 ) (4) 如果 PWM 周期或者占空比需要改变, 操作流程如同步骤 2 或者步骤 3 说明 修改后的重载计数器的值在下一个周期开始有效 71

72 4. 应用实例 4.1. 要求使用 PWM0, 产生一个 2KHz, 占空比为 50% 的 PWM 波驱动蜂鸣器 4.2. 例程 #include <SH79F6442.H> #include <intrins.h> void PWM0_init(void) CLKCON = 0x00; // 系统时钟 = 24MHz PWM0CON = 0x29; // 时钟为系统时钟 /32, 占空比期间输出高, 输出允许 PWM0PL = 0x77; PWM0PH = 0x01; //PWM0 频率为 2KHz PWM0DL = 0xBB; PWM0DH = 0x00; //PWM0 占空比为 50% void main(void) PWM0_init(); PWM0CON = 0x80; // 使能 PWM0 while(1); PWM1/2 用法同 PWM0. 72

73 十五 SH79F6442 LCM 应用指南 1. 概述 SH79F6442 是一种高速高效率 8051 可兼容单片机 在同样振荡频率下, 较之传统的 8051 芯片 它有着运行更快速的优越特性 12 种数字逻辑功能口可以通过数字逻辑可配置模块重新映像到 I/O, 且每种功能可在 8 个 IO 口 中选择其一 2. 控制寄存器 LCM 模块所用的寄存器如下表所示 : 类别 缩写符号 功能说明 UART0CR TXD0 和 RXD0 配置寄存器 UART1CR TXD1 和 RXD1 配置寄存器 UART2CR TXD2 和 RXD2 配置寄存器 引脚配置寄存 TWICR SCK 和 SDA 配置寄存器 器 PWMCR PWM0 和 PWM1 配置寄存器 CEXCR P0CEX1 和 P0CEX0 配置寄存器 ECICR ECI0 和 ECI1 配置寄存器 3. 应用实例 3.1. 要求 引脚配置为 P1.1 为 TXD0,P1.2 为 RXD0,P0.7 为 TXD1, P1.0 为 RXD1 73

74 3.2. 例程 #include <SH79F6442.H> #include intrins.h IO_config() _push_(inscon); INSCON = 0x40; // 选择 Bank1 UART0CR = 0x01; //P1.1 作为 TXD0, P1.2 作为 RXD0 UART1CR = 0x01; //P0.7 作为 TXD1, P1.0 作为 RXD1 _pop_(inscon); 74

75 SH79F6442 用户指南 附件一 :SH79F6442 Target Board V1.0 原理图 75 V1.0

76 附件二 :SH79F6442 演示板 (Target Board) SH79F6442 提供了一套演示板, 供客户熟悉芯片功能 如下图 : 板中各部分功能说明 : A. 电源指示灯 B. JTAG 仿真接口 JTAG 仿真接口和 JET51 仿真器一一对应, 可用 10 芯扁平线直接连接 C. JTAG VDD 和 MCU VDD 的接口下载程序选择 JTAG 供电时, 必须用跳线将该两个 PIN 脚短接起来, 此时整个电源系统是联通的 D. 外部供电接口 1(VDD/GND) Target Board 板供电电源接口, 分别与芯片的 VDD 和 GND 管脚相连, 采用外部供电接口 1 方式供电, 芯片供电电压可调 E. 外部供电接口 2 Target Board 板供电电源接口, 经过板上的 U1 电路, 提供稳定的 5V 电压 F. 拨码开关 (CRY) P5.0, P5.1 作为 Crystal PIN 时, 拨码开关拨左和外接的晶振连接起来,P5.0, P5.1 作为 IO 时, 拨码开关拨右, 断开和外部晶振的连接 G. 复位按键 76

77 1 当 OSC1CLK 为内部 24M RC 振荡器,OSC2CLK 关闭,OP_OSC 选择如下 : 2 当 OSC1CLK 为内部 128K RC 振荡器,OSC2CLK 为内部 24M RC 振荡器,OP_OSC 选择如下 : 3 OSC1CLK 为内部 128K RC,OSC2CLK 为从 XTAL 输入的 2M~16M 晶体 / 陶瓷谐 振器, OP_OSC 选择如下 : P1.7, P2.0 作为 Crystal 接口, 接高频晶振, 拨码开关向左拨 ;P1.7, P2.0 作为 IO 口, 拨码开关向右拨 4 OSC1CLK 为从 XTAL 输入的 kHz 晶体谐振器,OSC2CLK 为内部 24M RC 振荡器,OP_OSC 选择如下 : P1.7, P2.0 作为 Crystal 接口, 接高频晶振, 拨码开关向左拨 ;P1.7, P2.0 作为 IO 口, 拨码开关向右拨 77

78 5 OSC1CLK 为从 XTAL 输入的 2M~16M 晶体 / 陶瓷谐振器, OSC2CLK 关闭,OP_OSC 选择 如下 : P1.7, P2.0 作为 Crystal 接口, 接高频晶振, 拨码开关向左拨 ;P1.7, P2.0 作为 IO 口, 拨码开关向右拨 6 OSC1CLK 为从 XTAL1 外灌时钟 30kHz~16MHz, OSC2CLK 关闭,OP_OSC 选择如下 : 78

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

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 SH79F161B - 10 ADC 8051 V 1.0 SH79F161B I/O 1. SH79F161B 8051 8051 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 = 0-7 2. IO PxCRy IO x=0-3 y=0-7 PxPCRy IO x=0-3 y=0-7

More information

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

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 SH79F6431 1. SH79F6431 1T 8051 FLASH SH79F JET51 Keil µ vision JTAG 1.1. SH79F6431 LQFP64 1.2. (Target Board) SH79F6431 1 V 1.0 1-1 SH79F6431 A. 2( ) 9~15V ( 12V) U2 U3 3.3V SH79F6431 1 2 1 B. 1(VCC/GND)

More information

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

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 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

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

128K Flash EPROM 的程序?\(Bank=64K\) 切? 应用说明 华邦 8 位单片机 (8051 内核 ) 应用说明 华邦 8 位单片机 (8051 内核 ) ANSC-UC08-0007 目录 - 1. 应用说明 :...4 1.1...4 1.2 相关寄存器介绍...4 1.2.1 串行口控制寄存器 (SCON)... 4 1.2.2 串行数据缓冲寄存器 (SBUF)... 5 1.2.3 串行口控制 1 (SCON1)... 5 1.2.4 串行数据接收缓冲

More information

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

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 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

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

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

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

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 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

目 录

目 录 1 Quick51...1 1.1 SmartSOPC Quick51...1 1.2 Quick51...1 1.3 Quick51...2 2 Keil C51 Quick51...4 2.1 Keil C51...4 2.2 Keil C51...4 2.3 1 Keil C51...4 2.4 Flash Magic...9 2.5 ISP...9 2.6...10 2.7 Keil C51...12

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

79F161 V0.2

79F161 V0.2 集成 16 路触摸按键输入和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:16K 字节 RAM: 内部 256 字节, 外部 1280 字节,LCD RAM15 字节 touchkey RAM 32 字节 类 EEPROM: 最大 4096 字节 ( 代码选项可选 ) 工作电压 : - f OSC = 32.768kHz -

More information

W77E58中文手册

W77E58中文手册 W77E58 77E58 8051 8051 8051 77E58 8051 1.5 3 COMS 32K EEPROM 1K SRAM 1 8 2 40M 4 3 8051 4 8051 5 4 8 I/O 6 4 I/O 44 PLCC QFP 7 16 / 8 12 9 10 11 1K 12 13 16 DPTR 14 15 DIP40 W77E58 25/40 PLCC44 W77E58P

More information

Microsoft Word - 專題封面.doc

Microsoft Word - 專題封面.doc 逢 甲 大 學 資 訊 工 程 學 系 專 題 研 究 報 告 8051 小 遊 戲 -21 點 指 導 教 授 : 陳 德 生 學 生 : 許 博 益 中 華 民 國 九 十 六 年 六 月 I 目 錄 第 一 章 緒 論 1 1-1 研 究 背 景 1 1-2 研 究 動 機 2 1-3 研 究 目 的 3 1-3-1 21 點 源 起 3 1-3-2 21 點 規 則 3 第 二 章 微 電

More information

2 12

2 12 SHENZHEN BRILLIANT CRYSTAL TECHNOLOGIC CO.,LTD. The specification for the following models Graphic LCM serial communication control board CB001 PROPOSED BY APPROVED Design Approved TEL:+86-755-29995238

More information

79F161 V0.2

79F161 V0.2 集成 24 路触摸按键输入和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 RAM: 内部 256 字节, 外部 1280 字节,LCD RAM28 字节 touchkey RAM 48 字节 类 EEPROM: 最大 4096 字节 ( 代码选项可选 ) 工作电压 : - f OSC = 32.768kHz -

More information

79F161 V0.2

79F161 V0.2 集成 16 路触摸按键输入和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 RAM: 内部 256 字节, 外部 1280 字节,LCD RAM16 字节 touchkey RAM 32 字节 类 EEPROM: 最大 4096 字节 ( 代码选项可选 ) 工作电压 : - f OSC = 32.768kHz -

More information

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft Word - MSP430 Launchpad 指导书.docx Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project

More information

12232A LED LED LED EL EL CCFL EL CCF

12232A LED LED LED EL EL CCFL EL CCF 12232A 0 50-20 +70-30 +85 LED LED LED EL EL CCFL EL CCF 122 x 32 1/32Duty 1/5Bias 6:00 STN( ), EL LED EL/100VAC 400HZ LED/4.2VDC 1 / VDD-VSS 0 6.5 V Ta=25 LCD VDD-V0 0 12.0 V V1 0 VDD V VDD-VSS - 4.75

More information

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc

Microsoft Word - IRFWX-A124_A_SM59D03G2_SM59D04G2_PCA_ APN_SC_.doc 可程序计数数组 (PCA) 功能使用方法 1 适用产品 :SM59D04G2,SM59D03G2 2 应用说明 : PCA 共有五组, 每组皆可工作于以下七种模式 : 捕获模式 - 正缘捕获模式 (Positive edge capture mode) 捕获模式 - 负缘捕获模式 (Negative edge capture mode) 捕获模式 - 正缘及负缘捕获模式 (Both positive

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

79F161 V0.2

79F161 V0.2 集成 8 路触摸按键,12 位 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:32K 字节 ( 烧写次数 1 万次 ) RAM: 内部 256 字节, 外部 1280 字节,LED RAM 28 字节, 触摸按键 RAM 16 字节 类 EEPROM:1024 字节 ( 烧写次数 10 万次 ) 工作电压 : - f OSC =

More information

untitled

untitled www.mcudriver.cn 1.1 / 1) WinAVR20070525 2) Source Insight 3) ISP 4) PonyProg ISP 5) USB 6) 1.2. MCU ATMEGA16 1.3. AVR8 1.4 LED0~LED7 1 1.5 #include // Program 1.1 LED.C #define uchar unsigned

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机 CCP/PCA/PWM 模块原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 CCP/PCA/PWM 结构 STC15 系列部分单片机内部集成了三路 CCP/PCA/PWM 模块, 如图 24.1 所示 注 : STC15W1K16S STC15W404S STC15W201S STC15F100W 系列单片机无 CCP/PCA/PWM

More information

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

SST SPAC SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD / SoftICE SoftICE MCU SoftICE SS SST SoftICE SST89C5x/SST89x554RC /564RD /SST89x516/5xRD2 1...2 1.1...2 1.2...2 1.3 /...2 2 SoftICE...2 3 SoftICE MCU...2 4 SoftICE...3 4.1 SST BootLoader SOFTICE...3 4.2 SoftICE SST MCU...6 5 SoftICE...7

More information

<4D F736F F D20CBABC1FA DA3A8BAACB6C1D0B44D31A3A9C4A3BFE9D7CAC1CF B0E62E646F63>

<4D F736F F D20CBABC1FA DA3A8BAACB6C1D0B44D31A3A9C4A3BFE9D7CAC1CF B0E62E646F63> SL-1356MOD-SU 射 频 卡 读 写 模 块 使 用 说 明 一. 概 述 双 龙 公 司 针 对 支 付 系 统 公 共 交 通 门 禁 锁 具 设 备 管 理 二 代 身 份 证 等 行 业 推 出 SL-1356MOD-SU 射 频 卡 读 写 模 块 该 模 块 全 面 支 持 ISO14443 A/B -1-2 -3-4 标 准, 适 用 于 读 写 各 种 符 合 ISO14443

More information

bingdian001.com

bingdian001.com TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)

More information

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

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 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

第10章:CCP捕捉/比较/脉宽调制

第10章:CCP捕捉/比较/脉宽调制 第 10 章 :CCP 捕捉 / 比较 / 脉宽调制 CCP 模块功能 捕捉功能模式 比较功能模式 脉宽调制功能 1 CCP 模块功能 PIC 2 捕捉 比较 脉宽调制模块 CCP1 CCP2(Capture/Compare/PWM) 16 CCPR1 CCPR2 模块 功能 功能 TMR1 TMR2 2 CCP 模块功能 CCP 模块 3 模式 : 捕捉 式 比较 式 脉宽调制 式 捕捉功能 捕捉

More information

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

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor 1 4.1.1.1 (Load) 14 1.1 1 4.1.1.2 (Save) 14 1.1.1 1 4.1.2 (Buffer) 16 1.1.2 1 4.1.3 (Device) 16 1.1.3 1 4.1.3.1 (Select Device) 16 2 4.1.3.2 (Device Info) 16 2.1 2 4.1.3.3 (Adapter) 17 2.1.1 CD-ROM 2 4.1.4

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

untitled

untitled XZL024 http://item.taobao.com/item.htm?id=6321822194 1 1 1.1 1.2 1.3 1.4 2 2.1 2.2 2.3 3 USBee Suite 3.1 3.2 3.3 3.4 4 RS232 RS485 RS422 CAN http://item.taobao.com/item.htm?id=6321822194 2 1 XZL024 PC

More information

79F161 V0.2

79F161 V0.2 带 10 位 ADC 的增强型 8051 微控制器 1. 特性 基于 8051 兼容流水指令的 8 位单片机 Flash ROM:16K 字节 RAM: 内部 256 字节, 外部 512 字节 工作电压 : - f OSC = 400kHz - 12MHz,V DD = 4.0V - 5.5V 振荡器 ( 代码选项 ): - 陶瓷谐振器 :400k - 12MHz - 内部 RC 振荡器 :12MHz

More information

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC

,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC, LCD LC LCD PIC 单片机解决方案 集成 LCD 驱动器模块的 PIC 单片机 www.microchip.com/lcd ,Microchip Technology PIC LCD, PIC16F913/914/ 916/917/946 PIC18F6390/6490/8390/8490 PIC16F65J90/85J90 Microchip LCD LCD, Microchip 的优势 LCD PIC,

More information

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示

图 内部结构图 8251 的外部引脚如图 所示, 共 28 个引脚, 每个引脚信号的输入输出方式如图中的箭 头方向所示 实验题目 : 串行接口芯片 8251 实验目的 : 1. 掌握 8251 的工作方式及应用 2. 了解有关串口通讯的知识 串行接口芯片 8251 3. 掌握使用 8251 实现双机通讯的软件编程和电路连接 实验设备 : IA-32 架构的微机系统及应用教学平台两套 实验原理 : 1. 8251 的基本性能 性能 : 8251 是可编程的串行通信接口, 可以管理信号变化范围很大的串行数据通信 有下列基本

More information

Microsoft Word - T12_T13_AD_PECÀý³Ì½éÉÜ.doc

Microsoft Word - T12_T13_AD_PECÀý³Ì½éÉÜ.doc 样例程序 : T12 + T13 + AD + PEC 1. 简介本程序实现功能如下 : 配置 CCU6 工作于三相输出模式 使用通道 0 比较匹配中断触发 T13 内部硬件直接实现 T13 工作于 Single shot 模式, 当周期中断时, 硬件触发 ADC (Injection mode) 转换完成以后, 使用 PEC 将存放于 ADC_DAT2 中的转换结果传送到用户指定的数组中 PEC

More information

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x 115 AVR W.V. Awdrey ATMEL AVR PIC AVR PIC AVR RISC AVR PIC AVR AVR AVR AVR AVR ATtiny15 AVR AVR AVR RAM ROM 121 116 122 ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r31 3 16 X Y Z 6-1 118 7 0

More information

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集

XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 GHz 世界通用 ISM 频段, 它集 XNS104 产品说明书 AD 型 2.4G 高速无线收发单片机概述 2.4GHz 高速无线收发单片机 XNS104 是一个带 12 位 ADC, 以 OTP 为程序存储基础, 带 2.4G 高速无线收发芯片的单片机 无线收发单元工作在 2.400--2.483GHz 世界通用 ISM 频段, 它集成射频收发通路 频率发生器 晶体振荡器 调制解调器等功能模块, 并且支持一对多组网和带 ACK 的通信模式

More information

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

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 General Description: IC VCD/DVD LCD Green mode Stand-by mode( 1W ) Features: 2.2V-5.5V LCD RAM read condition 2.6V-5.5V RC 15K 300pF 256KHZ default on 32 function key Built-in TT6221/TT6222 decoder Provide

More information

+00DE _01EN.book

+00DE _01EN.book TCS-NET MODBUS TCS-NET Modbus TCB-IFMB640TLE 1...... 2 2 RS 485... 3 3... 3 4... 4 5... 4 6... 5 7... 6 8... 16 TCS-NET Modbus 1 http://www.modbus-ida.org/ >=3.5 8 8 N*8 ( N = 252.) 16 >= 3.5 Modbus-Master

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

untitled

untitled FBC0409 V1.0 1.0 05.06.22 SIA 2005 SIA SIA SIA SIA SIA 114 86-24-23970133 HTTP://WWW.SIA.CN YANG@SIA.CN 2 ...5...5...6 PIN...6...7 1 CPU...8 2...8 4...8 5 DMA...9 7....9 8...9 9...10 A...10 B...10...11.

More information

專題最終版.doc

專題最終版.doc The Principle and Application of the Electric Combination Lock The Principle and Application of the Electric Combination Lock Abstract Recently, there are more and more burglaries in the society. It's

More information

单片机原理及应用实验指导书.doc

单片机原理及应用实验指导书.doc 1 2 3 4...2...4...9...9 AEDK598 MCS51...9 MCS51...10...10...10...10...10...10...11 P1...12...12...12....12...12...13 P3...14...14...14...14...14...14 I/O...15...15...15...15...15...16...17...17...17...17...17...18...19...19

More information

untitled

untitled 计 IC 规 书 2015/09/23 1 13 1.0 内.. 3.. 3 路 图.. 4 说.. 5.. 6.. 7.. 8 LCD.. 9 应 路图..10 标图..11 流 图..12 订单..13 订..13 2015/09/23 2 13 1.0 TCP310 数 计 路 键 选择 /(/ 切换 ) 单 1.5V 关闭 内 压检测 TCP310A1.30 ± 0.05V TCP310B1.25

More information

FET848

FET848 YT8450-86A USB 手 柄 特 点 高 性 能 CMOS 技 术 ; 工 作 电 压 :3.5V ~ 6.0V; 工 作 电 流 :10mA; 工 作 频 率 :6MHz; 3 个 LED 分 别 表 示 Analog/Digital 模 式 Turbo 模 式 和 Slow 模 式 ; 支 持 8 个 按 键 的 Turbo 模 式 ; 两 种 Analog/Digital 模 式 的

More information

G80F915

G80F915 VER1.2 2014.5 选型指南 订购型号 FLASH ROM RAM I/O MAX TIMER INT LCD LED PWM EUART 其他温度范围封装 G80F915U 32K 1.5K 46 4*16 5 8*24/6*26 1*12 3~8*8 5*27/4*28 1*8 G80F915F 32K 1.5K 42 4*16 5 8*20/6*22 1*12 3~8*8 5*23/4*24

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

79F161 V0.2

79F161 V0.2 带 10 位 ADC 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:16K 字节 RAM: 内部 256 字节, 外部 512 字节 工作电压 : - f OSC = 400kHz - 16MHz,V DD = 3.6V - 5.5V 振荡器 ( 代码选项 ): - 晶体谐振器 :400kHz - 16MHz - 陶瓷谐振器 :400kHz

More information

untitled

untitled TD3200 V1.3 2005-02-25 BOM 31050155 518057 www.emersonnetworkpower.com.cn 800-820-6510 800021-230171410755-86010800 E-mailinfo@emersonnetwork.com.cn ... 1 1.1...1 1.2...2 1.3...4... 5 2.1...5 2.2...5

More information

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.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 AUTOMATIC TROLLEY H K Hwang K K Chen J-S Lin S-C Wang M-L Li C-C Lin W-B Lin Dept. Of Electrical Engineering Far East College ABSTRACT This paper proposes an automatic trolley which can move automatically

More information

STC15W4K60S4系列增强型PWM波形发生器应用

STC15W4K60S4系列增强型PWM波形发生器应用 STC15W4K32S4 系列新增 6 通道增强型带死区控制高精度 PWM 波形发生器应用 STC15W4K32S4 系列的单片机集成了一组 ( 各自独立 6 路 ) 增强型的 PWM 波形发生器 PWM 波形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用, 用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,

More information

Microsoft Word - SC16C550应用实例.doc

Microsoft Word - SC16C550应用实例.doc SCC0 应用实例. 概述 SCC0 是 PHILIPS 推出的一款高性能的 UART 芯片, 其具有 字节 FIFO 和 IrDA 编 / 解码模块 本文将结合电路和程序演示如何使用 SCC0 接收和回送 UART 数据 读者可以根据图 制作 SCC0 的 DEMO 版 ; 在 KEIL C 开发环境下, 可利用 PVRD 的 SOFTICE 功能, 方便调试 SCC0 的各种功能. 电路分析 图

More information

Microsoft Word - mcu-an z-10.doc

Microsoft Word - mcu-an z-10.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500004-Z-10 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 8/16 位多功能定时器 应用笔记 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 本手册共 40 页 1. 本文档记载的产品信息及规格说明如有变动, 恕不预先通知 如需最新产品信息和 /

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

JLX

JLX PRODUCT:LCD MODULE. Model No.: JLX177-006 Product Type: 1.77 inch QVGA TFT Modoule. 产品规格书 晶联讯研发研发部 : Written By Checked By Approved By 客户名称 : 结构电子核准 地址 : 深圳市宝安区西乡宝安大道东华工业区 A3 栋 6 楼电话 :0755-29784961 Http://www.jlxlcd.cn

More information

PIC16F F MPLAB 08 16F LED 15 LED

PIC16F F MPLAB 08 16F LED 15 LED PIC16F877 PIC16F877 03 16F877 05 06 MPLAB 08 16F877 13 LED 15 LED 17 20 24 2 PIC16F877 PIC16F877 DIP VDD VSS CLOCK CPU :,AND,OR,XOR ROM: CPU ROM RAM: CPU,CPU I/O:CPU, CPU,, 16F877 RAM 512 128 Bank Bank

More information

CM ZT1

CM ZT1 Spansion 模拟和微控制器产品 本文档包含有关 Spansion 模拟和微控制器产品的信息 尽管本文档内有原来开发该产品规格的公司名称 富士通 或 Fujitsu, 该产品将由 Spansion 提供给现有客户和新客户 规格的延续本文档内容并不因产品供应商的改变而有任何修改 文档内容的其他更新, 均为改善文档而进行, 并已记录在文档更改摘要 日后如有需要更改文档, 其更改内容也将记录在文档更改摘要

More information

中文手册

中文手册 PCC-3428 PC/104 1. PCC-3428 1.1 PCC-3428 90mm 96mm ST CPU STPC Atlas Atlas CPU 486 DX/DX2 CPU DX2 133MHz Atlas 2D LCD/CRT 100MHz SDRAM 64MBytes PCC-3428 10/100Mbps DOC EIDE USB PC/104 ST STPC Atlas STPC

More information

untitled

untitled 计 IC 规 书 2017/06/19 1 13 1.0 内.. 3.. 3 路 图.. 4 说.. 5.. 6.. 7.. 8 LCD.. 9 应 路图..10 标图..11 流 图..12 订单..13 订..13 2017/06/19 2 13 1.0 TCP316 数 计 路 键 选择 /(/ 切换 ) 单 1.5V 关闭 内 压检测 TCP316A1.30 ± 0.05V TCP316B1.25

More information

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7

SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input HR7PPSC HR7PPSD SOP SOP6 +input input HR7PERB SSOP0 7 上海东软载波微电子有限公司 SMART www.essemi.com SMART 7P 0 HR7P OTPMCU A/D I/O OTP ROM RAM HR7P HR7P HR7PPMB MSOP0 7+input 06 6 6 HR7PPSC HR7PPSD SOP SOP6 +input 06 6 +input 06 6 6 6 HR7PERB SSOP0 7+input 06 6 6 HR7PESC

More information

79F161 V0.2

79F161 V0.2 带增强型 8051 的电力线载波通信控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 Flash ROM:16K 字节 类 EEPROM:2K 字节 RAM: 内部 256 字节, 外部 512 字节 工作电压 : V DD = 3.0V - 5.5V,AV DD = 3.0V - 3.6V 振荡器 : - 晶体谐振器 :8MHz - 16MHz 16 个 CMOS 双向 I/O

More information

SPMC75F2413A_EVM_使用说明_V1.2.doc

SPMC75F2413A_EVM_使用说明_V1.2.doc SPMCFA EVM V. - Jan 0, 00 http://www.sunplusmcu.com ................ SPMCFA........... EEPROM.... I/O............ LED.... LED.... RS-........0............ EVM................ 0.....0..... SPMCFA EVM SPMCFA

More information

untitled

untitled EDM12864-GR 1 24 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3 4. -------------------------------------------------------6

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc 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 差异如下说明 :

More information

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax)

版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) (Fax) 2018 9 29 龙芯 版权声明 龙芯 免责声明 据 龙芯 2 Building No.2, Loongson Industrial Park, Zhongguancun Environmental Protection Park (Tel) 010-62546668 (Fax) 010-62600826 阅读指南 龙芯 1C101 处理器数据手册 龙芯 1C101 修订历史 序号 更新日期 版本号

More information

1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1.

1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1. http://www.unsp.com.cn 1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.4... 6 2.5... 7 2.6... 7 3 2005... 8 3.1... 8 3.2... 9 3.3... 9 3.4 ( RMB100,000)... 9 3.5... 9 4...11 4.1... 11 4.2... 12 5... 13 5.1...

More information

untitled

untitled I G B T S310 220V 0.4~1.5KW (0.88~2.9KVA) : : 65-C : 0510-85227555() : 0510-85227556 http://www.taian-technology.com VER:06 2011.7 S310 0.1 0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 3.1 3.2 3.3 3.3.1 3.3.2

More information

USB解决方案.ppt

USB解决方案.ppt USB USB? RS232 USB USB HID U modem ADSL cable modem IrDA Silabs USB CP210x USB UART USB RS-232 USB MCU 15 USB 12 FLASH MCU 3 USB MCU USB MCU C8051F32x 10 ADC 1.5%, Vref CPU 25MIPS 8051 16KB Flash -AMUX

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

PCM-3386用户手册.doc

PCM-3386用户手册.doc PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659

More information

79F161 V0.2

79F161 V0.2 SH88F2051 / 带 10 位 ADC 的 2051/4051 微控制器 1. 特性 基于 8051 兼容流水指令的 8 位单片机 Flash ROM:4K/8K 字节 RAM: 内部 256 字节, 外部 256 字节 片上 512 字节类 EEPROM 存储空间 工作电压 : fosc = 30kHz - 16.6MHz,VDD = 2.8V - 5.5V 振荡器 ( 代码选项 ): -

More information

Applications

Applications 概述 FM1905 是 24 点 内存映象和多功能的 LCD 驱动器,FM1905 的软件配置特性使它适用于多种 LCD 应用场合, 包括 LCD 模块和显示子系统 用于连接主控制器和 FM1905 的管脚只有 3 条,FM1905 还有一个节电命令用于降 低系统功耗 特点 工作电压 3.0 ~5.0V 内嵌 256KHz RC 振荡器 可外接 32KHz 晶片或 256KHz 频率源输入 可选 1/2

More information

MSP430单片机简介

MSP430单片机简介 . September 14, 2012 . 1 简介 MSP430 单片机特点超低功耗 2 MSP430 时钟系统 3 MSP430 的端口 4 定时器看门狗定时器定时器 A 5 示例 MSP430 单片机特点. 简介 MSP430 单片机是美国德州仪器 (TI) 公司 1996 年开始推向市场的一种 16 位超低功耗 具有精简指令集的混合信号处理器 它将多个不同功能的模拟电路 数字电路模块和微处理器集成在了一个芯片上

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

79F161 V0.2

79F161 V0.2 SH79F16 1611 11 集成 ADC 和 PWM 的增强型 8051 微控制器 1. 特性 基于 8051 指令流水线结构的 8 位单片机 集成单周期执行时间 16 X 16bit 硬件乘法器 集成 8 周期执行时间 32 / 16bit 硬件除法器 集成 1 周期 32bit 硬件移位单元 Flash ROM:16K 字节 RAM:1.5K 字节 工作电压 : f OSC = 400k -

More information

STM32 for sensorless vector control

STM32 for sensorless vector control STM32 PMSM FOC Shanghai, March,2008 Agenda STM32 FOC Clark Parke Circle limitation Mar 08 1 Agenda / Hall PMSM PLL MC_State_observer_param.h Mar 08 2 Agenda MC_Control_param.h / PI Mar 08 3 Plan STM32

More information

a b c d e f g C2 C1 2

a b c d e f g C2 C1 2 a b c d e f g C2 C1 2 IN1 IN2 0 2 to 1 Mux 1 IN1 IN2 0 2 to 1 Mux 1 Sel= 0 M0 High C2 C1 Sel= 1 M0 Low C2 C1 1 to 2 decoder M1 Low 1 to 2 decoder M1 High 3 BCD 1Hz clk 64Hz BCD 4 4 0 1 2 to 1 Mux sel 4

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

第5章:汇编语言程序设计

第5章:汇编语言程序设计 第 5 章 : 汇编语言程序设计 程 汇编语言指令格式 系统伪指令 存储器选择方式 常用子程序 1 汇编语言程序设计 PIC 指令系统 语言系统 指 CPU 编 器语言 器语言 器语言 设计 用 语言 设计 语言 汇编语言 2 汇编语言指令格式 汇编语言指令格式 ( 指令 ) label opcode operand comment 指令 用 存 指令 指令语 3 汇编语言指令格式 1 指令 用 指令

More information

Microsoft Word - ET6621.doc

Microsoft Word - ET6621.doc Etek Microelectronics ET6621 LCD 控制驱动电路 概述 ET6621 是用来对 MCU 的 I/O 口进行扩展的外围设备 显示矩阵为 32 4, 是一个 128 点阵式存储器映射多功能 LCD 驱动电路 ET6621 的软件特性使它很适合应用于 LCD 显示, 包括 LCD 模块和显示子系统 在主控制器和 ET6621 之间的接口应用只需要 3 或 4 个端口 Power

More information

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc

Microsoft Word - ISSFA-0134_A_AP_User-definedDownload_SC_.doc 自定义下载应用说明 一 适用产品 :SM59XX 系列 SM59D XX 系列 SM59R XX 系列二 应用方式 : 可以让使用者自定义 command 作为进入 ISP 刻录的通关指令, 透过 UART 连接 ISAP 软件做联机更新三 操作说明 ( 使用 SM59D04G2 为例 ): 1. ISAP 操作方式 : 1.1 先将主程序及 ISP 服务程序烧进 MCU 中 1.2 将 MCU 放至系统版上,

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63>

<4D F736F F D203034CAB5D1E9CBC D20B5C4494F20BDD3BFDACAB5D1E92E646F63> 实验四 ARM 的 I/O 接口实验 一 实验目的 1. 了解 S3C44B0X 的通用 I/O 接口 2. 掌握 I/0 功能的复用并熟练的配置, 进行编程实验二 实验设备 1. EL-ARM-830 教学实验箱,PentiumII 以上的 PC 机, 仿真器电缆 2. PC 操作系统 WIN98 或 WIN2000 或 WINXP,ARM SDT2.5 或 ADS1.2 集成开发环境, 仿真器驱动程序

More information

2 PIC PIC 1 / CPU PIC MCU PIC RC

2 PIC PIC 1 / CPU PIC MCU PIC RC 2 PIC PIC 1 /... 2-2 2... 2-3 3... 2-4 4... 2-4 5... 2-4 6 CPU... 2-5 7 PIC MCU... 2-6 8 PIC16... 2-6 9... 2-7 10... 2-7 11 RC... 2-7 12... 2-8 13... 2-8 14 NOP... 2-9 15 PMD... 2-9 16... 2-10 17 WDTWDT...

More information

Microsoft Word - GT21L16S2W简要说明V3.7.doc

Microsoft Word - GT21L16S2W简要说明V3.7.doc GT21L16S2W 标 准 汉 字 字 库 芯 片 简 要 说 明 BRIEF 字 型 :11X12 点 阵 15X16 点 阵 字 符 集 :GB2312 兼 容 Unicode 内 码 排 置 方 式 : 横 置 横 排 总 线 接 口 :SPI 串 行 总 线 芯 片 形 式 :SO8 封 装 VER 3.7 2010-Q3 集 通 数 码 科 技 - 1 - 版 本 修 订 记 录 GT21L16S2W

More information

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg

Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15 LM361 LM361 Zlg 1 1 a. 0.5V 5V 1Hz 1MHz b. 0.1% 2 : a. 0.5V 5V 1Hz 1MHz b. 0.1% (3) a. 0.5V 5V 100 s b. 1% 4 1 10 5 1MHz 6 1 2 1 0.1Hz 10MHz 0.5V 5V 0.01% 10s 2 0.5V 5V 1Hz 1kHz 10% 90% 1% 3 1Hz 1MHz 1% EPM7128SLC84-15

More information

2005.book

2005.book ...4... 4... 7...10... 10... 10... 10... 10... 11... 11 PCC... 11 TB170... 12 /... 12...13... 13 BP150 / BP151 / BP152 / BP155... 14...15... 15... 15... 15... 15... 15... 15... 16 PS465 / PS477... 17 PS692

More information

四位微控制器ML64168_ _.doc

四位微控制器ML64168_ _.doc SSSC /4168P 2005 8 4 4, (ADC), LCD Driver, (Buzzer), 1 3 CPU17 CPU 26 33 42 45 48 73 79 85 89 A/D 92 111 125 128 131 SSU4168P 133 143 A: / 153 B: 156 C: 158 D: 160 E: 161 F: 163 G: PAD 167 2 ,, 11 4 CMOS

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

untitled

untitled EDM12832-08 : 25-1 : 116600 : (0411)7612956 7632020 7631122 : (0411)7612958 Model No.: Editor: LCD 1. ----------------------------------------------------3 2. ----------------------------------------------------3

More information

Microsoft Word - LMB402CBC-AppNote-V0.1.doc

Microsoft Word - LMB402CBC-AppNote-V0.1.doc LMB402CBC 液晶显示模块应用参考 深圳市拓普微科技开发有限公司 版本描述日期编者 0.1 新版本 2006-02-09 杨军 http://www.topwaysz.com 1 / 1 目录 1 概述 3 2 硬件接口 3 3 软件特性 3 3.1 控制器接口信号说明 3 3.2 模块指令系统 4 4 显示数据存储器的地址 4 5 字符发生器 CGRAM 的地址 5 6 应用举例 5 6.1

More information

MCCB EMI EMI

MCCB EMI EMI HD5L HD5L HD5L 4008-858 -959 189 4871 3800 MCCB EMI EMI ... 1 1.1... 1 1.2... 1 1.3... 2... 3 2.1... 3 2.2... 3 2.3... 4 2.4... 5 2.5... 6... 9 3.1... 9 3.2... 9 3.3... 10 3.4... 10 3.5... 12 3.6... 13...

More information

untitled

untitled EDM16080-01 Model No.: Editor: 1. ----------------------------------------------------3 2. ----------------------------------------------------3 3. ----------------------------------------------------3

More information

<4D6963726F736F667420576F7264202D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

<4D6963726F736F667420576F7264202D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63> 臺 北 市 立 松 山 高 級 工 農 職 業 學 校 資 訊 科 專 題 製 作 報 告 題 目 : 反 彈 空 間 指 導 老 師 : 余 耀 銘 學 生 : 廖 國 銓 趙 信 瑋 中 華 民 國 102 年 5 月 摘 要 在 這 高 速 科 技 的 起 飛 下, 科 技 都 建 立 起 於 基 礎, 有 些 人 把 這 基 礎 轉 為 理 論, 教 給 大 眾 學 習 ; 有 些 人 利

More information

微處理機期末專題

微處理機期末專題 微 處 理 機 期 末 專 題 自 動 鋼 琴 組 員 :b92611004 羅 鈞 瑋 b92611008 吳 妍 儂 b92611038 吳 韋 靜 b92611042 林 佳 穎 一 簡 介 本 組 的 主 題 是 自 動 鋼 琴 在 播 放 音 樂 的 同 時, 鋼 琴 會 自 動 按 下 琴 鍵, 被 按 下 的 琴 鍵 所 對 應 到 的 音 階, 就 是 正 在 撥 放 的 樂 曲 的

More information