微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 自制51单片机常用头文件(中断)

自制51单片机常用头文件(中断)

时间:11-10 来源:互联网 点击:
#ifndef __CONFIG_H__

#define __CONFIG_H__

/********************************/
/* "以下为系统配置" */
/********************************/
#include
#include
#include

/*****************************************************
函 数 名:void Clearmen(void)
功 能:系统初始化
说 明:对系统引脚变量及中断进行初始化
入口参数:无
返 回 值:无
*****************************************************/
void Clearmen(void)
{
//***************** 中断初始化 *****************

// 中断允许寄存器IE
/*----------------------------------------------------
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- - - - - - - - - - - - - - - - - - - - - - - -
| EA | | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
-----------------------------------------------------*/
IE = 0x00; // "清除中断"
EX0 = 0; // 0"外部中断0允许"
ET0 = 1; // 1"定时器0中断允许"
EX1 = 0; // 2"外部中断1允许"
ET1 = 0; // 3"定时器1中断允许"
ES = 0; // 4"串行中断允许"
ET2 = 0; // 5"定时器2中断允许"-52才有
EA = 1; // "中断总允许"

// 中断优先级管理寄存器IP
/*----------------------------------------------------
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- - - - - - - - - - - - - - - - - - - - - - - -
| | | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
-----------------------------------------------------*/
IP = 0x00; // "清除中断优先级"
PS = 0; // "串行中断优先"
PX0 = 0; // "外部中断0"
PT0 = 1; // "定时器中断0"
PX1 = 0; // "外部中断1"
PT1 = 0; // "定时器中断1"

// 定时器控制寄存器TCON
/*----------------------------------------------------
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- - - - - - - - - - - - - - - - - - - - - - - -
| TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
- - - - - - - - - - - - - - - - - - - - - - - -
| 用于定时器 | 用于外中断 |
-----------------------------------------------------*/
TCON = 0x00;
IT0 = 0; // "外部中断0触发方式 0=电平 1=边沿"
IE0 = 0; // "外部中断0申请标志"
IT1 = 0; // "外部中断1触发方式 0=电平 1=边沿"
IE1 = 0; // "外部中断1申请标志"
TR0 = 0; // "T0运行控制"
TF0 = 0; // "T0溢出标志"
TR1 = 0; // "T1运行控制"
TF1 = 0; // "T1溢出标志"

// 定时器模式控制寄存器TMOD
/*----------------------------------------------------
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
- - - - - - - - - - - - - - - - - - - - - - - -
|GATE| C/T| M0 | M1 |GATE | C/T | M0 | M1 |
- - - - - - - - - - - - - - - - - - - - - - - -
| 高4位用于T1 | 低4位用于T0" |
-----------------------------------------------------*/
TMOD=0x01; // 定时器T0、T1为16位定时模式1

TH0=0x3C;TL0=0xB0; // 定时器0赋初值
}

#endif

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top