• 大小: 37KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-07
  • 语言: 其他
  • 标签:

资源简介

将高电平和低电平交替变换的引脚接到P3.2即外部中断0,在串口1输出高电平时间和低电平时间,实时检测实时输出.数据通过串口回传至电脑,经数据处理和分析,可实现模拟示波器功能。

资源截图

代码片段和文件信息

/**          基于STC15W204S的高低电平时间检测串口输出            **/
/**          程序猿:wason                                      **/
/**          日期:2016-04-12                                   **/
/**          将高电平和低电平交替变换的引脚接到P3.2即外部中断0   **/
/**          在串口1输出高电平时间和低电平时间,实时检测实时输出 **/


#include “STC15W204S.h“
#include   
#define uint unsigned int
#define u32 unsigned long int
#define uchar unsigned char
#define H 1
#define L 0

uint Time_Numble_H;
uint Time_Numble_L;

sbit  Int0 = P3^2;
bit   Sen_mark;
bit   H_or_L;

void Init_MCU()
{
EA  = 1; //开总中断 

//9600bps@11.0592MHz
SCON = 0x50; //8位数据可变波特率
AUXR |= 0x04; //定时器2时钟为Fosc即1T
T2L = 0xE0; //设定定时初值
T2H = 0xFE; //设定定时初值
AUXR |= 0x01; //串口1选择定时器2为波特率发生器
AUXR |= 0x10; //启动定时器2

//100微秒@11.0592MHz
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xAE; //设置定时初值
TH0 = 0xFB; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时

ET0 = 1; //打开定时器0中断

EX0 = 1;
IT0 = 0;

}
/*串口发送数据*/
void Send_Byte_UART1(uchar dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
void main()
{
Init_MCU();
while(1)
{        
if(Sen_mark==1)
{
Sen_mark=0;
if(H_or_L==L)
{
Send_Byte_UART1(Time_Numble_H/100+0x30); 
Send_Byte_UART1(Time_Numble_H%100/10+0x30);  
Send_Byte_UART1(Time_Numble_H%10+0x30);
Time_Numble_H=0;
}  
if(H_or_L==H)
{
Send_Byte_UART1(Time_Numble_L/100+0x30); 
Send_Byte_UART1(Time_Numble_L%100/10+0x30);  
Send_Byte_UART1(Time_Numble_L%10+0x30);
Time_Numble_L=0;
}  
Send_Byte_UART1(‘\n‘);
}
}
}

/*定时器0中断服务程序*/
void Timer_0() interrupt 1
{  
if(H_or_L==L)
{
if((++Time_Numble_L)>999)Time_Numble_L=999;
}
if(H_or_L==H)

if((++Time_Numble_H)>999)Time_Numble_H=999;
}

/*外部中断0服务程序*/
void INT0() interrupt 0
{  
_nop_(); 
_nop_();
Sen_mark=1;
H_or_L = Int0;
}










 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\
     文件       12805  2015-07-09 20:47  基于STC15W204S的高低电平时间检测串口输出\STC15W204S.h
     文件        7756  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx
     文件         979  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.build_log.htm
     文件        2178  2016-04-12 08:52  基于STC15W204S的高低电平时间检测串口输出\xxxx.c
     文件        1095  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.hex
     文件          40  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.lnp
     文件        5922  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.LST
     文件        7370  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.M51
     文件        8465  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.OBJ
     文件         367  2015-10-12 15:17  基于STC15W204S的高低电平时间检测串口输出\xxxx.plg
     文件       71169  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.uvgui.Administrator
     文件       84614  2015-10-12 14:12  基于STC15W204S的高低电平时间检测串口输出\xxxx.uvgui_Administrator.bak
     文件        5382  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.uvopt
     文件       14011  2016-04-12 08:54  基于STC15W204S的高低电平时间检测串口输出\xxxx.uvproj
     文件        5627  2015-10-12 14:12  基于STC15W204S的高低电平时间检测串口输出\xxxx_uvopt.bak
     文件       13592  2015-09-25 17:35  基于STC15W204S的高低电平时间检测串口输出\xxxx_uvproj.bak

评论

共有 条评论

相关资源