1樓:匿名使用者
先看懂一下程式再說,一下程式是除錯成功的時鐘程式
你在這個基礎上一定能改出來的
#include
#include
#define uchar unsigned char
#define uint unsigned int
/*12864 埠定義*/
sbit rs=p3^5; //資料指令選擇輸入
sbit en=p3^4; //液晶使能控制
sbit wr=p3^6; //液晶讀/寫控制
sbit psb=p3^7; //串/並方式控制
sbit beep=p2^3; //蜂鳴器控制埠
sbit s1=p3^0; //按鍵埠定義
sbit s2=p3^1;
sbit s3=p3^2;
sbit wela = p2^6;
sbit dula = p2^7;
uchar count,s1num; //定義全域性變數
char miao,shi,fen,zhou,yu,r; //定義全域性變數
int ni;
uchar code dis1 = ;
uchar code dis2 = ;
uchar code dis3 = ;
uchar code dis4 = ;
#define delaynop(); ;
void lcd_pos(uchar x,uchar y); //確定顯示位置
/* 延時函式 */
void delay(int ms)
}}/*檢查lcd忙狀態 */
/*lcd_busy為1時,忙,等待。lcd-busy為0時,閒,可寫指令與資料。 */
bit lcd_busy()
/*寫指令資料到lcd */
/*rs=0,wr=1,en=高脈衝,d0-d7=指令碼。 */
void write_com(uchar com)
/*寫顯示資料到lcd */
/*rs=1,wr=0,en=1,d0-d7=資料。 */
void write_date(uchar date)
/* lcd初始化設定 */
void init()
lcd_pos(1,0); //設定顯示位置為第二行的第1個字元
i = 0;
while(dis2[i] != '\0')
lcd_pos(2,0); //設定顯示位置為第三行的第1個字元
i = 0;
while(dis3[i] != '\0')
lcd_pos(3,0); //設定顯示位置為第四行的第1個字元
i = 0;
while(dis4[i] != '\0')
tmod=0x01; //t0採用16位計數器方式
th0=(65536-50000)/256; //t0計數器的高8位資料
tl0=(65536-50000)%256; //t0計數器的低8位資料
ea=1; //開總中斷
et0=1; //開t0中斷
tr0=1; //啟動t0計數器
}void write_sfm(uchar add,uchar date) //寫時,分,秒的函式
void write_chinese(uchar *chinese)
void write_zhou(uchar add,uchar i)
}void write_nian(uchar add,int nian)
void write_yue(uchar add,uchar yue)
void write_ri(uchar add,uchar ri)
/*按鍵掃描函式*/
void keyscan()
}if(s1num==2)
if(s1num==3)
if(s1num==4)
if(s1num==5)
if(s1num==6)
if(s1num==7)
if(s1num==8)
}if(s1num!=0)
if(s1num==2)
if(s1num==3)
if(s1num==4)
if(s1num==5)
if(s1num==6)
if(s1num==7)}}
if(s3==0)
if(s1num==2)
if(s1num==3)
if(s1num==4)
if(s1num==5)
if(s1num==6)
if(s1num==7)}}
}}/* 主程式 */
void main()
}void timer0() interrupt 1
write_zhou(4,zhou);
if(r==32)
write_yue(3,yu);
}write_ri(5,r);
}write_sfm(1,shi);
}write_sfm(3,fen);
}write_sfm(5,miao);} }
/* 設定顯示位置 */
void lcd_pos(uchar x,uchar y)
else if (x==1)
else if (x==2)
else if (x==3)
pos = x+y ;
write_com(pos); //顯示地址}
2樓:手機使用者
#include
#define n 5
int main()
break;
}case 2:
break;
}case 3:
for(i=1;i<=n;i++)
break;
}case 4: return 0;}}
}這是第一題的答案,經測試沒問題
希望對你有幫助
3樓:匿名使用者
先看懂datasheet 吧~,
請高手幫忙解決一道c語言的程式設計題!~~急啊!~~
4樓:
**及其不規範,首先給你修改規範,然後給你編上行號,給你說
1 int findstr(char *str,char *substr)
2 12 else break;
13 if(*r=='\0')
14 n++;
15 str++;
16 }
17 return n;
18}首先此題不用指標作,很麻煩,而且函式原形都要修改,要新增兩個字串長度引數,才可以不再使用指標。還是給你講解這個程式的流程吧。
6 while ( *str )
這個迴圈是從源串第一個位元組開始,一直碰到'\0'結束,因為'\0'的ascii碼為0,也就是null。下面**已知道line 16都是這個迴圈體。
8 p=str;
9 r=substr;
取得兩個字串當前指標,為作比較準備,
10 while(*r)
11 if(*r==*p)
12 else break;
這個迴圈的條件和line 6差不多。其中這個迴圈是這樣的,將連個字串的第一個位元組開始比較,如果相等則比較下一個,一直到r結束還是相等的,這個字串就在str中出現過,否則到line 12執行,跳出迴圈。
11 if(*r==*p) 如果這兩個位元組相等,則比較下一個字。
12 else break;不相等,跳出迴圈。
以下這兩句是判斷剛才迴圈結束的原因
13 if(*r=='\0') 如果r指標指向的位元組是'\0',那麼表示整個字串都匹配了,因此就讓計數器n自加1,然後從源串下一個位元組開始再次匹配。
14 n++;
15 str++;
知道str指向字串結束,程式結束了。
還有樓主連指標都看不懂,那就危險了。
求C語言高手編個小程式,急 急 急
include include define n 15 int main 隨機獲取1 20中的值 for i 0 i count為15個數值中相同數值的個數x n count printf x d n x return 0 相同數值?與哪個相同?還是15個數中只有一個數有相同的?你這個數是整數還是隨...
c語言的問題急急急急,急急急急急急急急急C語言的一個不懂的問題
for i 0 i 3 i for j 0 j 4 i 這裡zhi寫錯了。應該是j 修改後 define m 3 define n 4 main max a 0 0 for i 0 i 3 i daofor j 0 j 4 j if a i j max 程式寫的很好,貌似少了個開頭的 include...
C語言高手請幫忙,急!!!請C語言高手幫忙解決!!!非常感謝!!!
本來想刷分的,看了樓上的,算了。其實我已經編到第5題了 基本的c入門,一般的學習書籍上都有類試的例子,樓主要好好學習嘍 暈,譚浩強的書上都例子啊,你偷懶不做作業啊,不能幫你!嘿嘿 急!請c語言高手幫忙解決!非常感謝!15 這個是比較大的c語言程式 個人認為 你的這個c語言題不會出現在考試中 應該是客...