设MCS-518位单片机c编写主频为12MHZ,编写一个延时10秒的程序

设单片机晶振频率为12MHZ,编写出其延时100毫秒的程序??_百度知道
设单片机晶振频率为12MHZ,编写出其延时100毫秒的程序??
我有更好的答案
最好直接利用定时器延时,定时1毫秒,程序中调用延时函数就行了,Delay(100):
//定义外部变量Delay( uint k)
// 延时函数{
while(count!=0) ;}TIME0()
interrupt 1
// 定时器0中断函数{
TH0 = 0XFC;
TL0 = 0X18;
采纳率:29%
main(){ TMOD=0x01;//设置定时器0为工作方式1 TH0=()/256; TL0=()%256;
}void time0() interrupt 1{ TH1=()/256; TL1=()%256; tt++;
单片机型号不一样,每条指令周期不一样的
为您推荐:
其他类似问题
晶振的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。设单片机晶振频率为12MHZ,试编写一延时1s的子程序_百度知道
设单片机晶振频率为12MHZ,试编写一延时1s的子程序
设单片机晶振频率为12MHZ,试编写一延时1s的子程序
我有更好的答案
DELAY1S:MOV R2,#10DLY1:MOV R3,#200DLY2:MOV R4,#248DJNZ R4,$DJNZ R3,DLY2DJNZ R2,DLY1RET
高级工程师
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
51单片机课后习题答案
孙育才 东南大学
下载积分:1000
内容提示:51单片机课后习题答案
孙育才 东南大学
文档格式:DOC|
浏览次数:139|
上传日期: 16:06:14|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
51单片机课后习题答案
孙育才 东南大学
关注微信公众号mcs51单片机的主频为12MHz的晶振采用定时器1产生2ms的定时中断_百度知道
mcs51单片机的主频为12MHz的晶振采用定时器1产生2ms的定时中断
在线等。急
我有更好的答案
又一个需要此类程序的,好吧,再给你发一份此程序利用LED作为指示的,你可以随意修改别且所有语句都加了注释,方便你学习研究原来我用的是定时器 0,特为你改成了定时器 1,感觉不错记得采纳哦!/***************************************************************************/#include &reg51.h& //51单片机通用头文件sbit LED=P2^0;
//LED端口定义
//建立一个变量,用于计数/***************************************************************************/void main(void)//主函数{&&&& TMOD=0x10;
//定时器 0 工作方式 1&&&& TH1=()/256;
//定时器 高四位 初值&&&& TL1=()%256;
//定时器 低四位 初值&&&& EA=1;
//开总中断&&&& ET1=1;
//开定时器 0 中断&&&& TR1=1;
//启动定时器 0&&&& while(1);
//主循环}/***************************************************************************/void int1() interrupt 3 //定时器中断{&&&& TH1=()/256; //定时器 高四位 初值&&&& TL1=()%256; //定时器 低四位 初值&&&& n++;
//计数用变量 累加&&&& if(n&200)
//如果达到2ms&&&& {&&&&&&&&
//计数用变量 清零&&&&&&&&
LED = ~LED;
//对LED进行位取反&&&& }}/***************************************************************************/
采纳率:91%
什么时候要哦
那来不及了。。帮顶吧
好吧。谢谢了。
为您推荐:
其他类似问题
晶振的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.
51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.我自己解答:Fosc=12MHz,机器周期为1&s,方波周期为0.1s.半个周期用时0.05s.方波半周期=0.05/1&= 5×10^4 个机械周期初值X==H实际X’=3CB0H-06H=3C05H程序如下:ORG 0000H AJMP MAINORG 0030HMAIN:MOV TMOD,#01H SETB P2.0MOV A,#01H ;MOV A,#01H ;拖两个周期LOOP:CPL P2.0 ;一个周期MOV THO,#3CH ;一个周期MOV TL0,#05H ;一个周期SETB TR0 ;一个周期JB TF0,LOOP ;2个周期END 现在我想问这程序对不?TF0为1溢出中断时,要不要重设TMOD?TR0是否会变回0?解答最好给出正确程序.请回答全部的问题,本人小白.拜谢,
程序如下:ORG 0000H AJMP MAINORG 0030HMAIN:MOV TMOD,#01H MOV TL0,#0B0HMOV TH0,#3CHSETB TR0LOOP:JNB TF0,LOOP ;2个周期.MOV TL0,#0B3H ;一个周期.MOV TH0,#3CHCPL P2.0 CLR TF0SJMP LOOPEND ----------上述程序,经过KEIL软件调试,是符合要求的.指令:CPL P2.0 ,确实是每隔50000机器周期,执行一遍.
我有更好的回答:
剩余:2000字
与《51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.》相关的作业问题
1.时钟周期即晶振的单位时间发出的脉冲数,12MHZ=12×10的6次方,即每秒发出个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒.2.一个机器周期等于12个时钟周期,所以是1微秒.
TMOD=0x10;TH1=0xFC;L1=0x18;即为高电平时间为1ms.最大定时时间:2^16毫秒t=(2^16-计数初始值)X晶振周期X12. 再问: "最大定时时间:2^16毫秒 t=(2^16-计数初始值)X晶振周期X12."中的计算初始值为的时候是最大定时时间吗? 还有TH1和TL1是怎么得到的呢?
以AT89C51系列为例:在计数器工作方式中,计数器是对外部事件计数,计数脉冲来自外部输入引脚,当外部引脚发生“1”至“0”的负跳变时,计数器加1.内部硬件在每个机器周期的S5P2采样外部输入引脚状态.当在一个机器周期采样到高电平,接着另一个周期采样到低电平时,计数器的值将在检测到变化后的下一个周期的S3P1中被更新,
UARTINIT:;1200bps@6MHzANL PCON,#7FH;波特率不倍速MOV SCON,#50H;8位数据,可变波特率ORL AUXR,#40H;定时器1时钟为Fosc,即1TANL AUXR,#0FEH;串口1选择定时器1为波特率发生器ANL TMOD,#0FH;清除
11.0592不能按12来算,因为11.0592是为了串口通信是设置波特率方便才设置的.如果你不用串口的话,那就找个整数的晶振来用吧,计算还方便;如果不想换晶振,而且精度要求不是很高的话,也可以把11.0592当做11M来计算.
时钟周期为时钟脉冲的倒数=1/12 us完成一个基本操作所需要的时间称为机器周期.一个机器周期由若干个S周期(状态周期)组成.自己去查8031单片机的机器周期由几个状态周期组成
1、机器周期=晶振周期*12.2、所以单片机中晶振频率为12MHZ的机器周期=12*1/12M=1微秒.
1、已知单片机系统机器周期为时钟周期的12倍,故每个机器周期为12/12M=1us2、50ms=50*位定时器的定时时间最长为65536us,定时50us的初值为0=0x3cB04、0x3cb0就是初值,其中TH=0x3c,TL=0xb0
当晶振为12MHz时机器周期为1uS(微秒) 标准51的DJNZ指命用时为二个机器周期,由于大循环R2中的数是50,小循环每次被重置为#100 , 故就应该是 1(MOV R1,#50用)+2*50*100(循环所用)+50(MOV R2,#100用的)+2 (RET用的) 这个50 是第一条 MOV R2,#100
第一空,应定义为工作方式2,即(自动重新装入初始值)方式.
LZ确定问的是时钟周期?时钟周期就是晶振提供的震荡频率的倒数.如果你的意思是单片机的机器周期的话就不是这样了,晶振给单片机提供一个震荡频率之后,单片机内部CPU使用之前会经过一个处理,不同的单片机会有分频或者倍频或者直接使用,这一步之后的频率才是单片机真正的主频,要算机器周期那就直接是主频的倒数~建议了解下时钟周期,机
#include #define uchar unsigned char#define uint unsigned intsbit LED = P1^0;uchar T_Count = 0;void main(){ TMOD = 0x01; TH0 = ()/256; TL0 = (65536-5
1、 MOV R3,#28H ;1 2、 LOOP: NOP ;1 3、 NOP ;1 4、 DJNZ R3,LOOP ;2 5、 RET ;2根据晶振为6MHz知每个机器周期为2us,为了说明方便对上面程序段编了个号:第1条指令只在循环体外,只执行一次,要1个机器周期;第2到第4为一循环结构,循环次数由R3决定,28
指令的指令周期,和晶振频率没有任何关系.MOV R2,#10H的指令周期是1T,即一个机器周期.无论晶振频率是多少,它都是一个机器周期.如果晶振频率为12MHz,一个机器周期就是 1us.
1/12×10的6次方=1us 方式2 ,1×2的8次方=256计算初值设为x (256-x)×1×10的-6次方=100×10的-6次方 最后得x=9c 所以TH0=00 TH1=9C
DELAY:MOV R6,#47H ;这条指令耗时1个机器周期 DL0: MOV R5,#02H;这条指令耗时1个机器周期DJNZ R5,$;这条指令耗时2个机器周期,因为R5等于2,所以一共是2 X 2个机器周期 ;加上上一条指令,这两个指令一共耗时5个机器周期 DJNZ R6,DL0;这条指令耗时2个机器周期,R6
ORG 1000HDEL:MOV R7,#20; 单周期1uS ( 晶振为12MHz)DEL1:MOV R6,#125; 单周期1uSDEL2:DJNZ R6,DEL2; 双周期2uS*125=250uSDJNZ R7,DEL1; 双周期(2us+250+1)*20=5060uSRET; 单周期1s = 5.06 mS
程序不难编,题目有问题,因为占空比2:5,一个周期就是7个单位,周期又为200us,200怎么被7整除?我这段程序在单片机P1.0口线上产生连续周期性矩形波,周期为400us,占空比1:7.假设晶振频率6MHz,你参考一下.ORG\x05\x050000H\x05\x05LJMP\x05START\x05\x05ORG
;ORG 0000HSJMP STARTSTART:MOV TMOD,#20HMOV TH1,#236 ;40us @ 6MHzMOV TL1,#256SETB TR1LOOP:MOV R2,#10SETB P1.0WAIT:JNB TF1,WAITCLR P1.0CLR TF1DJNZ R2,WAITSJMP LOO}

我要回帖

更多关于 单片机cpu主频 的文章

更多推荐

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

点击添加站长微信