永发信息网

单片机的时钟频率采用6MHZ,利用T0采用定时器方式2

答案:4  悬赏:0  手机版
解决时间 2021-04-02 15:35
单片机的时钟频率采用6MHZ,利用T0采用定时器方式2
最佳答案
输出 200us 的方波,只需定时 100us。
每当到了 100us,对 P1.2 端取反,即输出为 200us 的方波。

时钟频率采用6MHz,机器周期则是 2us。
定时 50 个机器周期,即达到了 100us。

可以使用定时方式2,能够自动装入初始值。
初始值=256 - 50 = 206。

全部程序如下:

ORG 0000H
SJMP START
ORG 000BH
CPL P1.2
RETI
START:
MOV TMOD, #02H
MOV TH0, #206
MOV TL0, #206
MOV IE, #82H
SETB TR0
SJMP $

END
全部回答
void InitTimer0(void)
{
TMOD = 0x02;
TH0 = 0x00;
TL0 = 0x0FB;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main(void)
这是10US的程序
一点点改正:

#include
sbit P1_2=P1^2;
void InitTimer0(void)
{
TMOD = 0x02;
TH0 = 0x0CE;
TL0 = 0x0CE;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main()
{
InitTimer0();
while(1); //让程序一直运行
}
void T0() interrupt 1
{
P1_2=~P1_2;
TH0 = 0x0CE; //必须重新给计时器赋值
TL0 = 0x0CE;
}
#include
#define uchar unsigned char
#define uint unsigned int
sbit P1_2=P1^2;
void InitTimer0(void)
{
TMOD = 0x02;
TH0 = 0x0CE;
TL0 = 0x0CE;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main()
{
InitTimer0();
}
void T0() interrupt 1
{
P1_2=~P1_2;
}
周期为200US,只需P1^2每100us取反一次。时钟为6MHz。机器周期为2us,则初值X=256-100*6/12=206=0x0ce
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
哪个牌子的云南火腿月饼最好吃?
云南话格要得 是什么意思
withpleasure和mypleasure有什么区别
这配置为毛玩GTA5卡顿?
浙江铭品装饰是《新居室》杂志特约供稿单位吗
中国爸爸目瞪口呆,美国妈妈带孩子怎么如此残
秦腔中有那四廉知县
我和女友租的小屋在一楼,近来发现有人晚上在
闻风丧胆的丧什么意思
个人专利出国转化实施国家支持吗?
22减20加18减16到6减4加2减0的简便计算
在中国,除了高考,考研和考博要考英语外,迄
办公逸的考勤机怎么样?
甄嬛传里的“请好吧”是哪几个字?意思是等着
母牛吃什么对肚子里的犊牛发育好了
推荐资讯
如何破解华为g8510+手机root权限
建安幼儿园(抚顺顺城区)地址在什么地方,想过
西葫芦和黄瓜是否相克
excel中用VBA求一列数的和值。
如何磨出一把锋利的刀?
庄家姓氏的疑问!
钢琴曲春舞和浏阳河比较,去国外演出哪个曲子
金指课堂八年级上册答案
永嘉电大比瓯北三职好吗
我大学一年级,我平时就是那种不合群的人,节
我在试探前男友,我让他加我Q,他不敢。跟我
有没有做共享钱包代理商的?这个到底能不能赚
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?