若示波器测量晶振频率率为12MHZ,设计一个100ms的延时程序

单片机晶振频率为12MHZ,编写延时0.2秒程序
单片机有定时器啊,直接给参数调用就可以了,还不占程序资源。
其他答案(共1个回答)
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。
方式0的波特率 =
方式2的波特率...
关于测时间,我们是这样做的:用外部晶振,(有源)。加非门整形,变成脉冲.然后送到393计数,我们用的是10兆晶振,测量精度是0.1us。再在单片机的控制下从39...
如果是用单片机上的定时器的话是很简单的。给你个代码参考吧
unsigned char code dispcode[]={0x3f,0x06,...
如果你程序没弄错,就是硬件问题。io口设置也要对,如果设置成输入,只能读出PIN值做判断。如果要控制高低电平输出控制,要把io口设置成输出。
希望能帮助你。
答: 帮宝适红帮的立体凸纹表层起到什么作用啊?我觉的很奇怪啊。
答: 考试合格啊!
答: 当前世界上有四个最大的科学难题,全球各专业的科学家都在设法揭开大自然的这些秘密,如能解开这些谜团,那么人类的生活以及对世界的看法将发生根本的变化。
  一、人体...
答:  2011年二级建造师考试时间(部分省市时间不统一)
6月26日  上午9:00-12:00
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415《单片机基础》第1次实验报告 实验内容 实验十 广告灯实验(实验手册P28页) 姓名
实验准备:
按要求完成以下步骤: 1、汇编源程序“ZYADV.ASM”已粘贴在下方,看懂源程序后对每条指令加上注释信息,注释信息以分号开始,将注释信息的字体设置为?绿色?。 RG 0
DPTR,#TAB ;转移表首地址送数据指针DPTR
R5,#71H把循环次数71H送到R5中
A,#00H00H送入A中
A,@A+DPTR;将表中第一个数据取出送入A中
;将A中数据从P1口输出 ;调用延时子程序 ;调用延时子程序 ;DPTR后移,指向下一个地址单元 ;判断循环是否结束,若R5自减1不等于0,则继续循环,否则顺序执行 ;跳到主函数 ;将00H送到R7中,控制内循环次数 ;将00H送到R6中,控制外循环次数 ;判断内循环是否结束,R7自减1不为0,本地跳转,否则顺序执行 ;判断外循环是否结束,R6自减1不为0,跳到DE处,否则顺序执行
DELAY: MOV
RET子程序返回 DB
0FEH, DB 80H, DB
0FEH, DB 80H, DB
80H, END 0FDH, 7FH, 0FFH, 00H, 0FFH, 00H, 0FFH, 0FFH, 9FH, 0E7H, 0FCH, 40H, 02H, 0C0H, 0FBH, 0BFH, 0FEH, 80H, 7FH, 01H, 7EH, 0FEH, 3FH, 0F3H, 0F8H, 20H, 04H, 0E0H, 0F7H, 0DFH, 0FCH, 0C0H, 3FH, 03H, 3CH, 0FCH, 7FH, 0F9H, 0F0H, 10H, 08H, 0F0H, 0EFH, 0EFH, 0F8H, 0E0H, 1FH, 07H, 18H, 0FCH, 0FFH, 0FCH, 0E0H, 08H, 10H, 0F8H, 0DFH, 0F7H, 0F0H, 0F0H, 0FH, 0FH, 00H, 0F9H, 7FH, 0FEH, 0C0H, 04H, 20H, 0FCH, 0BFH, 0FBH, 0E0H, 0F8H, 07H, 1FH, 18H, 0F3H, 3FH, 0FFH 80H, 02H, 40H, 0FEH, 7FH 0FDH 0C0H 0FCH 03H 3FH 3CH 0E7H 9FH 00H 01H, 80H, 0FFH 00H 00H C语言程序 #include
void main(void) {
//定义花样数据
const unsigned char tab[113]={ 0xFE, 0xFD, 0xFB, 0xF7, 0xEF , 0xDF ,0xBF, 0x7F,
0xFF, 0x7F, 0xBF, 0xDF,0xEF,0xF7, 0xFB, 0xFD, 0xFE, 0xFF, 0xFE, 0xFC,
0xF8, 0xF0, 0xE0,0xC0, 0x80,0x00, 0x80,0xC0,0xE0, 0xF0, 0xF8, 0xFC ,
0xFE, 0xFF, 0x7F, 0x3F, 0x1F,0x0F, 0x07, 0x03, 0x01, 0x00,0x01,0x03,
0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x18,
0x3C, 0x7E, 0xFF,0xFE,0xFC,0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0x7F,
0xFF,0x7F,0x3F,0x9F,0xCF, 0xE7,0xF3,0xF9,0xFC,0xFE,0xFF,0xFE,0xFC,
0xF8,0xF0,0xE0,0xC0, 0x80, 0x00, 0x80, 0x40,0x20, 0x10, 0x08, 0x04,
0x02, 0x01, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10,0x20,0x40, 0x80, 0x00,
0x80, 0xc,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};//定义延迟变量
//定义循环变量
for(b=0;b<113;b++)
for(a=0;a<30000;a++);//延迟一段时间
P0=tab[b];//读取已定义的花样数据并将数据传给P0口
}while(1); } 2、观察实验现象,阅读源程序,思考并回答以下问题。 (1)将程序正确下载到实验箱后,观察程序全速运行的现象。思考灯的闪烁有何规律?源程序是如何控制灯闪烁的? 答:LED灯先从L7到L0顺序点亮,再从L0到L7顺序点亮,再从两边往中间亮,又从中间往两边亮。
(2)按F10功能键进行单步执行程序,观察流程是否会进入表格首地址。 答:通过观察,会进入表格首地址。
(3)在单步执行程序过程中,观察灯闪烁的规律,思考LED灯是“共阳极”接法,还是“共阴极”接法? 答:由于送0时,LED点亮,送1时LED灯灭,所以LED灯是“共阳极”接法
(4)思考源程序中寄存器R5的初值为何是“71H”?“ACALL DELAY”指令为何调用两次,如果只调用一次现象有何改变? 答:因为71H转换成十进制为113,TAB表格中共有113个数据,故循环次数R5初值为113(71H);ACALL
DELAY”指令调用两次是为了增加延时,便于观察灯的亮灭; 如果只调用一次,LED灯将闪烁得更快。
(5)假设单片机实验箱的晶振频率为12MHz,请计算DELAY标号开始的延时程序具体延时了多长时间?写出计算公式。并思考,如果需要控制灯闪烁加快,或者减慢应如何修改程序? DELAY: MOV
R7,#00H1us
R6,#00H1us
RET 答:如果需要控制灯闪烁加快可以多调用几次延迟子程序,可以在延迟子程序中多嵌套几层循环;若要减慢灯的闪烁,可以减小R7、R6的初值,可以只调用一次延迟子程序,可以在延迟子程序中只用一层循环。 (1) 假设单片机实验箱时钟频率为12MHz,使用单片机的定时器T0,编程控制灯闪烁周期为100ms,将汇编源程序粘贴在此处。
RG 0 MAIN:
MOV R1, #02H
0FEH, 0FDH, 0FBH,
0FFH, 7FH, 0BFH,
0FEH, 0FFH, 0FEH,
DB 80H, 00H, 80H,
0FEH, 0FFH, 7FH,
01H, 00H, 01H,
7FH, 0FFH, 7EH,
7EH, 0FFH, 0FEH,
0CFH, 9FH, 3FH,
0CFH, 0E7H, 0F3H,
0FEH, 0FCH, 0F8H,
DB 80H, 40H, 20H,
01H, 02H, 04H,
80H, 0C0H, 0E0H,
0F7H, 0EFH, 0DFH, 0EFH, 0FCH, 0F8H, 0C0H, 0E0H, 3FH, 1FH, 03H, 07H, 3CH, 18H, 0FCH, 0FCH, 7FH, 0FFH, 0F9H, 0FCH, 0F0H, 0E0H, 10H, 08H, 08H, 10H, 0F0H, 0F8H, 0DFH, 0BFH, 0F7H, 0FBH, 0F0H, 0E0H, 0F0H, 0F8H, 0FH, 07H, 0FH, 1FH, 00H, 18H, 0F9H, 0F3H, 7FH, 3FH, 0FEH, 0FFH 0C0H, 80H, 04H, 02H, 20H, 40H, 0FCH, 0FEH, 7FH 0FDH 0C0H 0FCH 03H 3FH 3CH 0E7H 9FH 00H 01H, 00H 80H, 00H 0FFH51系列单片机晶振频率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机器周期,执行一遍.
与《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

我要回帖

更多关于 晶振频率测试方法 的文章

 

随机推荐