您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页STC12C5A60S2初始化KEIL C 程序

STC12C5A60S2初始化KEIL C 程序

来源:意榕旅游网


STC12C5A60S2初始化KEIL C 程序

//独立频率输出,PCA定时器 串口独立波特率 串口接收,发送

// ICL7135 AD中断测量;

void MCU_INT(void) //初始化

{

// 定时器0 icl7135 AD 外部中断0

TMOD = 0x29; // 定时器T1工作于模式1 ,定时器T0工作于模式1 控制定时器T0的启停

TR0=1; //;启动定时器T0

IT0=1; //下沿INT0中断

EX0=1; //外部中断0允许

TR1=1;

EA = 1;

// t1独立输出频率

INT0

AUXR=0x40; //定时器1为8051的12倍

WAKE_CLKO=0x22; //t1独立输出频率

TH1=0xfa; // 1T clkout1=(fosc/2)/(256-TH0) 3m/2/6=250k

// //PCA定时器寄存器值,50ms,6M

CCON=0x00;//

CL=0x00;

CH=0x00; // Reset PCA base timer

CMOD= 0x10;//中断使能 系统时钟 fosc/12

//time(sec) * Fosc / 12, for 50ms @ 3MHz, T_Value = 0.05 * 3000000 / 12 = 12500

T_Value0=12500;

T_PCA0 = T_Value0;

CCAP0L = T_PCA0;

CCAP0H = T_PCA0 >> 8; //Initial PCA module-0

T_PCA0 += T_Value0;

CCAPM0=0x49; //软件定时器,使能中断,pca模块0

CR=1; //启动pca

// 串口1 独立波特率发生器BRT

SCON=0x50;

PCON=0X80;

BRT= 0XF3;

AUXR|=0x11; // 允许独立波特率 独立波特率发生器作为串口1 //说明书 49页

ES=1;

//看门独

WDT_CONTR=0x3c; //说明书95页 fosc=3M 32*393216/3000000 = 4.19s

}

void Init0 (void ) interrupt 0 using 1 //外部中断0 //定时器0中断

{

uchar i;

if(ADOVER==0)

{ i++;

TR0 = 0; //定时器0关

EX0 = 0; //关中断

if(i>2)

{

ADHWHEEL=TH0;

ADLWHEEL=TL0;

ADOVER=1;

i=0;

}

TMOD = 0x29;

TR0=1; //;启动定时器T1

IT0=1; //下沿INT0中断

EX0=1; //外部中断0允许

TH0=0;

TL0=0;

}

}

void PCA_INT (void ) interrupt 7 using 2 {

CCF0=0;

CCAP0L = T_PCA0;

//PCA 定时器 50ms

CCAP0H = T_PCA0 >> 8;

T_PCA0 += T_Value0;

led2=~led2;

}

void Send_UART(uchar senddata) {

ES=0;

TI=0;

SBUF=senddata;

while(TI==0);

TI=0;

ES=1;

}

//独立波特率发生

void UART_INT(void) interrupt 4 using 3 //串口接收中断

{

uchar i;

if(RI==1)

{

i=SBUF;

Send_UART(i);

RI=0;

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务