用C语言写一个KEILC51的延时1秒程序,急

作者&投稿:蒸紫 (若有异议请与网页底部的电邮联系)
单片机 程序 延时1秒 大概要几次循环 C语言~

比如菲博的那个数列,16次就够了

看什么编译器,如果是turbo c的话,他的delay函数有错误,不同的系统频率,他的延时时间不一样。只能自己做,就是取系统时间,c有现成的函数。
比如:
gettime(time1);//假如
while(1){ gettime(time2);//假如
if((time2-time1)>5)
break; //到时间了,退出
}
对于time的时间差可以这样算 比如6分1秒和 7分20秒,时间差是(7*60 +20)-( 6*60 +1) 绝对值就是秒数

keilc51好像也是用C编程,
一般延迟程序就是增加系统负载比如:
int i,j;
yanchi()
{
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
;
}
这样就可以达到延迟的目的,具体参数你可以随便设。


单片机C语言kei编译中的错误,请帮我看看到底哪里错了?
那几个函数指针你直接拿来用了,但是没有定义。struct中只是说当前成员为指向空类型的函数指针,但是不算定义。你应该在使用前使用void (*main_menu1)();...void(*sub_menu9);把所有指针定义一遍。

kei编程问题l
{while(1)cal(light);}

在kei里,用C语言编写了主程序,怎么调用用汇编编写的延时子程序?_百度...
1.Proteus仿真时需要加载的是经过汇编(由汇编语言编写的源程序文件时)或编译与汇编(由C或其他高级语言编写的源程序文件要先编译成汇编语言,再汇编成hex、bin文件)的hex文件(称为目标文件)。2.Proteus与C语言没有必然关系,要的只是hex文件,可以经过编译生成hex文件的语言一大堆。3.学好Proteus没有...

kei中如何C语言中插入汇编语句
pragma asm;nop;pragma endasm;

急求一个51单片机的C语言程序,要求从串口发送字符串,由Proteus里虚拟终端...
1、你的 Proteus 仿真环境搭建好了吗?2、如果只是简单的调试串口,在 Kei l里面也可以跟踪到串口数据的。这张就是Keil接收串口和发送串口数据的图片

求大哥帮C语言编一个程序,输入一个字符串,按反序存放后再输出该字符串...
我比较讨厌写这些破程序。。 给你说下思路把 我当年也做过 弄两个数组 然后搞两个FOR循环 一个递增 一个递减 就拷贝到第二个数组里了

高分求助:kei c如何编程让8位数码管亮
uchar code DIS_BIT[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};\/***\/ void delay1ms(uint i){ uint j;while(i--)for(j = 0; j < 125; j++) {;} } void main(void){ uchar cnt, ttt;uchar DISP[] = {0, 1, 2, 3, 4, 5, 6, 7};while(1) { for(ttt...

c语言编程由开关k1控制四盏灯的亮灭
下面以51单片机为例,P1^0接按键到地,P0^0~3以灌电流驱动方式分别接led1~led4。用Kei uVisionl编译。1.控制四盏灯一起亮灭 include<reg51.h> sbit key1 = P1^0;sbit led1 = P0^0;sbit led2 = P0^1;sbit led3 = P0^2;sbit led4 = P0^3;unsigned int count;void delay...

c语言中kei报错c206和c276有什么区别
是问keil么?那只是错误编号,你要看编号后面的一串文字说明啊,那才是排查错误真是有用的内容。双击错误也可以定位到大致错误位置。

51单片机是否自带程序,如果不是,那么编好的程序如何确定放在哪个单元里...
不是啊,它里面只是有各种各样的连线,你是通过程序来控制各个部件工作的。用kei软件可以用c语言编写单片程序在通过lSTC-ISP V29 Beta5软件下载到单片机的!给你看看我的一个小程序:\/\/8个发光管来回流动,每个管亮100ms,\/\/liu动时让蜂鸣器发出“滴滴”include<reg51.h> include<intrins.h> define...

河曲县19138325416: 用C语言写一个KEILC51的延时1秒程序,急 -
焦贷盖诺: keilc51好像也是用C编程, 一般延迟程序就是增加系统负载比如: int i,j; yanchi() {for(i=0;i<1000;i++)for(j=0;j<1000;j++); } 这样就可以达到延迟的目的,具体参数你可以随便设.

河曲县19138325416: 怎么用C语言做单片机的精确延时 -
焦贷盖诺: 在单片机应用中,经常会遇到需要短时间延时的情况,一般都是几十到几百μs,并且需要很高的精度(比如用单片机驱动DS18B20时,误差容许的范围在十几μs以内,不然很容易出错);而某些情况下延时时间较长,用计时器往往有点小题大...

河曲县19138325416: 求用C编写一个51单片机的延时函数,用T0定时器. -
焦贷盖诺: #include <reg51.h>#define uchar unsigned char sbit LED=P1^0; uchar time; void InitTimer0(void) { TMOD = 0x01; //定时器0,工作方式1 TH0 = 0x3c; TL0 = 0xb0; //50ms中断一次 EA = 1; ET0 = 1; TR0 = 1; } void main(void) { InitTimer0(); while(1);...

河曲县19138325416: 如何用C语言对单片机进行精确延时 -
焦贷盖诺: 用 定时器/计数器 实现, 给定时器 寄存器设个初值, 选个工作方式, 时间一到 溢出 产生中断, 在中断 子程序中 调用串口 可以输出延时的时间. 至于初值 设为多少, 那就要看你到底定时多少了. 12M晶震 的机器周期 是 1us 自己算酸 分单字节单周期指令, 双字节单周期指令, 单字节双周期指令.单片机在执行 指令时 首先要取指令和执行指令2步.单周期指令的执行时间 为一个机器周期.比如:如果想要知道 for(;;)这个循怀 到底用了多长时间来执行. 那么你可以 查编译器 这条语句所对应的 操作码和操作数. 然后再区分其到底是什么类型的指令.最后把时间加加 就可以了 .

河曲县19138325416: 51单片机,keil用C语言编程时,延时语句的具体作用? -
焦贷盖诺: 这个问题问的相当笼统举个简单的例子做闪烁灯实验的时候,往往我们会用到延时语句其目的是让闪烁灯能亮若干时间,灭若干时间,以达到闪烁的效果延时说白了就是让CPU保持当前的状态空运转

河曲县19138325416: 求一个C51单片机上的20秒延时子程序!用汇编语言 -
焦贷盖诺: 1、软件延时方法:DELAY:MOV R7,#0BFH DL1: MOV R6,#0D1H DL0: MOV R5,#0F9H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 MOV R5,#02H DJNZ R5,$ RET2、定时器方法: ORG 0000H LJMP START ORG 000BH LJMP Timer0Interrupt ...

河曲县19138325416: AT89C51单片机延时1秒程序怎么写??? -
焦贷盖诺: void DELAY(int z)//延时zms {int x,y;for(x = z;x > 0;x--)for(y = 110;y > 0;y--); }DELAY(1000); 就可以延时1S 但是有很小的误差 精确的只能用定时器了

河曲县19138325416: 51单片机延时1us,12M晶振怎么用c语言写 -
焦贷盖诺: 51单片机12M晶振时是了.C语言中也是如此.#include<reg51.h>#include<intrins.h> main() { _nop_(); //延时1us while(1);}

河曲县19138325416: 如何用C语言实现51单片机多个延时时间
焦贷盖诺:MCU 可以 写一个,T0 ,T1两个, 例如:MCU的等待延时 void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); 下面这两个是独立运行的,不浪费MCU的时间 /***初始小灯0.25秒循环闪烁***/ void timer0() interrupt 1 { TH0=(65536-500)/...

河曲县19138325416: 51单片机,有8个流水灯,每个之间延迟1秒,这个延迟用c程序编写怎么写 -
焦贷盖诺: 要看你的时钟周期,如果是12Mhz的话,每个时钟周期MC=6*2/12 M =1us,所以延迟是让机器计数1000000下,上面那个公式你自己套用24Mhz的就是2000000下.c语言的循环次数你自己算,每条指令一个周期,所以楼上的程序在12Mhz下是1s延迟.

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