第一篇:c语言延时语句
C语言程序延时
Keil C51的编程语言常用的有2种:一种是汇编语言;另一种是C 语言。用汇编语言写单片机程序时,精确时间延时是相对容易解决的。比如,用的是晶振频率为12 MHz的AT 89C51,打算延时20 μs,51单片机的指令周期是晶振频率的1/12,即一个机器周期为1 μs;“MOV R0,#X”需要2个机器周期,DJNZ也需要2个机器周期,单循环延时时间t=2X+3(X为装入寄存器R0的时间常数)[2]。这样,存入R0里的数初始化为8即可,其精度可以达到1 μs。用这种方法,可以非常方便地实现512 μs以下时间的延时。如果需要更长时间,可以使用两层或更多层的嵌套,当然其精度误差会随着嵌套层的增加而成倍增加。
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。
有人说如果while里面不能放其它语句,否则也不行,用do-while就可以,具体怎样我没有去试.所有这些都没有给出具体的实例程序来.还看到一些延时的例子多多少少总有点延时差.为此我用for循环写了几个延时的子程序贴上来,希望能对初学者有所帮助.(晶振12MHz,一个机器周期1us.)一.500ms延时子程序 程序:
void delay500ms(void)
{
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
计算分析:
程序共有三层循环
一层循环n:R5*2 = 81*2 = 162us DJNZ 2us
二层循环m:R6*(n+3)= 202*165 = 33330us DJNZ 赋值 1us = 3us
2us + R5 三层循环: R7*(m+3)= 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us
循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us
延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms
计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5
二.200ms延时子程序 程序:
void delay200ms(void){
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=132;j>0;j--)
for(k=150;k>0;k--);} 三.10ms延时子程序 程序:
void delay10ms(void){
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);}
四.1s延时子程序 程序:
void delay1s(void){
unsigned char h,i,j,k;
for(h=5;h>0;h--)for(i=4;i>0;i--)
for(j=116;j>0;j--)
for(k=214;k>0;k--);}
第二篇:C语言常用语句
1、putchar函数:
putchar函数(字符输出函数)的作用是向终端输出一个字符。
一般形式为:putchar(c)输出字符变量c的值。
#include
void main()
{
char a,b,c;
a=‟A‟;b=‟B‟;c=‟C‟;
putchar(a);putchar(b);putchar(c);putchar(„n‟);
}
运行结果:ABC2、Getchar函数
getchar函数(字符输入函数)的作用是从终端(系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,一般形式为:getchar()
#include
void main()
{
char c;
c= getchar();
putchar(c);
putchar(„n‟);//换行;
}
运行结果:输出从键盘输入的字符
另外:putchar(getchar());或者 printf(„%c‟, getchar());
3、printf函数
printf函数(格式输入函数),它的作用是向终端(或隐含指定的输出设备)输出若干个任意类型的数据。
printf的一般格式为printf(格式控制,输出列表)
例如:printf(”%d,%cn”,i,c)
4、scanf函数
scanf(格式输入函数)的作用是从终端(系统隐含指定的输入设备)输入若干个任意类型的数据。
一般形式为:scanf(格式控制,地址列表)
1、if语句:
*********************
if(表达式)
语句;
*********************
if(表达式)
语句1;
else
语句2;
*********************
if(表达式1)语句1;
else if(表达式2)语句2;
else if(表达式3)语句3;
else if(表达式m)语句m;
else 语句n
*********************
If语句的嵌套
if(表达式)
if(表达式)语句1
else语句2
else
if(表达式)语句3
else语句
42、switch语句
switch(表达式)
{
case 常量表达式1:
语句1
case常量表达式2:
语句2
case常量表达式n:
语句n
default :
语句n+1
}
3、goto语句
goto语句为无条件转向语句,一般格式为:goto语句标号;
goto label_1;
求1至100的累加和;
#include
void main()
{
int i,sum=0;
i=1;
loop:for(i<=100)
{
sum=sum+I;
i++;
goto loop;
}
printf(“%dn”,sum);
}
4、while语句
while语句用来实现“当型”循环结构。一般形式如下:
while(表达式)语句当表达式非0值时,执行while语句中的内嵌套语句,先判断后执行。求1至100的累加和;
#include
void main()
{
int i,sum=0;
i=100;
while(i)
{
sum=sum+i;
i--;
}
printf(“%dn”,sum)
}
#include
void main()
{
int i,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i++;
}
printf(“%dn”,sum)
}
5、do… while 语句
do… while 语句 先执行循环体,然后判断循环条件是否成立。
一般形式为:
do
循环体语句
while(表达式)
求1至100的累加和;
#include
void main()
{
int i,sum=0;
i=1;
do
{
sum=sum+i;
i++;
}
while(i<=100)
printf(“%n“)
}
6、for语句
for语句不仅可以用于循环次数已经确定的循环,而且可以用于循环次数不确定的循环而只给出循环结束条件。
for(表达式1;表达式2;表达式3)语句
它的执行过程如下:
(1)、先求解表达式1。
(2)、求解表达式2,若其值为真(值非0),则执行for循环中指定的内嵌语句,然后执行下面的(3)。若表达式2为假(值为0),则结束循环,转到第(5)步。
(3)、求解表达式3。
(4)、转回上面第(2)步继续执行。
(5)、循环结束,执行for语句下面的一个语句。
For循环的一种应用:
for(循环变量赋初值;循环条件;循环变量增值)语句
求1至100的累加和;
#include
void main()
{
int i,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
printf(“%n”,sum)
}
}
7、break语句
break语句可以是流程跳出switch结构,继续执行switch下面的语句。break语句也可以用来从循环体内跳出循环体,提前结束循环,接着执行循环体下面的语句。
break语句的一般形式为:break;
说明:break语句不能用于循环语句和switch语句之外的任何其他语句。
#include
void main()
{
int i,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
if(sum>300)break;
printf(“%n”,sum)}
}
8、continue语句
第三篇:延时报告
延 时 报 告
XXXXXXXX:
因我司法定代表人XXXXXX先生因公出差,未能及时审批XXXX工伤认定的申请,造成了延时申请的情况。现恳请贵单位给予协助和受理我司的工伤认定申请,谢谢!
XXXXXXXXXXXXXXXXX 2017年10月16日
第四篇:浅谈物理延时
浅谈物理延时
现在我国有许多男性正在受着早泄的困扰,他们迫切地想要摆脱早泄,享受正常的性生活,维持家庭的和谐和稳定。那么早泄治疗应该怎么进行呢?我们要找到正确的治疗方法,否则就很难取得好的治疗效果。下面介绍一下物理延时疗法。
在早泄的治疗中,物理延时疗法其实在国外有广泛的应用。它是属于早泄行为疗法的升级版,行为疗法属于心理学的范畴,首先由国外的男科专家将其应用于早泄的治疗,其原理就是改变人体固有的思维与行为方式,形成所希望的行为习惯。国外治疗早泄采用行为疗法主要是通过夫妻双方共同努力,共同改变行为方式,在这个过程中,临床医生在旁边指导行为的操作。
通俗而言,物理延时就是指通过某种物理作用,让男性阴茎勃起的强度和时间得到更长时间的维持,从而达到延长时间的效果。
物理延时是一种健康的治疗方式,安全无害,没有任何副作用,是渴望延时的人群的福音。
第五篇:SQL语言基本语句介绍
SQL语言基本语句介绍
表的建立
关系数据库的主要特点之一就是用表的方式组织数据。表是SQL语言存放数据、查找数据以及更新数据的基本数据结构。在SQL语言中,表有严格的定义,它是一种二维表,对于这种表有如下规定:
1)每一张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长度为30个字符。
2)一张表可以由若干列组成,列名唯一,列名也称作属性名。
3)表中的一行称为一个元组,它相当于一条记录。
4)同一列的数据必须具有相同的数据类型。
5)表中的每一个列值必须是不可分割的基本数据项。
注意:当用户需要新的数据结构或表存放数据时,首先要生成一个表。
语法:
CREATE TABLE 表名 [表约束]
(列名1 数据类型 [缺省值1,列约束1]
(列名2 数据类型 [缺省值2,列约束2]
…
列名n 数据类型 [缺省值n,列约束n]
[TABLESPACE 表空间名称]
[STORAGE(存贮的子句)]
[ENABLE 约束名]
[DISABLE 约束名]
插入数据
当一个表新建成时,它里面没有数据,通过向表中扦入数据,建成表的实例。
语句句法:
INSERT INTO 表名[(列名1,…)]
VALUES(值1,值2,…,值n)
[子查询];
假设有一张表Student如下所示:
NO NAME AGE
1001 A 12
1002 B 14
将新学生E增加到上表中,并按照表的结构将信息添加完整,需要如下语句:
INSERT INTO STUDENT VALUSE(1003, 'E',12);
修改数据
对表中已有数据进行修改,语句句法:
UPDATE 表名SET 列名1=表达式1,列名2=表达式2,…
WHERE 条件;
例如:对下表Student
NO NAME AGE
1001 A 12
1002 B 14
将B的年纪改为18;应该执行以下语句:
UPDATE STUDENT SET AGE=18 WHERE NAME='B';
删除数据
删除表中已有数据,不能删除不存在的数据。
语句句法:
DELETE FROM 表名 WHERE 条件;
例如:
对下面Student表进行删除,要删除其中年纪为12的学生;
NO NAME AGE
1001 A 12
1002 B 14
DELETE FROM STUDENT WHERE AGE=12;
表结构的修改
在已存在的表中增加新列,语句句法:
ALTER TABLE 表名 ADD(新列名 数据类型(长度));
例如:
ALTER TABLE STUDENT ADD(DEPARTMENT CHAR(8));
b.增加已有列的数据类型。
例如:
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
表的删除
将已经存在的表删除,语句句法:
DROP TABLE表名;
例如:
DROP TABLE EMP;
查询语句
SELECT命令的语法为:
SELECT [DISTINCT|ALL] {*|模式名.] {表名|视图名|
快照名].*…| {表达式[列别名]…} } [, [模式名.] {表名|
视图名|}.*…| 表达式[列别名] ]…
FROM [模式名.] {表名|视图名|快照名} [@数据库链名] [表别名]
[, [模式名.] {表名|视图名|快照名} [@数据库链名]
[表别名] ]…
[WHERE条件]
[START WITH条件 CONNECT BY 条件]
[GROUP BY表达式[,表达式] …[HAVING条件]
[UNION|UNION ALL |INTERSECT|MINUS]SELECT命令
[ORDER BY{表达式|位置} [ASC|DESC] [, {表达式|位置[ASC|DESC]}]…]
例如:对于STUDENT表:
NO NAME AGE
1001 AE 12
1002 BT 14
(1)查询年纪为12的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12;
(2)查询年纪在12至16岁之间的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16;
(3)查询年纪不在12至16岁之间的学生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16;
(4)查询所有姓名以A开头的学生的姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%';
(5)列出所有学生年纪的和,年纪的平均值,最大值,最小值,最大值与最小值之间的差值;
SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE);
(6)将所有学生按学号顺序升序排列;
SELECT * FROM STUDENT ORDER BY NO DESC;
(7)将所有学生按学号顺序升序排列;
SELECT * FROM STUDENT ORDER BY NO ASC;