📄 main.h
字号:
;***************************************************;
; 福建星网锐捷视易有限公司 ;
; MAIN.H ;
; 创建人: 邱作霖 创建时间 : 2005.10.1 ;
; 修改人: 邱作霖 修改时间 : 2005.10.1 ;
;***************************************************;
; 说明: ;
; c_ 代表是常量 ;
; f_ 代表是位变量 ;
; g_ 代表是字节变量 ;
; R0,R1 间接寻址用 ;
; R2 红外计数器 ;
; R3-R4 临时变量用 ;
; R5-R7 定时变量用,纯软件延时 ;
; 08H-1FH 键盘鼠标变量 ;
; 20H-27H 系统位变量 64bit:够用了 ;
; 28H-2FH 红外用 ;
; 30H-4FH 系统数据RAM用 ;
; 50H-5FH DATA BUFF用 ;
; 68H-7FH 系统堆栈用 24 BYTE ;
; 版本说明: ;
; 60H 10H: 表示 6000V1.0 ;
; 66H 10H: 表示 6060V1.0 ;
; 30H 10H: 表示 3000V1.0 ;
; 42H 20H: 表示 4200V2.0 ;
; 42H 22H: 表示 4200V2.2 ;
; 42H 30H: 表示 4200V3.0 ;
; 42H 31H: 表示 4200V3.1 ;
; "I" "R" 表示 红外版本 ;
;***************************************************;
; 系统常数 以下是项目常量的定义 ;
; MYMCU: ; 单片机资源
c_TMOD EQU 00100111B ; T1编程为方式2定时状态,T0编程为方式3定时状态
c_SCON EQU 01010000B ; 串口方式 模式1 数据位8 停止位1
c_PCON EQU 10000000B ; 波特率加倍
c_TMER0L EQU 0FFH ; 定时器0 初值 工作在方式 3 0FFH 计数一次即产生中断
c_TMER0H EQU 0C8H ; 定时器0 另外一个8位定时器初值 定时时间:最大60uS最大15.8mS
c_TMER1L EQU 0FDH ; 波特率发生器 8 位自动重装方式
c_TMER1H EQU 0FDH ; 波特率=19200,误差0( f =11.0592MHz)
; SYSTEM: ;
c_SYSTEM_SP EQU 060H ; 系统堆栈栈底
c_DATA_SP_S EQU 040H ; 串口数据缓冲区片内数据 RAM 首指针
; 版本常数 ;
c_VersionH EQU "I" ; IR
c_VersionL EQU "R" ;
; 键盘串口数据 头常量 ; 命名规则:拼音的首字母
; c_KBhead_CG EQU 07DH ; 有线键盘数据头 常规码
; c_KBhead_KZ EQU 080H ; 有线键盘数据头 扩展码
; c_KBhead_TM EQU 000H ; 有线键盘数据头 通码
; c_KBhead_DM EQU 008H ; 有线键盘数据头 断码
; 红外串口数据 头常量 ; 命名规则:拼音的首字母
c_IR_KB EQU 07AH ; 红外键盘数据头 普通码
c_IR_EKB EQU 07BH ; 红外键盘数据头 扩展码
c_IR_MOUSE EQU 07CH ; 红外鼠标数据头
; 遥控器数据常量 计时单位60US ; 单位 us 接收码 冗余码 十进制 冗余后时间
c_YKQ_HEAD_S EQU 02AH+1 ; 13380-13440 021H-020H 028H-016H 40-33-22 12960-14040 :导引头
c_YKQ_HEAD_E EQU 018H-1 ;
c_YKQ_ACK_S EQU 04AH+1 ; 11160-11220 046H-045H 049H-03FH 73-70-63 10980-11580 :应答
c_YKQ_ACK_E EQU 040H ;
c_YKQ_BIT1_S EQU 0DDH ; 2220-2280 0DBH-0DAH 0DDH-0D8H 221-219-216 2100-2400 :1
c_YKQ_BIT1_E EQU 0D8H-1 ;
c_YKQ_BIT0_S EQU 0F0H+1 ; 1080-1140 0EEH-0EDH 0F0H-0EBH 240-238-235 960-1260 :0
c_YKQ_BIT0_E EQU 0EBH ;
; 遥控键盘数据常量 定时单位 60us ; 单位 us 接收码 冗余码 十进制 冗余后时间 真实值
c_IREK_HEAD_S EQU 0D8H+1 ; 2520-2580 0D6H-0D5H 0D8H-0D3H 216-211 2.40-2.76 2.61ms
c_IREK_HEAD_E EQU 0D3H ;
c_IRKB_HEAD_S EQU 0DFH+1 ; 2160-2220 0DCH-0DBH 0DFH-0D9H 222-217 2.04-2.34 2.22ms
c_IRKB_HEAD_E EQU 0D9H ;
c_IRMS_HEAD_S EQU 0E6H+1 ; 1680-1740 0E4H-0E3H 0E6H-0E1H 230-225 1.56-1.86 1.79ms
c_IRMS_HEAD_E EQU 0E1H ;
c_IRKB_BIT1_S EQU 0EDH ; 1320-1380 0EAH-0E9H 0ECH-0E7H 236-231 1.20-1.50 1.36ms
c_IRKB_BIT1_E EQU 0E7H-1 ; 考虑到刚好够减的情况 减法中结果为0 时 C=0 所以减一
c_IRKB_BIT0_S EQU 0F5H+1 ; 考虑到刚好够减的情况 减法中结果为0 时 C=0 所以加一
c_IRKB_BIT0_E EQU 0EEH ; 840 - 900 0F2H-0F1H 0F4H-0EEH 244-238 0.70-1.20 872us
; 红外键盘扩展键常量 ;
c_IRKB_Alt EQU 043H ;
c_IRKB_Ctrl EQU 04DH ;
c_IRKB_Shift EQU 03FH ;
c_IRKB_Shift_R EQU 054H ;
c_IRKB_Win EQU 040H ;
; 红外常量 ;
c_YKQKEY_again EQU 1 ; 遥控器确认是重码后 再接收几个连健应答之后发一次数据
c_YKQKEY_delay EQU 2 ; 遥控器接收几个连健应答之后确认是重码 即按键延时
c_IRKB_again EQU 5 ; 遥控键盘按键延时后 收到3个发一次码
c_IRKB_delay EQU 3 ; 遥控键盘第一个键码和第二个之间的延时 收到10个后才发第2个
c_TMER_OVER EQU 9 ; 红外时间溢出计数器 加1:15300uS 共:138240=138mS
c_YKQ_POWER EQU 5 ; 遥控器电源键连健计数器 初值 连续收到10个ack后关机
;***************************************************;
; 系统位变量 ;
f_DATA BIT 00H ; 申请数据发送
f_IR_TIME BIT 01H ; 红外申请计时
f_LED_WINK BIT 02H ; 申请LED闪烁
f_IR_POWER BIT 03H ; 红外电源键有效
f_IR_TIME_OVER BIT 04H ; 红外计时时间溢出
; 红外位变量 ;
; f_IR_IN BIT 05H ; 红外复位标志位 主循环的时钟判断有这个标志位 一般出错和上电
f_YKQ BIT 06H ; 遥控器
f_YKQ_LJ BIT 07H ; 遥控器 连健标志
f_YKQ_ACK BIT 08H ; 遥控器 应答
f_YKQ_POWER BIT 09H ; 遥控器电源键
f_IR_KB BIT 0AH ; 遥控键盘 普通键
f_IR_EKB BIT 0BH ; 遥控键盘 扩展键
f_IR_MOUSE BIT 0CH ; 遥控鼠标
f_TIME_OVER BIT 14H ; 定时器溢出标志 溢出时间:122880us
; 鼠标位变量 ;
; f_MOUSE_IN BIT 0DH ; 鼠标热拔插 上电复位的 0AAH
; f_MOUSE_PAR BIT 0EH ; 校验位
; 键盘位变量 ;
; f_KB_IN BIT 0FH ; 键盘热拔插 上电复位的 0AAH
; f_KB_F0 BIT 10H ; 断码标志
; f_KB_E0 BIT 11H ; 扩展码标志
; f_KB_PAR BIT 12H ; 键盘校验位
; f_KEY_PAUSE BIT 13H ; PAUSE键标志
; f_NUM_LED BIT 15H ; 申请显示 NUM_LED
; f_NUM_LED_ON BIT 16H ; NUM_LED状态 =1是亮的 =0是灭的
; f_NUM_LED_OFF BIT 17H ; 等待松开按键
;***************************************************;
; 系统硬件资源 ;
f_LED1 BIT P3.4 ; LED3
f_LED2 BIT P1.7 ; LED4
f_LED3 BIT P3.3 ; LED1
f_LED4 BIT P1.5 ; LED2
f_IR_CLK BIT P3.2 ; 红外时钟引脚
f_IR_OUT BIT P1.3 ; 红外输出引脚
;***************************************************;
; 系统字节变量 ;
g_SOFT_DOG DATA 08H ; 软件看门狗 计数器
g_DATA_SP_E DATA 09H ; 串口数据缓冲区指针
g_WINK_TMER DATA 0AH ; LED闪烁计数器
g_WINK_TMER1 DATA 0BH ; LED闪烁计数器
; 鼠标变量 ;
; g_MOUSE_BYTE DATA 0CH ; 鼠标接收的字节数
; g_MOUSE_DATA DATA 0DH ; 鼠标接收的字节
; g_MOUSE_HEAD1 DATA 0EH ; 发送到上位机的鼠标头1
; g_MOUSE_HEAD2 DATA 0FH ; 发送到上位机的鼠标头2
; g_MOUSE_HEAD3 DATA 10H ; 发送到上位机的鼠标头3
; 键盘变量 ;
; g_KB_BYTE DATA 11H ; 鼠标接收的字节数
; g_KB_DATA DATA 12H ; 鼠标接收的字节
; g_KB_HEAD1 DATA 13H ; 发送到上位机的键盘头1
; g_KB_HEAD2 DATA 14H ; 发送到上位机的键盘头2
; g_KEY_PAUSE DATA 15H ; PAUSE按键计数器 共有七个字节
; 红外字节变量 ;
g_IR_TMER DATA 16H ; 红外计时器
g_IR_DATA DATA 17H ; 红外中断次数计数器
g_IR_HEAD1 DATA 18H ; 发送到上位机的键盘头1
g_IR_HEAD2 DATA 19H ; 发送到上位机的键盘头2
g_IR_HEAD3 DATA 1AH ; 发送到上位机的键盘头3
g_BIT1_NUM DATA 1BH ; 遥控键盘数据1 的个数计数器
g_YKQ_DELAY DATA 1CH ; 遥控器 连健计数器
g_YKQ_POWER DATA 1DH ; 遥控器电源键连健计数器
g_IRKB_DELAY DATA 1EH ; 遥控器 连健计数器
g_IR_TMER_DOG DATA 1FH ; 红外计时器看门狗
g_IR_TMER_DOG1 DATA 28H ; 红外计时器看门狗1
; 系统软件延时变量 ;
g_TMER_US DATA 29H ; US计数器
g_INT_TMER_MS DATA 2AH ; MS计数器
g_INI_TMER_MS DATA 2BH ; MS计数器
; g_STATE DATA 27H ; 状态寄存器 在每次关键的跳转之前存入当前运行的步数 即表示运行到此
;***************************************************;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -