📄 iosfr86.h
字号:
unsigned char __io(0x0028) LCDCR; // R/W LCD Control register
/*** LCDCR LCD Control Register (0x0028 初始0000 0000 R/W)
7 6 5 4 3 2 1 0
| | | | | | + +-- SLF:选择LCD主频 00: fc/2^17 or fs/2^9
| | | | | | 01: fc/2^16 or fs/2^8
| | | | | | 10: fc/2^15
| | | | | | 11: fc/2^13
| | | | + +------ DUTY:选择驱动方式 00: 1/4 Duty(1/3 Bias)
| | | | 01: 1/3 Duty(1/3 Bias)
| | | | 10: 1/2 Duty(1/2 Bias)
| | | | 11: Static
| | + +---------- VFSEL:选择boost频率 00: fc/2^13 or fs/2^5
| | 01: fc/2^11 or fs/2^3
| | 10: fc/2^10 or fs/2^2
| | 11: fc/2^9
| +-------------- BRES:Booster电路控制 0:未用 1:使
+---------------- EDSP:LCD显示控制 0:空白 1:使能显示 ***/
unsigned char __io(0x0029) P1LCR; // R/W P1 segment output control
/*** P1LCR Port P1/SEG Output Control Register (0x0029 初始0000 0000 R/W)
0:P1输入输出或第二功能 1:SEG输出 ***/
unsigned char __io(0x002A) P5LCR; // R/W P5 segment output control
/*** P5LCR Port P5/SEG Output Control Register (0x002A 初始0000 0000 R/W)
0:P1输入输出 1:SEG输出 ***/
unsigned char __io(0x002B) P7LCR; // R/W P7 segment output control
/*** P7LCR Port P7/SEG Output Control Register (0x002B 初始0000 0000 R/W)
0:P1输入输出 1:SEG输出 ***/
unsigned char __io(0x002C) PWREG3; // R/W Timer register 3
unsigned char __io(0x002D) PWREG4; // R/W Timer register 4
unsigned char __io(0x002E) PWREG5; // R/W Timer register 5
unsigned char __io(0x002F) PWREG6; // R/W Timer register 6
unsigned char __io(0x0034) WDTCR1; // R Watchdog timer control 1
/*** WDTCR1 Watchdog Timer Control Register 1 (0x0034 初始**11 1001 R)
7 6 5 4 3 2 1 0
| | | | | +-- WDTOUT:看门狗计数器选出选择 0:中断要求 1:复位信号
| | | + +---- WDTT:看门狗计数定时: Normal1/2 Mode SLOW Mode
| | | DV7CK=0 DV7CK=1
| | | 00: 2^25/fc 2^17/fs 2^17/fs
| | | 01: 2^23/fc 2^15/fs 2^15/fs
| | | 10: 2^21/fc 2^13/fs 2^13/fs
| | | 11: 2^19/fc 2^11/fs 2^11/fs
| | +-------- WDTEN:看门狗计数器使能 0:停止 1:启动
| +---------- (ATOUT):在内部RAM选择地址捕捉 0:未启动1:地址捕捉(
+------------ (ATAS): ***/
unsigned char __io(0x0035) WDTCR2; // W Watchdog timer control 2
/*** WDTCR2 看门狗控制写寄存器2 (0x0035 初始**** **** W)
7 6 5 4 3 2 1 0
+ + + + + + + +-- WDTCR2: 0x4E:清掉 0xB1:取消 0xD2:使能分配地址 ***/
unsigned char __io(0x0036) TBTCR; // R/W TBT/TG/DVO control
/*** TBTCR Time Base Timer Control Register (0x0036 初始0**0 0*** R/W)
7 6 5 4 3 2 1 0
| | | | | + + +-- TBTCK:BT中断频率的选择: Normal1/2,IDLE1/2 SLOW,SLEEP
| | | | | DV7CK=0 DV7CK=1
| | | | | 000: fc/2^23 fs/2^15 fs/2^15
| | | | | 001: fc/2^21 fs/2^13 fs/2^13
| | | | | 010: fc/2^16 fs/2^8
| | | | | 011: fc/2^14 fs/2^6
| | | | | 100: fc/2^13 fs/2^5
| | | | | 101: fc/2^12 fs/2^4
| | | | | 110: fc/2^11 fs/2^3
| | | | | 111: fc/2^9 fs/2
| | | | +-------- TBTEN:BT使能 0:取消 1:开始
| | | +---------- DV7CK:驱动晶振选择 0:快晶振fc/2^8 1:慢晶振fs
| + +------------ DVOCK:分频输出频率选择:
| Normal1/2模式 SLOW,SLEEP模式
| DV7CK=0 DV7CK=1
| 00: fc/2^13 fs/2^5 fs/2^5
| 01: fc/2^12 fs/2^4 fs/2^4
| 10: fc/2^11 fs/2^3 fs/2^3
| 11: fc/2^10 fs/2^2 fs/2^2
+---------------- DVOEN:分频输出使能 0:取消 1:开始
注意: 在单时钟模式及慢晶振尚未稳定时,不要设置DV7CK为"1" ***/
unsigned char __io(0x0037) EINTCR; // R/W External interrupt control
/*** EINTCR External interrupt control register (0x0037 初始00** 000* R/W)
7 6 5 4 3 2 1 0
| | | | +---- INT1 ES:INT3到INT1边缘选择 0:上升沿1:下降沿
| | | +------ INT2 ES:INT3到INT1边缘选择 0:上升沿1:下降沿
| | +-------- INT3 ES:INT3到INT1边缘选择 0:上升沿1:下降沿
| +-------------- INT0EN:P63//INT0管脚分配 0:P63输入/输出口1:/INT0口(P63应为输入模式)
+---------------- INT1NC:噪音拒绝时间选择 0:63/fc(秒) 1:15/fc(秒) ***/
/*** 运作模式控制 ***/
/*** 有两种模式,一种单晶振,一种为双晶振,可在系统中转换,通过SYSCR1和SYSCR2控制 ***/
/*** 单时钟模式:只有高频晶振,机器周期为4/fc(秒) ***/
/*** Normal1模式:高低晶振同时起振 ***/
/*** IDLE1模式:内部晶振电路保持动作,CPU及看门狗计时器停止,周边保持动作,通过中断及外部中断退到Normal1模式 ***/
unsigned char __io(0x0038) SYSCR1; // R/W System control 1
/*** SYSCR1 System Control Register 1 (0x0038 初始0000 00** R/W)
7 6 5 4 3 2 1 0
| | | | + +------ WUT:退出STOP模式的复舒时间: 返回Normal模式 返回SLOW模式
| | | | 00: 3*2^16/fc 3*2^13/fs
| | | | 01: 2^16/fc 2^13/fs
| | | | 10: 3*2^14/fc 3*2^6/fs
| | | | 11: 2^14/fc 2^6/fs
| | | +---------- OUTEN:STOP模式下管脚输出 0:高阻 1:保持输出
| | +------------ RETM:退出STOP模式后进入的模式 0:NORMAL 1/2模式 1:SLOW1模式
| +-------------- RELM:触发离开STOP模式的方法 0:边缘触发 1:幅度触发
+---------------- STOP:进入STOP模式 0:CPU核心及周边保持活动 1:进入STOP模式 ***/
unsigned char __io(0x0039) SYSCR2; // R/W System control 2
/*** SYSCR2 System Control Register 2 (0x0039 初始1000 *0** R/W)
7 6 5 4 3 2 1 0
| | | | +------ TGHALT:TG控制 0: 从TG提供所有时钟 1:TG仅提供TBT
| | | +---------- IDLE:CPU及看门狗控制 0:CPU及看门狗计数继续 1:CPU及看门狗停止
| | +------------ SYSCK:主系统时钟选择(写)/主时钟系统检测(读) 0:高时钟 1:低时钟
| +-------------- XTEN: 低频晶振控制 0:关 1:开
+---------------- XEN: 高频晶振控制 0:关 1:开 ***/
unsigned int __io(0x003A) EIR; // R/W Interrupt enable register
//unsigned char __io(0x003A) EIRL; // R/W Interrupt enable register L
//unsigned char __io(0x003B) EIRH; // R/W Interrupt enable register H
/*** EIR 中断使能寄存器 (0x003A,0x003B 初始00000000 00000***0 R/W) ***/
unsigned int __io(0x003C) IL; // R/W Interrupt latch
//unsigned char __io(0x003C) ILL; // R/W Interrupt latch L
//unsigned char __io(0x003D) ILH; // R/W Interrupt latch H
/*** IL Interrupt Latches (0x003C,0x003D 初始00000000 0000** R/W)
IL15~IL2:中断锁存器 RD: 0:无中断请求 1:中断请求
WR: 0:清除中断请求 1:中断锁存器没有设置 ***/
unsigned char __io(0x003E) INTSEL; // R/W Interrupt source selector
/*** INTSEL Selecting interrupt factor (0x003E 初始*0** **00 R/W)
7 6 5 4 3 2 1 0
| | +-- IL15ER:/INT5或INTTC5的选择 0:/INT5 1:INTTC5
| +---- IL14ER:INT3或INTTC3的选择 0:INT3 1:INTTC3
+-------------- IL9ER:INTRxD或INTSIO的选择 0:INTRxD1:INTSIO ***/
/************************************************/
/* 特别数据区的定义 */
/************************************************/
//#define SEG0100 0x0F80 // 显示的SEG01,SEG00,低四位用于SEG00,高四位用于SEG01 R/W
//#define SEG0302 0x0F81 // 显示的SEG03,SEG02,低四位用于SEG02,高四位用于SEG03 R/W
//#define SEG0504 0x0F82 // 显示的SEG05,SEG04,低四位用于SEG04,高四位用于SEG05 R/W
//#define SEG0706 0x0F83 // 显示的SEG07,SEG06,低四位用于SEG06,高四位用于SEG07 R/W
//#define SEG0908 0x0F84 // 显示的SEG09,SEG08,低四位用于SEG08,高四位用于SEG09 R/W
//#define SEG1110 0x0F85 // 显示的SEG11,SEG10,低四位用于SEG10,高四位用于SEG11 R/W
//#define SEG1312 0x0F86 // 显示的SEG13,SEG12,低四位用于SEG12,高四位用于SEG13 R/W
//#define SEG1514 0x0F87 // 显示的SEG15,SEG14,低四位用于SEG14,高四位用于SEG15 R/W
//#define SEG1716 0x0F88 // 显示的SEG17,SEG16,低四位用于SEG16,高四位用于SEG17 R/W
//#define SEG1918 0x0F89 // 显示的SEG19,SEG18,低四位用于SEG18,高四位用于SEG19 R/W
//#define SEG2120 0x0F8A // 显示的SEG21,SEG20,低四位用于SEG20,高四位用于SEG21 R/W
//#define SEG2322 0x0F8B // 显示的SEG23,SEG22,低四位用于SEG22,高四位用于SEG23 R/W
//#define SEG2524 0x0F8C // 显示的SEG25,SEG24,低四位用于SEG24,高四位用于SEG25 R/W
//#define SEG2726 0x0F8D // 显示的SEG27,SEG26,低四位用于SEG26,高四位用于SEG27 R/W
//#define SEG2928 0x0F8E // 显示的SEG29,SEG28,低四位用于SEG28,高四位用于SEG29 R/W
//#define SEG3130 0x0F8F // 显示的SEG31,SEG30,低四位用于SEG30,高四位用于SEG31 R/W
//#define SIOBR0 0x0F90 // SIO缓冲区的第0个 R/W
//#define SIOBR1 0x0F91 // SIO缓冲区的第1个 R/W
//#define SIOBR2 0x0F92 // SIO缓冲区的第2个 R/W
//#define SIOBR3 0x0F93 // SIO缓冲区的第3个 R/W
//#define SIOBR4 0x0F94 // SIO缓冲区的第4个 R/W
//#define SIOBR5 0x0F95 // SIO缓冲区的第5个 R/W
//#define SIOBR6 0x0F96 // SIO缓冲区的第6个 R/W
//#define SIOBR7 0x0F97 // SIO缓冲区的第7个 R/W
//#define SIOSR 0x0F99 // SIO状态寄存器 R
//#define RDBUF 0x0F9B // UART接收数据缓冲区 R
//#define SIOCR1 0x0F98 // SIO控制寄存器1 W
//#define SIOCR2 0x0F99 // SIO控制寄存器2 W
//#define STOPCR 0x0F9A // 键盘唤醒控制寄存器 W
//#define TDBUF 0x0F9B // UART发射数据缓冲区 W
// 0x009C ~ 0x0FFF 保留
#define SIOCR1 0x0098 // SIO控制寄存器1 W
/*** SIOCR1 SIO Control Register (0x0F98 初始0000 0000 W)
7 6 5 4 3 2 1 0
| | | | | + + +-- SCK:串行时钟: Normal1/2,IDLE1/2 SLOW,SLEEP
| | | | | DV7CK=0 DV7CK=1
| | | | | 000: fc/2^13 fs/2^5 fs/2^5
| | | | | 001: fc/2^8 fc/2^8
| | | | | 010: fc/2^7 fc/2^7
| | | | | 011: fc/2^6 fc/2^6
| | | | | 100: fc/2^5 fc/2^5
| | | | | 101: fc/2^4 fc/2^4
| | | | | 110: 保留
| | | | | 111: External clock(SCK)
| | + + +-------- SIOM:传输模式选择: 000: 8-bit传输模式
| | 010: 4-bit传输模式
| | 100: 8-bit传输/接收模式
| | 101: 8-bit接收模式
| | 110: 4-bit接收模式
| | Other: 保留
| +-------------- SIOINH:继续/放弃传输: 0:继续 1:放弃(在放弃后自动清除)
+---------------- SIOS:指示传输开始/停止: 0:停止 1:开始 ***/
#define SIOSR 0x0F99 // SIO状态寄存器 R
/*** SIOSR SIO Status Register (0x0F99 初始00** **** R)
7 6 5 4 3 2 1 0
| +-------------- SEF: 移位操作运行状态监视 0:移动操作结束 1:正在过程中
+---------------- SIOF: 串行传输运行状态监视 0:传输结束 1:正在过程中 ***/
#define SIOCR2 0x0F99 // SIO控制寄存器2 W
/*** SIOCR2 SIO Control Register 2 (0x0F99 初始***0 0000 W)
7 6 5 4 3 2 1 0
| | + + +-- BUF:传输字的数目 000: 1个字 0x0F90
| | 001: 2个字 0x0F90 到 0x0F91
| | 010: 3个字 0x0F90 到 0x0F92
| | 011: 4个字 0x0F90 到 0x0F93
| | 100: 5个字 0x0F90 到 0x0F94
| | 101: 6个字 0x0F90 到 0x0F95
| | 110: 7个字 0x0F90 到 0x0F96
| | 111: 8个字 0x0F90 到 0x0F97
+ +-------- WAIT:等待控制,除了传输/接收模式通常设为00
00: Tf = Td(non-wait)
01: Tf = 2Td
10: Tf = 4Td
11: Tf = 8Td ***/
#define STOPCR 0x0F9A // 键盘唤醒控制寄存器 W
/*** STOPCR Key-On Wake-up Control Register (0x0F9A 初始0000 **** W)
7 6 5 4 3 2 1 0
| | | +---------- STOP2:通过P64离开停止模式 0:未启动1:启动
| | +------------ STOP3:通过P65离开停止模式 0:未启动1:启动
| +-------------- STOP4:通过P66离开停止模式 0:未启动1:启动
+---------------- STOP5:通过P67离开停止模式 0:未启动1:启动 ***/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -