十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
每一遍,如果是1us,才能是延时约1s。但是,晶振是12MHz,一条汇编的指令就至少是1us,C语言的语句,就要更多。
创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目成都做网站、网站建设、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元博兴做网站,已为上家服务,为博兴各地企业和个人服务,联系电话:13518219792
void main(){ TMOD=0x00;TH1=0x3c;TL1=0xb0;EA=1;ET1=1;TR1=1;while(1){ if(i==20){ i=0;//下面写你要处理的的其他程序,你只要了定时1s。
记下当前时间T1,然后按F10(不进入子函数)调试,再记录当前时间T2,则延时=T2-T1。多试几个A,差不多调到1s就够了。我一般都这么调。你要想明白其中原理,想自己算的话,你就看看delay的汇编代码段自己算吧。
然后,进行宏定义,代码如图所示。然后声明P1口,如下图所示。最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。最后,点击编译,生成HEX文件就可以了,这样51单片机延时语句就完成了。
要看你的时钟周期,如果是12Mhz的话,每个时钟周期MC=6*2/12 M =1us,所以延迟是让机器计数1000000下,上面那个公式你自己套用24Mhz的就是2000000下。c语言的循环次数你自己算,每条指令一个周期,所以楼上的程序在12Mhz下是1s延迟。
本程序来自《单片机C语言程序设计实训100例——基于8051+Proteus仿真》没用中断。
1、C语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的 举个例子:for(i=0;ix;i++)for(j=0;j120;j++);这是延时x毫秒的for循环语句。值得注意的是记得最后的;一定得记得写。
2、delay函数是一般自己定义的一个延时函数。C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。
3、唯有Sleep函数,只有Sleep函数参数是用毫秒,比如1000毫秒等于1秒。
4、值等于当前的系统时间。//difftime(end,start)函数difftime();是double类型,用来计算运行的时间,用第一个参数的时间减去第二个参数的时间,得到的值就是运行用了多少时间。
5、delay函数是一个自己定义的延时函数,C语言定义延时函数主要通过无意义指令的执行来达到延时的目,并没有一个软件自带头文件专门有delay这个函数的。
6、延迟函数,一般建议调用系统函数。不建议循环。特别是多任务操作系统,循环会消耗系统资源。如果是Dos,indows,linux系统建立调用 Sleep()函数。其他系统,请自行查找。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。在test.cpp文件中,输入C语言代码:Sleep(1000);printf(sleep end.);。编译器运行test.cpp文件,此时成功执行Sleep()函数在1秒后打打印内容。
2、void 表示函数无返回值 delay (int x): delay函数名,int x表示函数带一个整型参数x。int y=0; 声明一个整型变量y。
3、记下当前时间T1,然后按F10(不进入子函数)调试,再记录当前时间T2,则延时=T2-T1。多试几个A,差不多调到1s就够了。我一般都这么调。你要想明白其中原理,想自己算的话,你就看看delay的汇编代码段自己算吧。
4、可以通过system (pause);实现暂停,应包括stdlib.h头文件。还可以通过使用getch()和getchar()函数实现,注意应该相应地包括conio.h和stdio.h文件,getch()为非标准函数,需要注意程序的移植性。