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