第一篇:c語言延時(shí)語句
C語言程序延時(shí)
Keil C51的編程語言常用的有2種:一種是匯編語言;另一種是C 語言。用匯編語言寫單片機(jī)程序時(shí),精確時(shí)間延時(shí)是相對(duì)容易解決的。比如,用的是晶振頻率為12 MHz的AT 89C51,打算延時(shí)20 μs,51單片機(jī)的指令周期是晶振頻率的1/12,即一個(gè)機(jī)器周期為1 μs;“MOV R0,#X”需要2個(gè)機(jī)器周期,DJNZ也需要2個(gè)機(jī)器周期,單循環(huán)延時(shí)時(shí)間t=2X+3(X為裝入寄存器R0的時(shí)間常數(shù))[2]。這樣,存入R0里的數(shù)初始化為8即可,其精度可以達(dá)到1 μs。用這種方法,可以非常方便地實(shí)現(xiàn)512 μs以下時(shí)間的延時(shí)。如果需要更長(zhǎng)時(shí)間,可以使用兩層或更多層的嵌套,當(dāng)然其精度誤差會(huì)隨著嵌套層的增加而成倍增加。
C程序中可使用不同類型的變量來進(jìn)行延時(shí)設(shè)計(jì)。經(jīng)實(shí)驗(yàn)測(cè)試,使用unsigned char類型具有比unsigned int更優(yōu)化的代碼,在使用時(shí)應(yīng)該使用unsigned char作為延時(shí)變量。
有人說如果while里面不能放其它語句,否則也不行,用do-while就可以,具體怎樣我沒有去試.所有這些都沒有給出具體的實(shí)例程序來.還看到一些延時(shí)的例子多多少少總有點(diǎn)延時(shí)差.為此我用for循環(huán)寫了幾個(gè)延時(shí)的子程序貼上來,希望能對(duì)初學(xué)者有所幫助.(晶振12MHz,一個(gè)機(jī)器周期1us.)一.500ms延時(shí)子程序 程序:
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--);
}
計(jì)算分析:
程序共有三層循環(huán)
一層循環(huán)n:R5*2 = 81*2 = 162us DJNZ 2us
二層循環(huán)m:R6*(n+3)= 202*165 = 33330us DJNZ 賦值 1us = 3us
2us + R5 三層循環(huán): R7*(m+3)= 15*33333 = 499995us DJNZ 2us + R6賦值 1us = 3us
循環(huán)外: 5us 子程序調(diào)用 2us + 子程序返回 2us + R7賦值 1us = 5us
延時(shí)總時(shí)間 = 三層循環(huán) + 循環(huán)外 = 499995+5 = 500000us =500ms
計(jì)算公式:延時(shí)時(shí)間=[(2*R5+3)*R6+3]*R7+5
二.200ms延時(shí)子程序 程序:
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延時(shí)子程序 程序:
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延時(shí)子程序 程序:
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函數(shù):
putchar函數(shù)(字符輸出函數(shù))的作用是向終端輸出一個(gè)字符。
一般形式為:putchar(c)輸出字符變量c的值。
#include
void main()
{
char a,b,c;
a=?A?;b=?B?;c=?C?;
putchar(a);putchar(b);putchar(c);putchar(?n?);
}
運(yùn)行結(jié)果:ABC2、Getchar函數(shù)
getchar函數(shù)(字符輸入函數(shù))的作用是從終端(系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。getchar函數(shù)沒有參數(shù),一般形式為:getchar()
#include
void main()
{
char c;
c= getchar();
putchar(c);
putchar(?n?);//換行;
}
運(yùn)行結(jié)果:輸出從鍵盤輸入的字符
另外:putchar(getchar());或者 printf(?%c?, getchar());
3、printf函數(shù)
printf函數(shù)(格式輸入函數(shù)),它的作用是向終端(或隱含指定的輸出設(shè)備)輸出若干個(gè)任意類型的數(shù)據(jù)。
printf的一般格式為printf(格式控制,輸出列表)
例如:printf(”%d,%cn”,i,c)
4、scanf函數(shù)
scanf(格式輸入函數(shù))的作用是從終端(系統(tǒng)隱含指定的輸入設(shè)備)輸入若干個(gè)任意類型的數(shù)據(jù)。
一般形式為:scanf(格式控制,地址列表)
1、if語句:
*********************
if(表達(dá)式)
語句;
*********************
if(表達(dá)式)
語句1;
else
語句2;
*********************
if(表達(dá)式1)語句1;
else if(表達(dá)式2)語句2;
else if(表達(dá)式3)語句3;
else if(表達(dá)式m)語句m;
else 語句n
*********************
If語句的嵌套
if(表達(dá)式)
if(表達(dá)式)語句1
else語句2
else
if(表達(dá)式)語句3
else語句
42、switch語句
switch(表達(dá)式)
{
case 常量表達(dá)式1:
語句1
case常量表達(dá)式2:
語句2
case常量表達(dá)式n:
語句n
default :
語句n+1
}
3、goto語句
goto語句為無條件轉(zhuǎn)向語句,一般格式為:goto語句標(biāo)號(hào);
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語句用來實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。一般形式如下:
while(表達(dá)式)語句當(dāng)表達(dá)式非0值時(shí),執(zhí)行while語句中的內(nèi)嵌套語句,先判斷后執(zhí)行。求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 語句 先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。
一般形式為:
do
循環(huán)體語句
while(表達(dá)式)
求1至100的累加和;
#include
void main()
{
int i,sum=0;
i=1;
do
{
sum=sum+i;
i++;
}
while(i<=100)
printf(“%n“)
}
6、for語句
for語句不僅可以用于循環(huán)次數(shù)已經(jīng)確定的循環(huán),而且可以用于循環(huán)次數(shù)不確定的循環(huán)而只給出循環(huán)結(jié)束條件。
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句
它的執(zhí)行過程如下:
(1)、先求解表達(dá)式1。
(2)、求解表達(dá)式2,若其值為真(值非0),則執(zhí)行for循環(huán)中指定的內(nèi)嵌語句,然后執(zhí)行下面的(3)。若表達(dá)式2為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第(5)步。
(3)、求解表達(dá)式3。
(4)、轉(zhuǎn)回上面第(2)步繼續(xù)執(zhí)行。
(5)、循環(huán)結(jié)束,執(zhí)行for語句下面的一個(gè)語句。
For循環(huán)的一種應(yīng)用:
for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語句
求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結(jié)構(gòu),繼續(xù)執(zhí)行switch下面的語句。break語句也可以用來從循環(huán)體內(nèi)跳出循環(huán)體,提前結(jié)束循環(huán),接著執(zhí)行循環(huán)體下面的語句。
break語句的一般形式為:break;
說明:break語句不能用于循環(huán)語句和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語句
第三篇:延時(shí)報(bào)告
延 時(shí) 報(bào) 告
XXXXXXXX:
因我司法定代表人XXXXXX先生因公出差,未能及時(shí)審批XXXX工傷認(rèn)定的申請(qǐng),造成了延時(shí)申請(qǐng)的情況。現(xiàn)懇請(qǐng)貴單位給予協(xié)助和受理我司的工傷認(rèn)定申請(qǐng),謝謝!
XXXXXXXXXXXXXXXXX 2017年10月16日
第四篇:淺談物理延時(shí)
淺談物理延時(shí)
現(xiàn)在我國(guó)有許多男性正在受著早泄的困擾,他們迫切地想要擺脫早泄,享受正常的性生活,維持家庭的和諧和穩(wěn)定。那么早泄治療應(yīng)該怎么進(jìn)行呢?我們要找到正確的治療方法,否則就很難取得好的治療效果。下面介紹一下物理延時(shí)療法。
在早泄的治療中,物理延時(shí)療法其實(shí)在國(guó)外有廣泛的應(yīng)用。它是屬于早泄行為療法的升級(jí)版,行為療法屬于心理學(xué)的范疇,首先由國(guó)外的男科專家將其應(yīng)用于早泄的治療,其原理就是改變?nèi)梭w固有的思維與行為方式,形成所希望的行為習(xí)慣。國(guó)外治療早泄采用行為療法主要是通過夫妻雙方共同努力,共同改變行為方式,在這個(gè)過程中,臨床醫(yī)生在旁邊指導(dǎo)行為的操作。
通俗而言,物理延時(shí)就是指通過某種物理作用,讓男性陰莖勃起的強(qiáng)度和時(shí)間得到更長(zhǎng)時(shí)間的維持,從而達(dá)到延長(zhǎng)時(shí)間的效果。
物理延時(shí)是一種健康的治療方式,安全無害,沒有任何副作用,是渴望延時(shí)的人群的福音。
第五篇:SQL語言基本語句介紹
SQL語言基本語句介紹
表的建立
關(guān)系數(shù)據(jù)庫(kù)的主要特點(diǎn)之一就是用表的方式組織數(shù)據(jù)。表是SQL語言存放數(shù)據(jù)、查找數(shù)據(jù)以及更新數(shù)據(jù)的基本數(shù)據(jù)結(jié)構(gòu)。在SQL語言中,表有嚴(yán)格的定義,它是一種二維表,對(duì)于這種表有如下規(guī)定:
1)每一張表都有一個(gè)名字,通常稱為表名或關(guān)系名。表名必須以字母開頭,最大長(zhǎng)度為30個(gè)字符。
2)一張表可以由若干列組成,列名唯一,列名也稱作屬性名。
3)表中的一行稱為一個(gè)元組,它相當(dāng)于一條記錄。
4)同一列的數(shù)據(jù)必須具有相同的數(shù)據(jù)類型。
5)表中的每一個(gè)列值必須是不可分割的基本數(shù)據(jù)項(xiàng)。
注意:當(dāng)用戶需要新的數(shù)據(jù)結(jié)構(gòu)或表存放數(shù)據(jù)時(shí),首先要生成一個(gè)表。
語法:
CREATE TABLE 表名 [表約束]
(列名1 數(shù)據(jù)類型 [缺省值1,列約束1]
(列名2 數(shù)據(jù)類型 [缺省值2,列約束2]
…
列名n 數(shù)據(jù)類型 [缺省值n,列約束n]
[TABLESPACE 表空間名稱]
[STORAGE(存貯的子句)]
[ENABLE 約束名]
[DISABLE 約束名]
插入數(shù)據(jù)
當(dāng)一個(gè)表新建成時(shí),它里面沒有數(shù)據(jù),通過向表中扦入數(shù)據(jù),建成表的實(shí)例。
語句句法:
INSERT INTO 表名[(列名1,…)]
VALUES(值1,值2,…,值n)
[子查詢];
假設(shè)有一張表Student如下所示:
NO NAME AGE
1001 A 12
1002 B 14
將新學(xué)生E增加到上表中,并按照表的結(jié)構(gòu)將信息添加完整,需要如下語句:
INSERT INTO STUDENT VALUSE(1003, 'E',12);
修改數(shù)據(jù)
對(duì)表中已有數(shù)據(jù)進(jìn)行修改,語句句法:
UPDATE 表名SET 列名1=表達(dá)式1,列名2=表達(dá)式2,…
WHERE 條件;
例如:對(duì)下表Student
NO NAME AGE
1001 A 12
1002 B 14
將B的年紀(jì)改為18;應(yīng)該執(zhí)行以下語句:
UPDATE STUDENT SET AGE=18 WHERE NAME='B';
刪除數(shù)據(jù)
刪除表中已有數(shù)據(jù),不能刪除不存在的數(shù)據(jù)。
語句句法:
DELETE FROM 表名 WHERE 條件;
例如:
對(duì)下面Student表進(jìn)行刪除,要?jiǎng)h除其中年紀(jì)為12的學(xué)生;
NO NAME AGE
1001 A 12
1002 B 14
DELETE FROM STUDENT WHERE AGE=12;
表結(jié)構(gòu)的修改
在已存在的表中增加新列,語句句法:
ALTER TABLE 表名 ADD(新列名 數(shù)據(jù)類型(長(zhǎng)度));
例如:
ALTER TABLE STUDENT ADD(DEPARTMENT CHAR(8));
b.增加已有列的數(shù)據(jù)類型。
例如:
ALTER TABLE STUDENT MODIFY(NAME VARCHAR2(25));
表的刪除
將已經(jīng)存在的表刪除,語句句法:
DROP TABLE表名;
例如:
DROP TABLE EMP;
查詢語句
SELECT命令的語法為:
SELECT [DISTINCT|ALL] {*|模式名.] {表名|視圖名|
快照名].*…| {表達(dá)式[列別名]…} } [, [模式名.] {表名|
視圖名|}.*…| 表達(dá)式[列別名] ]…
FROM [模式名.] {表名|視圖名|快照名} [@數(shù)據(jù)庫(kù)鏈名] [表別名]
[, [模式名.] {表名|視圖名|快照名} [@數(shù)據(jù)庫(kù)鏈名]
[表別名] ]…
[WHERE條件]
[START WITH條件 CONNECT BY 條件]
[GROUP BY表達(dá)式[,表達(dá)式] …[HAVING條件]
[UNION|UNION ALL |INTERSECT|MINUS]SELECT命令
[ORDER BY{表達(dá)式|位置} [ASC|DESC] [, {表達(dá)式|位置[ASC|DESC]}]…]
例如:對(duì)于STUDENT表:
NO NAME AGE
1001 AE 12
1002 BT 14
(1)查詢年紀(jì)為12的學(xué)生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE=12;
(2)查詢年紀(jì)在12至16歲之間的學(xué)生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE BETWEEN 12 AND 16;
(3)查詢年紀(jì)不在12至16歲之間的學(xué)生姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE AGE NOT BETWEEN 12 AND 16;
(4)查詢所有姓名以A開頭的學(xué)生的姓名;
SELECT STUDENT.NAME FROM STUDENT WHERE NAME LIKE 'A%';
(5)列出所有學(xué)生年紀(jì)的和,年紀(jì)的平均值,最大值,最小值,最大值與最小值之間的差值;
SELECT AVG(AGE), SUM(AGE), MAX(AGE), MIN(AGE), MAX(AGE)-MIN(AGE);
(6)將所有學(xué)生按學(xué)號(hào)順序升序排列;
SELECT * FROM STUDENT ORDER BY NO DESC;
(7)將所有學(xué)生按學(xué)號(hào)順序升序排列;
SELECT * FROM STUDENT ORDER BY NO ASC;