资源简介
将高电平和低电平交替变换的引脚接到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
- 上一篇:ITK-4.10.0
- 下一篇:数理方程试卷及详细答案
评论
共有 条评论