STC51单片机16——将输入信号2倍频
将单片机接收的信号的低电平,2倍频后发出去(有少许误差,需要适当减少时间长度)。
//测量负脉冲宽度 并2倍频
#include<reg51.h> //包含51单片机寄存器定义的头文件
sbit u=P3^2; //将u位定义为P3.2
sbit pwm=P3^7;
unsigned int k1,k2;
/*******************************************
函数功能:主函数
******************************************/
void main(void)
{
TMOD=0x11; //TMOD=0001 0001B,使用定时器T1 T0的模式1
EA=1; //开放总中断
EX0=1; //允许使用外中断
IT0=1; //选择负跳变来触发外中断
ET0=1; //允许定时器T0中断
ET1=1; //允许定时器T1中断
TH0=0; //定时器T0赋初值0
TL0=0; //定时器T0赋初值0
TR0=0; //先关闭T0
TH1=0; //定时器T1赋初值0
TL1=0; //定时器T1赋初值0
TR1=1; //先开启T1
IP=0x08;//T1优先级大于T0
while(1)
; //无限循环, 不停检测输入负脉冲宽度
}
/**************************************************************
函数功能:外中断0的中断服务程序
**************************************************************/
void int0(void) interrupt 0 using 0 //外中断0的中断编号为0
{
TR0=1; //外中断一到来,即启动T0计时
TL0=0; //从0开始计时
TH0=0; //从0开始计时
while(u==0) //低电平时,等待T0计时
;
// P0=TL0; //将结果送P0 P1口显示
// P1=TH0;
k1=TH0*256+TL0;
TR0=0; //关闭T0
}
/**************************************************************
函数功能:定时器T1的中断服务程序
**************************************************************/
void Time1(void) interrupt 3 using 0 //"interrupt"声明函数为中断服务函数
{
TF1=0;//清除中断标志位
k2=k1/2;//2倍频
TH1=255-k2/256; //定时器T1的高8位赋初值
TL1=255-k2%256; //定时器T1的低8位赋初值
pwm=~pwm; //将pwm引脚输出电平取反,产生方波
TR1=1; //启动定时器T1
}
STC51单片机16——将输入信号2倍频相关推荐
- 奥克斯空调红外遥控信号编码协议的分析,STC51单片机读红外程序
2022.9 网上根本找不到资料,没人免费发布,有发布也是要钱的.哎.自己研究吧. 刚买的奥克斯清芯净空调,遥控器型号YKR-T/101,这样子的,手感不错: 用USB示波器抓了波形看了一下,和标准的 ...
- STC51单片机23——T2定时器的使用
/** TF2 定时器2 溢出标志.定时器2 溢出时置位,必须由软件清除. 当RCLK或TCLK=1 时,TF2 将不会置位.TR2 定时器2 启动/ 停止控制位. 置1 时启动定时器.C/T2 定时 ...
- 创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)
基于STC51单片机超声波测距精简设计只需三个元件(测距模块暂且算做是一个元件吧) 1.所需元件:STC单片机+超声波模块+4位共阳数码管 2.原理:单片机向测距模块trig脚发送20us的高电平触发 ...
- STC51单片机学习笔记8——stc12c56 串口显示AD(多路ad)
stc12c56 串口显示AD(多路ad). AD中断设置 AUXR: ADC_CONTR: //#define ADC_POWER 0x80后面不能加分号,不然就会错.其他定义必须加分号!!! // ...
- STC51单片机学习笔记4——stc12c56 串口
stc12c56 串口(没有用独立波特率发生器,用T1不分频.中断式接受与发送) //烧写程序时,一定要选用外部晶振(烧写软件默认为内部晶振(5M~6M)) //烧写时,有时候写不进去,尝试断开地线, ...
- stc51单片机入门 c语言,STC51单片机入门 (C语言)
51单片机发展主要历程:AT89C51系列--STC89C52系列--STC90系列--STC11系列--STC12系列--STC15F系列--STC15W系列(最新主流),由于STC12系列功能已经 ...
- stc51单片机串口接收多字节数据
stc51单片机串口接收多字节数据 简介 51单片机有2个定时器,一个做串口波特率,一个做数据截止帧延时检测,硬件平台测试使用的是stc8的单片机,但是可以往51移植 代码 #include &quo ...
- 【STC开源项目】STC51单片机LRC万用表表制作程序+PCB文件
[STC开源项目]STC51单片机LRC万用表表制作程序+PCB文件 申明:本项目来源于51黑单片机论坛:http://www.51hei.com/bbs/dpj-175080-1.html 本篇文章 ...
- STC51单片机实现蓝牙无线下载程序
STC51单片机一般是通过串口线下载程序到MCU.但是,有时候单片机放在作品上,串口线不够长,不方便下载,或者频繁拔插单片机,也不方便. 本方法,通过笔记本蓝牙,蓝牙串口模块HC-05,即可实现STC ...
- STC51单片机实现IAP远程升级过程分享
STC51单片机实现IAP远程升级过程分享 1.STC内部ISP更新机制 2.了解51单片机IAP分区 3.IAP分区的调用流程与IAP部分源码: 4.IAP步骤总结 5.源码下载 关于STC单片机I ...
最新文章
- java-2018-01-17计划
- 3、ShardingSphere 之 Sharding-JDBC 实现水平分库
- 练习、C# 结构体、冒泡排序
- powerdesigner-建立数据库模型及全局脚本
- 基于socketserver实现并发的socket编程
- Count Primes
- FTP文件上传Java代码实操
- WEB前端常用的设计模式总结
- 盘点2014年邮件行业大事件
- C语言版本STFT/ISTFT
- OVM-V1.5 发布,新增对 VMware ESXI 节点的支持
- 0开始学py爬虫(学习笔记)(Scrapy框架)(爬取职友集招聘信息)
- 正在存储windows支持软件_ibm/lenovoDS3500扩展柜存储管理软件-北京瑞腾世纪科技有限公司...
- c语言信封比大小,从C打印信封#
- The current epoch, 79 is less than the accepted epoch, 5b
- 时间序列的分析及滚动预测代码
- ASCII栅格的显示
- 这段Rap火了!「中本聪VS汉密尔顿」谁有道理?(附视频)
- 浅入浅出代理模式与Spring事务管理
- vb6反编译详解_[原创]VB6反编译详解(一)
热门文章
- R语言使用rnorm函数生成正太分布数据、使用stem函数可视化茎叶图、茎叶图很直观的表现出数据的分布情况
- c# 枚举的定义,枚举的用法,获取枚举值
- 要运行python程序要安装什么_求你要我(2)
- 趁年轻,多尝试一些富有挑战的工作吧
- mmdetection在bbox head中获取epoch值
- 还在为英语学习发愁吗?身为程序员的你可能需要这样一份“宝典”(上)
- echo和narcissus寓意_希腊神话故事(一)Echo 和 Narcissus
- tcp/ip协议的三次握手4次断开
- 老徐WEB:js入门学习 - 认识javascript
- CS5216 Capstone DP to hdmi 1080p转换器或者转接线设计原理|CS5216 DP转HDMI转换电路原理图