标题:
52单片机的timer2时钟输出500KHz频率的源程序
[打印本页]
作者:
虎黑
时间:
2018-7-15 16:38
标题:
52单片机的timer2时钟输出500KHz频率的源程序
STC89C52RC可以用P1.0输出500KHz的频率,此处为本人自己写的源码和整个工程,望能助有缘人一臂之力!
单片机源程序如下:
#include<reg52.h>
sfr T2MOD=0xc9;
sbit clk_out=P1^0; //时钟输出端
void t2_clock(void)
{
C_T2=0; //定时器模式
T2MOD=0x02; //T2OE=1,定时器2允许输出
RCAP2L=0Xfa; //赋T2的预置值0xfffa,输出频率500K
RCAP2H=0Xff;
TR2=1;
}
void main(void)
{
t2_clock();
while(1);
}
复制代码
所有资料51hei提供下载:
Timer2时钟频率输出.zip
(21.7 KB, 下载次数: 20)
2018-7-15 16:35 上传
点击文件名下载附件
可编译源码
下载积分: 黑币 -5
作者:
shenyuqiu
时间:
2019-8-19 09:34
下载仿真试了,程序根本没输出,没仿真
作者:
seenian
时间:
2020-12-1 09:38
老哥,现在在proteus8. 6里仿真成功在7. 8就不输出,过两天用实物试一下,如果成功了,再来感谢你。
作者:
6620680
时间:
2020-12-1 11:47
用实物试也很简单!
作者:
rsx9583
时间:
2020-12-1 14:49
#include "reg51.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define FOSC 11059200L
//-----------------------------------------------
sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;
sfr AUXR = 0x8e; //辅助特殊功能寄存器
sfr INT_CLKO = 0x8f; //唤醒和时钟输出功能寄存器
sbit T1CLKO = P3^4; //定时器1的时钟输出脚
#define F38_4KHz (65536-FOSC/2/38400) //1T模式
//#define F38_4KHz (65536-FOSC/2/12/38400) //12T模式
//-----------------------------------------------
void main()
{
P0M0 = 0x00;
P0M1 = 0x00;
P1M0 = 0x00;
P1M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0x00;
P4M0 = 0x00;
P4M1 = 0x00;
P5M0 = 0x00;
P5M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
P7M0 = 0x00;
P7M1 = 0x00;
AUXR |= 0x40; //定时器1为1T模式
// AUXR &= ~0x40; //定时器1为12T模式
TMOD = 0x00; //设置定时器为模式1(16位自动重装载)
TMOD &= ~0x40; //C/T1=0, 对内部时钟进行时钟输出
// TMOD |= 0x40; //C/T1=1, 对T1引脚的外部时钟进行时钟输出
TL1 = F38_4KHz; //初始化计时值
TH1 = F38_4KHz >> 8;
TR1 = 1;
INT_CLKO = 0x02; //使能定时器1的时钟输出功能
while (1); //程序终止
}
用这个程序把时钟主频及输出频率改一下,效果不错。我前一阵做了个400K的脉冲发生器。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1