设8051单片机的单片机晶振频率怎么测为6MHz,试分别用定时器T0的方式1、2编程,使在P1.0引脚上输出1ms的方波。

单片机的时钟频率采用6MHZ,利用T0采用定时器方式2_百度知道
单片机的时钟频率采用6MHZ,利用T0采用定时器方式2
单片机的时钟频率采用6MHZ,利用T0采用定时器方式2,中断方法在P1.2输出一个周期为200us的方波。要求阐述系统工作原理,计算定时器的初值,要写系统程序。
我有更好的答案
输出 200us 的方波,只需定时 100us。每当到了 100us,对 P1.2 端取反,即输出为 200us 的方波。时钟频率采用6MHz,机器周期则是 2us。定时 50 个机器周期,即达到了 100us。可以使用定时方式2,能够自动装入初始值。初始值=256 - 50 = 206。全部程序如下:
RETISTART:
TMOD, #02H
采纳率:64%
#include &reg52.h&#define uchar unsigned char#define uint unsigned intsbit P1_2=P1^2;void InitTimer0(void){
TMOD = 0x02;
TH0 = 0x0CE;
TL0 = 0x0CE;
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
一点点改正: #include &reg52.h&sbit P1_2=P1^2;void InitTimer0(void){
TMOD = 0x02;
TH0 = 0x0CE;
TL0 = 0x0CE;
TR0 = 1;}void main(){
InitTimer0();
while(1); //让程序一直运行}void T0() interrupt 1{
P1_2=~P1_2;
TH0 = 0x0CE; //必须重新给计时器赋值
TL0 = 0x0CE;}
void InitTimer0(void){
TMOD = 0x02;
TH0 = 0x00;
TL0 = 0x0FB;
TR0 = 1;}void main(void)这是10US的程序
其他1条回答
为您推荐:
其他类似问题
时钟频率的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。以下试题来自:
填空题已知单片机的晶振频率为6MHz,下面程序用单片机内部定时器T0工作在方式1下,从P1.0输出周期为______的方波脉冲信号,时间常数为______。
START:MOV TMOD, #01H
THO, #OFEH
LOOP: JBC TFO,DONE
DONE:MOV TL0,#OCH
MOV THO,#OFEH
SJMP LOOP 2ms OFEOCH
为您推荐的考试题库
你可能感兴趣的试题
1.填空题 65.5362.填空题 71H3.填空题 内RAM低128B区
128B4.填空题 R0 R1 DPTR5.填空题 2
热门相关试卷
最新相关试卷已知单片机的晶振频率为6mhz,试编写程序利用定时器t0的工作方式3,使p1.0_百度知道
已知单片机的晶振频率为6mhz,试编写程序利用定时器t0的工作方式3,使p1.0
已知单片机的晶振频率为6mhz,试编写程序利用定时器t0的工作方式3,使p1.0和p1.1分别输出周期为1毫秒和400微秒的峰波
我有更好的答案
#include&reg51.h&sbit p10=P1^0;sbit p11=P1^1;void t0isr() interrupt 1{TL0=6;p10=!p10;}void t1isr() interrupt 3{TH0=156;p11=!p11;}main(){TMOD=0x03;TH0=156;TL0=6;ET0=1;ET1=1;TR0=1;TR1=1;EA=1;while(1);}
高级工程师
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHz_百度知道
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHz
应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=216-t(f/12)(2)写出程序清单
我有更好的答案
给定时器赋值,一个机器周期是两微妙(不知道对不对,)定义一个变量做累加,每加到1000,取反就行啦
采纳率:34%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。利用定时器T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12MHz。_百度知道
利用定时器T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12MHz。
利用定时器T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12MHz。
我有更好的答案
#include&reg52.h&
//52单片机头文件#include &intrins.h& //包含有左右循环移位子函数的库#define uint unsigned int
//宏定义#define uchar unsigned char
//宏定义sbit P1_0=P1^0;void main()
//主函数{ TMOD=0x01;//设置定时器0为工作方式1 TH0=()/256; TL0=()%256; EA=1;//开总中断 ET0=1;//开定时器0中断 TR0=1;//启动定时器0 while(1);//等待中断产生 }void timer0() interrupt 1{ TH0=()/256; TL0=()%256; tt++; if(tt==20) {
P1_0=~P1_0; }}
采纳率:50%
不用汇编,参考下,发现MOV
, #0E0H这里好像不太对。#0X01#0X18TH0SETB#0X18#0XFCCPL P1.0
本回答被网友采纳
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 单片机晶振频率怎么测 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信