⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.h

📁 用2051红外进行收发的程序
💻 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 + -