新人单片机做时钟时候延时子程序延时方式没懂,求dalao解答,程序如下

作者&投稿:殳枫 (若有异议请与网页底部的电邮联系)
单片机程序求解答定金20元,解答完40元。~

具体是什么要求?发私信给我。

延时函数是所有单片机程序中不可缺少的,单片机的速度相对很多器件来说已经很高了,必须加延时才能匹配,如液晶屏1602,送一个字符或命令后,必须有ms级延时,才能送下一个字符
数码管扫描显示,每点亮一个数码管也要延时保持一会儿,还有一些短的延时,如模拟SPIJ时钟,只用2 个空操作语句就解决了

delay子程序就是让单片机不做什么事情,在等待子程序完成条件.
void delay(n) //延时子程序
{
while(n--) //这里把传入的参数当作次数来用
{
for(i=120;i>0;i--); // 等待i减完
}
}


我自己写的一个单片机时钟程序,但是我在调节时间的时候,运行着的时钟...
1、刷新显示放在定时中断中,分割成多个部分,每次中断执行1小部分,就如动态扫描原理 2、延时程序使用刷显示的子程序代替 3、键盘检测程序优化,不要用死等待的程序结构,将键盘处理分成几个部分,主程序 每次扫描只执行其中1部分

单片机做时钟程序
在设置过程中,按UP循环加1、按DN循环减1、按KEY_ENTER退出设置(4)按键设置时间闪烁,设置小时时,小时位在闪烁,设置分钟时,分钟位在闪烁,设置秒时,秒位在闪烁,退出设置后不闪烁要用C语言,基于STC89c52芯片 展开  我来答 3个回答 #热议# VISA中国银行冬奥信用卡有哪些卡产品?hpj4525 2012-05-25 · TA获得...

单片机做数字时钟,求程序
1、解决驱动码。得到显示所有字符的七段码。2、解决动态扫描问题。在定时中断中顺序扫描其中一个数码管。3、解决内容——定时的计时表述。Hour,Minute,Second,mS;4、解决时间的修改设置。1、通用码表 define SEGA1 define SEGB2 define SEGC4 define SEGD8 define SEGE0x10 define SEGF0x20 define...

单片机做时钟显示的问题
AJMP SET2 ;防止键按下时无时钟显示 SET3: LCALL DISPLAY ;等待调分按键时时钟显示用 AJMP SET4 SET5: LCALL DISPLAY ;键释放等待时调用显示程序(调小时) AJMP SETHH1 ;防止键按下时无时钟显示 SET7: LCALL DISPLAY ;等待调小时按键时时钟显示用 AJMP SET6 SETOUT1: LCALL DISPLAY ;退出时钟调整时键释放...

单片机做电子时钟
采用查询方式会影响精度。其实,外加了一个50hz的固定脉冲,也未必就是非常准确吧。用一个12MHZ的晶振,用内部定时器计时,也可以做到很准确的吗,也不会比外部的固定脉冲误差大的。最好的方法是用一片时钟芯片,DS1302,这是做电子钟的典型配置,计时精确,还可以带备用电池,计时不间断。

单片机某一脚输入时钟程序怎么设置
1、首先,需要将系统时钟切换到HICK。2、其次,需要将其余的系统时钟配置寄存器写入默认值。3、最后,进行新配置参数的写入即可。

我用单片机做一个日历时钟,但是时钟走个一两分钟就会慢了20来秒钟!请问...
显然你定时太不准了,把定时值调整下,可以把误差缩小些。最好还是用时钟芯片吧。也不贵

用单片机做电子时钟的一个问题
可以用中断来做按键处理,实际影响不大,你要是想准一点,那就是按键用外部中断1,定时用定时器0.不过按键处理一般实时性要求不高,可以用定时扫描的方法进行判断。最最重要还是得晶振精度高,不然都白扯。

用单片机做时钟是否可行?
用单片机做时钟没问题的,一般要加一个时钟芯片,例如:DS12887 等时钟芯片,在网上可以搜索到,并且在电子市场上可以买到的,一般10元左右吧。用时钟芯片可以使单片机在断掉电源,再上电后,时间仍是准确的。电路很简单的。你搜索一下这个芯片的手册,上面就有了。

