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

📄 sys_init.c

📁 HID 设备测试程序
💻 C
字号:
/*===============================================================================//
//== 文 件 名:Sys_Init.c
//== author	 :gnsusn
//== 说    明:
//== 修改日志:2008.7.14 创建文件
//== 
//===============================================================================*/
#include <reg52.H>

//===============================================================================//
//== 函 数 名:Sys_Init
//== 功   能 :初始化单片机资源
//== 说   明 :
//== 时   间 :2008.7.14 创建函数
//== 入口参数:无
//== 返 回 值:
//===============================================================================//
unsigned char Sys_Init(void)
{
	//== PCON:	|SMOD| -- | -- | -- | GF1| GF0| PD | IDL| ::电源控制寄存器
	//==	 :	  1	    0 	 0 	  0    0	0    0	  0
	//---------------------------------------------------
	PCON |= 0x80;	//== SMOD::波特率不加倍
					//== GF1,GF0 
					//== PD::掉电模式
					//== IDL::空闲模式

	//== SCON:  SM0 SM1 SM2 REN TB8 RB8 TI  RI
	//==	 :	 0	 1	 0	 1	 0	 0	 0	 0
	//---------------------------------------------------
	SCON |= 0x50;	//== 串行口控制寄存器,方式1,允许RI中断
					//== SM2: 多机通信控制位 =1时,如果RB8也等于1,则激发RI中断
	//==				 _					 _
	//== TMOD:	|GATE| C/T| M1 | M0 |GATE| C/T| M1 | M0 | ::定时器方式选择寄存器
	//==	 :	  0		0	1	 0	   0	0	0	 1
	//---------------------------------------------------
					//== GATE=0用TR0和TR1来控制T1和T0的启动; GATE=1则用外部中断来控制
					//== C/T为0表示定时器模式。为1表示计数器模式,对T0或T1的外部负跳变脉冲计数
	TMOD |= 0x21;	//== 定时器0:模式1,16位计数器; 		模式0:13位计数器
					//== 定时器1:模式2,自动重装载模式;	模式3:T0分为两个8位计数器,T1停止工作	

	TH1 = 0xfe;		//== 自动重装值
	TL1 = 0xfe;		//== 11.0592MHz 波特率57600B/s
					//== 波特率9600B/s 0xfa
					//== 22.1184MHz 波特率 ff 115200
	TH0 = 0x00;		//== 定时器0的初始值
	TL0 = 0x00;

	//== IP: - - - PS PT1 PX1 PT0 PX0	:: 中断优先级控制寄存器
	//==   : 0 0 0  0  0   0   0   1	:: 中断可以被中断
	//---------------------------------------------------
	IP = 0x01;		//== PS :: 串口中断优先级别
					//== PT1:: 定时/计数器T1的中断优先级别
					//== PX1:: 外部中断1的中断优先级别
					//== PT0:: 定时/计数器T0的中断优先级别
					//== PX0:: 外部中断0的中断优先级别

	//== TCON:  TF1 TR1 TF0 TR0 IE1 IE0 IT1 IT0	::定时器控制寄存器
	//==	 :	 0	 1	 0	 0	 0	 0	 0	 0
	//--------------------------------------------------- 
	TCON = 0x40;	//== TF:: 计数器/定时器溢出中断标志,硬件置1,硬件清0(可软件清0)
					//== TR:: 控制定时器的运行
					//== IE:: 外部中断请求标志,1时执行中断,执行中断后硬件自动清0(硬件置1,硬件清0)
					//== IT:: 外部中断类型控制位, 0:低电平时触发; 1:下降沿触发


	//== IE: EA - ET2 ES ET1 EX1 ET0 EX0  ::中断允许控制寄存器 1:允许;0:禁止
	//==   : 1	   0  1	  0	  0	  0	  0
	//---------------------------------------------------
	IE = 0x90;		//== EA :: 总控制位
					//== ET2:: T2中断控制位
					//== ES :: 串口中断控制位
					//== ET1:: T1中断控制位
					//== EX1:: INT1中断控制位
					//== ET0:: T0中断控制位
					//== EX0:: INT0中断控制位

	return 0;		//== 成功返回
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -