关于C语音python 延时函数数的问题

  所引用的三种延时函数都是由循环控制语句&&while、do_while和for等实现的。
  (1)带形式参数的由for语句组成的延时函数
  该延时函数由两个for语句组成,第一个for语句中的81是笔者设置的常数(可任意设定),用于使延时值增加;第二个for语句中的k是在程序中主函数main()调用delay(k)时,由用户给定的值,k值不同,延时时间就不等,所以该延时函数可在一个C程序中实现不同的多个延时量,显然比汇编语言延时子程序简单多了。在延时量要求较短时,该延时函数种的两个for语句的功能可用一个for语句来实现。
  (2)带形式参数的由while循环语句组成的延时函数
  此延时函数简单、容易记忆。使用时,在程序中主函数main()调用delay(k)时,由用户给定不同的k值,亦可实现多种延时值。
  (3)带形式参数的由do-while语句组成的延时函数
  该延时函数简单易记。使用时,在程序中主函数main()调用delay(k)时,由用户给定不同的k值,即可实现多种延时值。
  需要说明的是,上述由while循环语句和由do-while语句组成的延时函数中的形式参数,不一定用长整型(longink)。
&&&&&往下看有更多相关资料
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670& & &&)在c语言中,碰到一个.c文件,无.h头文件,在另一.c文件调用函数时,并没有进行声明extern,
此时编译器不会报错,会默认去查找同名的函数,这样会存在一些问题,查了些资料,稍微总结了下:
1.声明函数可以不加extern,函数默认extern。2.声明变量必须要加extern.3.如果不加extern,编译器会默认去查找同函数名的函数,但会出错。   1).参数中如果出现float,一定会出现读取错误,但编译运行不报错.如果形参float后有int*类型的变量,编译运行会报错,之前有则不会报错。   2).函数形参如果都是整数类型的值(char、short、int、long、long long等),都可以正常传值,值的大小可以大于int范围   3).函数返回值无所谓什么类型,但大小范围不能超过int型范围(- ~ +),超过会返回值错误.
    可以理解为:默认返回值为int,后被强转成需要返回的类型(long、float等).
#include&stdio.h&
//extern int test_1(int a);
//int test_2(int a, int b);
int main()
int a0 = <span style="color: #;
int a[<span style="color: #] = { <span style="color: # };
float c = <span style="color: #.01f;
char d = <span style="color: #;
long long e = <span style="color: #;
long long f = <span style="color: #;
int a1 = test_1(a0);
//<span style="color: #
int a2 = test_2(a0, a0 + <span style="color: #);//<span style="color: #
float a3 = test_3(a0, a0 + <span style="color: #);//<span style="color: #.00
float a4 = test_4(a0, c);// -, c在那边读取2.000,
int a5 = test_5(a0, c); //
3, c在那边读取2.000,
int a6 = test_6(a0, c, a0 + <span style="color: #);// ,
c在那边读取2.000, a0+1读为:
int a7 = test_7(a0, d); //<span style="color: #
int a8 = test_8(a0, b); //<span style="color: #, b[1]正常写入8
int a9 = test_9(a0, b, c);//<span style="color: #, c在那边读取2.000,b[1]正常写入10
//int a10 = test_10(a0, c, b);//报错,c读取为2.00,b报内存冲突
long long a11 = test_11(a0, e);//<span style="color: #, e在那边正常读为,说明形参超出int读取正常
long long a12 = test_11(a0, f);//-, f在那边正常读为,说明返回值超出int会读取出错
getchar();
int test_1(int a)
return a + <span style="color: #;
int test_2(int a, int b)
return a +
float test_3(int a, int b)
return a +
float test_4(int a, float b)
float c = a +
int test_5(int a, float b)
int c = a +
int test_6(int a, float b, int c)
int d = a +
int test_7(int a, char b)
int c = a +
int test_8(int a, int* c)
c[<span style="color: #] = <span style="color: #;
return a + <span style="color: #;
int test_9(int a, int* c, float b)
c[<span style="color: #] = <span style="color: #;
return a + <span style="color: #;
int test_10(int a, float b, int* c)
c[<span style="color: #] = <span style="color: #;
return a + <span style="color: #;
long long test_11(int a, long long b)
long long c =
b-<span style="color: #;
&C语言数据类型范围:http://blog.csdn.net/abaloon/article/details/8173552
(32位系统)
char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 Bytes)int - ~ + (4 Bytes)unsigned int 0 ~
(4 Bytes)long == intlong long -4775808 ~ + Bytes)double 1.7 * 10^308 (8 Bytes)
unsigned int 0~&long long的最大值:4775807long long的最小值:-4775808unsigned long long的最大值:0955161
__int64的最大值:4775807__int64的最小值:-4775808unsigned __int64的最大值:
阅读(...) 评论()C语言中,除了延迟一段时间,子函数无返回值有何应用? - 知乎3被浏览98分享邀请回答0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起关于C语言延时时间的问题_文库下载
1亿文档 免费下载
当前位置: &
& 关于C语言延时时间的问题
关于C语言延时时间的问题
关于C语言延时时间的问题回答了一个关于C语言延时时间的问题,题目给出延时函数如下:delay(unsigned int x) {while(x--);}delay(unsigned int x) {for (i =0, i++);}单片机的晶振为12M。要求说出他们所延迟的时间分别是X的多少倍?怎么计算的。====================================最佳答案:C语言的执行时间,从来就没有计算公式。C程序的执行时间,和操作系统有很大的关系,和编译软件也有关。在单片机中,更和变量的存储类型有关(如单字节变量、两字节变量)。因为有如此多的不确定因素,所以,从来就没有办法计算C的执行时间。只是可以在仿真调试的时候,进行实际测量,得到一些(难以通用的)经验数据。楼主要想准确的控制时间,应该研究使用汇编语言,或者使用硬件定时器。C语言,只能干些粗活。原题网址:question.html====================================很多网友在C语言延时函数的延时时间方面,做出了很大的努力。在网上找到的一篇文章,其中给出了一些经验数据,摘录一些主要内容如下。=============================================文章转自 Proteus仿真社区
作者:liaoguobao00未作验证,如有问题请和原作者联系:=============================================用C语言写程序,是非常的简练,不足之处是它的延时很不好控制。很难知道一段延时程序的精确延时到底是多少,这和汇编延时程序无法相比。通过测试,给大家提供一个延时子程序模块,并以此给出一个延时的数据表格。延时模块:void Delay(){unsigned char a,b,c;for(a = 0; a++)for(b = 0; b++)for(c = 0; c++);}其中问号代表要填的数,要延时多少,到下面的表格中去找数据,然后填上就OK!数据表如下延时时间
误差(us)10us
Word文档免费下载:(下载1-2页,共2页)
下面给出有关在 C51 中延时子程序设计时要注意的问题 1、在 C51 中进行精确...一点一点试时间。 C 语言最大的缺点就是实时性差,我在网上到看了一些关于...下面给出有关在C51中延时子程序设计时要注意的问题 1、在C51中进行精确的延时...一点一点试时间。 C语言最大的缺点就是实时性差,我在网上到看了一些关于延时...关于C语言如何代码效率问题_计算机软件及应用_IT/...发生的 情况放在最后,这样会减少平均的代码执行时间...如上例中的延时函数, 我们把它改成不带 形参的...购物流程付款方式售后服务常见问题汇款确认与订单查询各地代理关于我们帮助中心论坛...能精确计算 C 语言延时程序中延时时间的小工具 你的积分已经有 116 了,可以换...通用C语言延时_电子/电路_工程科技_专业资料。通用 ...为了解决这两个问题, 提高程序的可移植性, 可以...(us)级的延时(粗糙) 说明: 延时时间为:T = 8 ...单片机C语言中_nop_函数的使用及C语言的延时计算标准的C语言中没有空语句。但...只要在程序设计循环语句时注意以上几个问题。 下面给出有关在C51中延时子程序...for循环实现C语言精确延... 3页 1下载券 关于单片机C语言的精确延... 6页...长时间的延时将会调用大量的&空操作&指令,占用大 量的程序指令空间.这个问题将...2 C 语言编译器 在用汇编语言编写的程序时, 很容易控制时间, 因为我们知道...可以利用它来构建延时程序, 精确定时的问题就变 为延时程序的精度问题。我们先...单片机 C 语言延时程序的简单研究 应用单片机的时候,经常会遇到需要短时间延时的...以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。比如用的是 12M...单片机C语言精确延时值的计算 作者:佚名 来源:本站原创 点击数:1316 更新时间:日 【字体:大中小】 关于单片机C语言的精确延时,网上很多都是大约给...14:56 提问
关于AT89C51单片机数字时钟的设计C语言程序warning问题
本人新手,还希望各位大大帮忙看下怎么解决
Build target 'Target 1'
assembling STARTUP.A51...
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
STARTUP.obj (?C_STARTUP)
ADDRESS: 080AH
Program Size: data=9.0 xdata=0 code=15
"t" - 0 Error(s), 2 Warning(s).
源程序如下:
#define uint unsigned int
#define uchar unsigned char
sbit QB1=P1^0;
sbit QB2=P1^1;
//数码管段选
sbit QB3=P1^2;
sbit QB4=P1^3;
sbit QB5=P1^4;
sbit QB6=P1^5;
sbit fm=P1^6; //蜂鸣器
sbit s1=P2^4; //s5按键,切换显示
sbit s2=P2^3; //s2按键,设置调时
sbit s3=P2^2; //s3按键,加1
sbit s4=P2^1; //s4按键,减1
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
uchar sec,minu,hour,day,week,
uchar n_sec,n_minu,n_
uchar set_2=1,set_1=1;
uchar hs,hg,mis,mig,ss,
uchar nhs,nhg,nms,nmg,nss=0,nsg=0;
uchar ms,mg,ds,dg,w;
uchar code table[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,
0X90,0X88,0X83,0XC6,0XA1,0X8E,0X86,0xbf}; //0~F,-,共阳
//uchar code tableyi[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
//0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};//0-F,-,共阴
uchar code table_d[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
0x87,0xff,0xef}; //0~9数组,带小数点
uchar table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年
uchar table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年
void delay(uint); //延时函数
void timer0(); //走时中断函数
void jishi(); //计时函数
void key_change(); //切换显示按键函数
void key_set(); //设置时间按键函数
void disp(uchar,uchar,uchar,uchar,uchar,uchar); //显示函数
void zd_clock(); //整点报时函数
void nz_clock(); //闹钟函数
uchar incone(uchar); //加1函数
uchar decone(uchar); //减1函数
void set_time(); //设置时间函数
void set_clock(); //设置闹钟函数
void set_mdw(); //设置月日星期函数
void main() //主函数
TMOD=0x01;
TH0=0x4c; //50ms初值 晶振11.0592
hour=23;minu=59;sec=49; //赋初值:11点59分0秒
n_hour=12;n_minu=56;n_sec=0; //闹钟赋初值12点1分0秒
year=2008;mon=5;day=14;week=3;//年月日星期赋初值日星期天;祝天下所有母亲节日快乐
hs=hour/10; //时分秒HH.MM.SS
hg=hour%10;
mis=minu/10;
mig=minu%10;
ss=sec/10;
sg=sec%10;
ms=mon/10; //月日-星期MM.DD.-W
mg=mon%10;
ds=day/10;
dg=day%10;
nhs=n_hour/10; //闹钟定时HH.MM.SS
nhg=n_hour%10;
nms=n_minu/10;
nmg=n_minu%10;
nss=n_sec/10;
nsg=n_sec%10;
key_change(); //s4按键扫描
key_set(); //s2按键扫描
set_time(); //设置时间
set_mdw(); //设置月日星期
set_clock(); //设置闹钟
if(set_1==1) //正常走时显示
disp(hs,hg,mis,mig,ss,sg);
if(set_1==2) //设置时间,LED1闪亮
disp(hs,hg,mis,mig,ss,sg);
if(sec%2==0)
{led2=1;led3=1;led1=~led1;}
// {led1=1;}
if(set_1==3) //正常显示月日-星期
disp(ms,mg,ds,dg,16,w);
if(set_1==4) //设置月日-星期,LED2闪亮
disp(ms,mg,ds,dg,16,w);
if(sec%2==0)
{led1=1;led3=1;led2=~led2;}
// {led2=1;}
if(set_1==5) //正常显示定时
disp(nhs,nhg,nms,nmg,nss,nsg);
if(set_1==6) //设置闹钟定时,LED3闪亮
disp(nhs,nhg,nms,nmg,nss,nsg);
if(sec%2==0)
{led1=1;led2=1;led3=~led3;}
// {led3=1;}
zd_clock(); //整点报时
nz_clock(); //闹钟
void timer0() interrupt 1 //50ms中断函数
TMOD=0x01;
TH0=0x4c; //50ms初值 晶振11.0592
if(count==20)
jishi(); //调计时函数
void jishi() //计时函数
if(sec==60)
if(minu==60)
if(hour==24)
if(week==8)
if(year%4==0&&year%100!=0||year%400==0) //闰年
if(day==table1[mon]+1)
if(mon==13)
{mon=0;year++;}
else //非闰年
if(day==table2[mon]+1)
if(mon==13)
{mon=0;year++;}
void key_change() //s1按键扫描
delay(200);
while(!s1);
if(set_1==7)
{set_1=1;}
void key_set() //s2按键扫描
delay(10);
while(!s2);
if(set_2==4)
{set_2=1;}
void disp(uchar a1,uchar a2,uchar a3,uchar a4,uchar a5,uchar a6) //显示函数
P3=table[a1]; //段码送P0口
delay(10); //延时一小会
P3=table[a2]; //第2个数码管显示,带小数点
delay(10);
P3=table[a3]; //第3个数码管显示
delay(10);
P3=table[a4]; //第4个数码管显示,带小数点
delay(10);
//第5个数码管显示
P3=table[a5];
delay(10);
P3=table[a6]; //第6个数码管显示
delay(10);
void zd_clock() //整点报时函数
if(minu==59&&(sec==53||sec==55||sec==57))
if(minu==59&&sec==59)
void nz_clock() //闹钟函数
if(hour==n_hour&&minu==n_minu&&sec==n_sec)
//if((sec%2==0)&&sec&30)
void set_time() //设置时间函数
if(set_1==2)
if(set_2==1)
hour=incone(hour);
if(hour==24)
// if(hour&0)
// {hour=23;}
hour=decone(hour);
if(set_2==2)
minu=incone(minu);
if(minu==60)
// if(minu&0)
// {minu=59;}
minu=decone(minu);
void set_mdw() //设置月日星期函数
if(set_1==4)
if(set_2==1)
mon=incone(mon);
if(mon==13)
mon=decone(mon);
// if(mon==0)
// {mon=12;}
if(set_2==2)
day=incone(day);
if(day==32)
day=decone(day);
// if(day==0)
// {day=0;}
if(set_2==3)
week=incone(week);
if(week==8)
week=decone(week);
// if(week==0)
// {week=7;}
void set_clock() //设置闹钟函数
if(set_1==6)
if(set_2==1)
n_hour=incone(n_hour);
if(n_hour==24)
{n_hour=0;}
n_hour=decone(n_hour);
if(n_hour==0)
{n_hour=0;}
if(set_2==2)
n_minu=incone(n_minu);
if(n_minu==60)
{n_minu=0;}
n_minu=decone(n_minu);
if(n_minu==0)
{n_minu=0;}
uchar incone(uchar n) //加1函数
{ delay(200);
while(!s3);
return(n);
uchar decone(uchar m) //减1函数
delay(200);
while(!s4);
return(m);
void delay(uint k) //延时函数
for(i=k;i&0;i--)
for(j=80;j&0;j--);
按赞数排序
表示自己已经解决忘记添加到项目了。。。
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!
好厉害哦,我们刚学而已
其他相关推荐}

我要回帖

更多关于 python 延时函数 的文章

更多推荐

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

点击添加站长微信