如何用单片机做电子钟?
基本上有两种方法:1.使用外部时钟芯片,如DS1302,DS12C887等 2.只使用MCU内部晶振提供的时间基准。郭天祥的那个视频中,两种都有介绍,可以看下。视频网上流传很多,可方便下载到

哈巴河县17769772699: 新人单片机做时钟时候延时子程序延时方式没懂,求dalao解答,程序如下 -
员雪银杏: delay子程序就是让单片机不做什么事情,在等待子程序完成条件.void delay(n) //延时子程序 {while(n--) //这里把传入的参数当作次数来用 { for(i=120;i>0;i--); // 等待i减完 } }

哈巴河县17769772699: 单片机:系统时钟12MHz,设计1个10ms延时子程序. -
员雪银杏: 建议使用定时器中断函数延时,延时准确还不占用主程序的时间,初始化程序: void init() { TMOD=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; } 中断函数程序: void timer0() interrupt 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; t++; } t每自加一次,延时10ms.

哈巴河县17769772699: 设单片机时钟频率为12MHZ,编写1分钟的软件延时子程序
员雪银杏: MAIN:MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV R0,#20 SETB EA SETB TR0 SETB ET0 SJMP $ DJNZ R0,ZDFH MOV R0,#20 SJMP $ ZDFH:MOV TH0,#3CH MOV TL0,#0B0H RETI

哈巴河县17769772699: 80C51单片机设计一个延时20ms的子程序,时钟为6MHZ.写出计算过程 -
员雪银杏: 把定时器设置成定时模式方式1,使用T0,则TMOD=0x01 6Mhz对应的机器周期是2us 则定时时间=(最大值-X)*2us20ms =( 65536-X )*2us x=55536 对应的十六进制 D8F0 所以TH0=0xD8,TL0=0xF0 开中断 ET0=1;EA=1 启动定时器TR0=1

哈巴河县17769772699: 单片机如何实现精确延时? -
员雪银杏: 单片机的精确延时主要取决于两个方面:一、系统时钟的准确性和稳定性.(晶振或晶体或内部振荡或其他外部时钟源) 二、单片机执行延时的实现方法.一不做讨论,但显然与精度密切相关.要求精确的延时时间越长,当然误差越大.假设时...

哈巴河县17769772699: 单片机中的延时程序的延时时间怎样计算的? -
员雪银杏: 把#号后面的数乘起来,计算后的结果就是延时的时间,单位是US,要花成秒要除以100000

哈巴河县17769772699: 单片机延时程序 -
员雪银杏: 函数的入口参数,当你调用延时函数时,... delayms(10);... 目的要延时10ms,这是这个uint的无符号整形变量xms就被赋值为10,在进入delayms();函数后,i=xms即i=10,然后做for循环,根据系统的时钟周期做出相应时间的延时.如果没有xms,你的延时函数只能写成固定延时的,即在delayms内部确定好i的值,很不方便.有了入口参数,就能像上面说的那样随意延时了(数值范围要在uint定义内,即小于65536).

哈巴河县17769772699: 单片机延时程序是怎么实现的? -
员雪银杏: 延时是靠CPU执行无关指令,把时间浪费掉.具体来说,DJNZ指令需要2个周期,循环250次就是500个周期,两层循环就是500*500个周期,你调用一次DELAY子程序,CPU就空转250000个周期(注意这个计算不精确),如果晶振是12MHz,那就意味着时间过去了250ms,也就是延时250ms

哈巴河县17769772699: 单片机求一用C编写的延时1小时的子程序,要精确到秒级别 -
员雪银杏: 你用C语言来编制有精度要求的延时子程序,这太不现实了.不过可以用定时器来做.void delay1s() { int i; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)*256; TR0=1; for(i=0;i<20;i++) { TH0=(65536-50000)/256; TL0=(65536-50000)*256; while(TF0==0); TF0=0; } }

哈巴河县17769772699: 若单片机的主频为12MHz,试编写延时为40us的延时子程序? -
员雪银杏: 不如使用T1,方式1 解答:Mc=2^16-Tc/Tp=65536-20ms/(12/12*10^6)=65536-20000=B1E0(H)TMOD=#10(H)初始化程序段为mov TMOD,#10Hmov TH1,#0B1Hmov TL1,#E0Hsetb TR1... ... 就写这么多吧,你的悬赏分数让我觉得我写这些已经足够了! 请参考

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网