标题:
STC15W104+204w单片机例程资料 产生10Hz脉冲等程序
[打印本页]
作者:
zhangleixbyl
时间:
2020-12-25 09:29
标题:
STC15W104+204w单片机例程资料 产生10Hz脉冲等程序
51hei.png
(9.05 KB, 下载次数: 50)
下载附件
2020-12-25 14:52 上传
/*************************************************************************************************
* * 工 程 名:4路数字电源用 外部触发发生器
* * 创 建 人:
* * 创建时间:
* * 编 译 器:
* * 描 述:
---------------------------------------------------------------------------------------------------
**----------------------------------------当前版本修订---------------------------------------------
* * 修改人:
* * 日 期:
* * 描 述:
* *
* * ----------------------------------------------------------------------------------------------
* * 修改人:
* * 日 期:
* * 描 述:
* *
* * ----------------------------------------------------------------------------------------------
**************************************************************************************************/
#include <STC15F104E.H>
#include <intrins.h>
#include <string.h>
#undef BIT
#define BIT(x) (1<<(x))
#define IOSET(port,x) (port)|=(x)
#define IOCLR(port,x) (port)&=~(x)
#define IOXOR(port,x) (port)^=(x)
#define GETBIT(port,x) ((port&BIT(x))>>x)
#define CLI() EA=0 //关全局中断
#define SEI() EA=1 //开全局中断
#define TH0RLD 0xFA
#define TL0RLD 0x00
/**************************************************************************************************
* * 函数名称:void timer0(void) interrupt 1
* * 函数功能:Timer0 中断服务函数
* * 输入参数:
* * 返回参数:
* * 备 注:
**************************************************************************************************/
unsigned int n20HzCnt = 0;
unsigned int n10HzCnt = 0;
void timer0(void) interrupt 1
{
CLI();
TL0=TL0RLD;//重装定时器
TH0=TH0RLD;
if( 295 == n20HzCnt ++)
{
n20HzCnt = 0;
IOXOR(P3,BIT(5));
}
if( 560 == n10HzCnt ++)
{
n10HzCnt = 0;
IOXOR(P3,BIT(2));
}
//IOCLR(P1,BIT(6));
//IOSET(P1,BIT(6));
SEI();
}
/**************************************************************************************************
* * 函数名称:void Timer0_Initialize(void)
* * 函数功能:Timer0 初始化
* * 输入参数:
* * 返回参数:
* * 备 注:内部时钟FOSC = 18.432 ,定时1ms 初值 0xFA00
**************************************************************************************************/
void Timer0_Initialize(void)
{
#if 0
U32 v;
TMOD&=0xf0;
TMOD|=0X01; //T0方式1
v=FOSC/12/5000;
v=v-6;
if(v>65535)v=65535;
v=65535-v;
TH0RLD=v>>8;
TL0RLD=v;
TH0 =TH0RLD;
TL0 =TL0RLD;
TR0 =1; //启动T0
ET0 =1 //允许T0中断
#endif
TMOD |= 0x1; // 定时器T0,模式1
TH0 = TH0RLD; // 定时时长为1ms,即T0=0xFACB
TL0 = TL0RLD;
EA = 1;
ET0 = 1;
TR0 = 1;
}
/**************************************************************************************************
* * 函数名称:void InitPortAndVar(void)
* * 函数功能:IO端口配置和全局变量初始化
* * 输入参数:
* * 返回参数:
* * 备 注:P3.2 P3.5 强推挽输出
**************************************************************************************************/
void InitPortAndVar(void)
{
P3M1 = 0x00; //
P3M0 = 0x14; // 1111 1111
}
/**************************************************************************************************
* * 函数名称:void Initialize_Devices(void)
* * 函数功能:设备初始化
* * 输入参数:
* * 返回参数:
* * 备 注:P3.5 强推挽输出
**************************************************************************************************/
void Initialize_Devices(void)
{
InitPortAndVar();
//Uart1_init(2400,0);//28800/12=2400,关中断
IOSET(AUXR,BIT(7)); // T0x12,让T0的时钟变为原来的12倍。 1,一个时钟周期 0 12个时钟周期
Timer0_Initialize();
EA=1;
}
/**************************************************************************************************
* * 函数名称:main 函数
* * 函数功能:
**************************************************************************************************/
void main(void)
{
unsigned char k;
Initialize_Devices();
while(1)
{
k = k;
}
}
复制代码
全部资料51hei下载地址:
STC15W104 204w资料.rar
(2.51 MB, 下载次数: 65)
2020-12-25 09:29 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1