基于51單片機(jī)的C語言程序設(shè)計(jì)_第1頁
基于51單片機(jī)的C語言程序設(shè)計(jì)_第2頁
基于51單片機(jī)的C語言程序設(shè)計(jì)_第3頁
基于51單片機(jī)的C語言程序設(shè)計(jì)_第4頁
基于51單片機(jī)的C語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于51單片機(jī)的c語言程序設(shè)計(jì)實(shí)踐訓(xùn)練100例第01篇基礎(chǔ)編程01閃爍的LED/*名稱:閃爍的LED說明: LED以設(shè)定的時間間隔閃爍*/#include#define uchar unsigned char#define uint unsigned intsbit LED=P10;/延遲void DelayMS(uint x )舉止uchar i;while(x- )舉止for(i=0; i120; PS )以下以下/主程序void main ()舉止while(1)舉止LED=LED;DelayMS(150 )以下以下02從左向右的流水燈/*名稱:從左向右的流水燈說明:連接P0端口的8個L

2、ED從左向右依次點(diǎn)亮,具有走馬燈效果*/#include#include#define uchar unsigned char#define uint unsigned int/延遲void DelayMS(uint x )舉止uchar i;while(x- )舉止for(i=0; i120; PS )以下以下/主程序void main ()舉止P0=0xfe;while(1)舉止p0=_ crol _ (p 0,1,1 )/p 0的值向左循環(huán)移動DelayMS(150 )以下以下03 8個LED左右點(diǎn)亮/*名稱: 8個LED左右點(diǎn)亮說明:程序使用循環(huán)移位函數(shù)_crol_和_cror_形成往

3、復(fù)滾動的效果*/#include#include#define uchar unsigned char#define uint unsigned int/延遲void DelayMS(uint x )舉止uchar i;while(x- )舉止for(i=0; i120; PS )以下以下/主程序void main ()舉止uchar i;P2=0x01;while(1)舉止for(i=0; i7; PS )舉止p2=_ crol _ (p 2,1,1 )/p 2的值向左循環(huán)移動DelayMS(150 )以下for(i=0; i7; PS )舉止p2=_ cror _ (p 2,1,1 )/p

4、 2的值向右循環(huán)移動DelayMS(150 )以下以下以下04花樣流水燈名稱:花花紋流水燈說明:將16個LED分成兩組,以預(yù)先設(shè)定的多種樣式顯示*/#include#define uchar unsigned char#define uint unsigned intuchar代碼路徑_ P0 =舉止0xffc,0xff 9,0xff 3,0xff 7,0xff,0x9f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0 x ff,0 x ff,0 x ff,0 x ff0xe 7,0xdb,0xdb,0x7e,0x db,0dbb,0xe 7,0x

5、e 7,0x C3,0x 81,0x 00,0x 81,0x C3,0xe 7,0x ff0xaa,0x 55,0x 18,0x ff,0xf 0,0x0f,0x 00,0x ff,0x F8,0x f1,0x E3,0xc 7,0x8f,0x1f,0x3f,0x7f0x7f,0x3f,0x1f,0x8f,0xc 7,0x E3,0x f1,0x F8,0xff,0x 00,0x ff,0x ff,0x0f,0xf 0,0x ff0xff,0xff,0 xf 7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0 x ff

6、0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,7,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0 x ff0xfe,0xfc,0 x ff 8,0 xf 0,0 x e 0,0 xc 0,0 x 80,0 x 00,0 x 00,0 x 00,0 x 00,0 x 00,0 x 00,0 x 000 x 00,0 x 00,0 x 00,0 x 00,0 x 00,0 x 00,0 x 00,0 x 80,0 xc 0,0 x E0,0 xf 0,0 x F8,0 x fc,0xfe0 x 00,0 x

7、ff,0 x 00,0 x ff,0 x 00,0 x ff,0 x 00,0 x ffuchar代碼圖形_ p2 =舉止0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff 9,0 x ff 3,0 xe 7,0 x ff,0x9f,0x3f,0 x ff0xe 7,0xdb,0xdb,0x7e,0x db,0dbb,0xe 7,0xe 7,0x C3,0x 81,0x 00,0x 81,0x C3,0xe 7,0x ff0xaa,0x 55,0x 18,0x ff,0xf 0,0x0f,0x 00,0x ff,0x F8,0x f1,0x E3,0xc

8、7,0x8f,0x1f,0x3f,0x7f0x7f,0x3f,0x1f,0x8f,0xc 7,0x E3,0x f1,0x F8,0xff,0x 00,0x ff,0x ff,0x0f,0xf 0,0x ff0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff0x7f,0xff,0xff,0xff,0 xf 7,0 f BF,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff0xff,0xff,0xff,0xff,0xff,0xff

9、,0xfe,0xff,0 x f e 0,0 x c 0,0 x 80,0 x 000 x 00,0 x 80,0 xc 0,0 x EO 0,0 xf 0,0xff 8,0 x fc,0xfe,0xff,0xff,0xff,0xff,0xff,0 x ff0 x 00,0 x ff,0 x 00,0 x ff,0 x 00,0 x ff,0 x 00,0 x ff/延遲void DelayMS(uint x )舉止uchar i;while(x- )舉止for(i=0; i120; PS )以下以下/主程序void main ()舉止uchar i;while(1)從數(shù)組讀取數(shù)據(jù),發(fā)送到P0

10、和P2端口顯示for(i=0; i36; PS )舉止P0=Pattern_P0i;P2=Pattern_P2i;DelayMS(100 )以下以下以下05 LED模擬信號/*名稱: LED模擬信號說明:反復(fù)出現(xiàn)以下情況:東西向綠燈閃爍數(shù)秒,紅燈閃爍5次時紅燈點(diǎn)亮,紅燈點(diǎn)亮?xí)r南北從紅燈變?yōu)榫G燈,數(shù)秒后南北閃爍5次時紅燈變化,東西變?yōu)榫G燈。*/#include#define uchar unsigned char#define uint unsigned intsbit RED_A=P00; /東西向燈sbit YELLOW_A=P01;sbit GREEN_A=P02;sbit RED_B=P

11、03; /南北方向燈sbit YELLOW_B=P04;sbit GREEN_B=P05;uchar Flash_Count=0,操作_ type=1; /閃爍次數(shù)、操作類型變量/延遲void DelayMS(uint x )舉止uchar i;while(x-) for(i=0; i120; PS )以下/信號切換voidfift_light ()舉止交換機(jī)(操作_ type )舉止case 1:/東西綠燈和南北紅燈亮RED_A=1; YELLOW_A=1; 綠色_ a=0;RED_B=0; YELLOW_B=1; 綠色_ b=1;DelayMS(2000 )操作_ type=2;break

12、;case 2:/物體閃爍在黃燈上,綠色熄滅DelayMS(300 )YELLOW_A=YELLOW_A; 綠色_ a=1;PS (PS _ count!=10) return /5次閃爍Flash_Count=0;操作_ type=3;break;case 3:/東西紅、南北綠RED_A=0; YELLOW_A=1; 綠色_ a=1;RED_B=1; YELLOW_B=1; 綠色_ b=0;DelayMS(2000 )操作_ type=4;break;case 4:/南北方向黃燈閃爍5次DelayMS(300 )YELLOW_B=YELLOW_B; 綠色_ b=1;PS (PS _ coun

13、t!=10 )返回Flash_Count=0;操作_ type=1;以下以下/主程序void main ()舉止while(1) Traffic_Light ();以下06單數(shù)字軟線管循環(huán)表示09/*名稱:僅數(shù)字軟線管循環(huán)顯示09說明:主程序的循環(huán)語句將09的段代碼反復(fù)送到P0端口,使數(shù)字09循環(huán)顯示*/#include#include#define uchar unsigned char#define uint unsigned intucharcodedsy _代碼 =0xc 0,0x f F9,0x a4,0xb 0,0x 99,0x 92,0x 82,0x F8,0x 80,0x 90

14、,0x ff ;/延遲void DelayMS(uint x )舉止uchar t;while(x-) for(t=0; t120; t;以下/主程序void main ()舉止uchar i=0;P0=0x00;while(1) /* for (; i11; I ) P0=dsy _代碼 I ; DelayMS(300) /注:別案*/P0=dsy _代碼 I ;i=(i 1) )DelayMS(300 )以下以下07 8數(shù)碼電碼管滾動顯示一個數(shù)字/*名稱: 8根數(shù)字管滾動顯示一個數(shù)字說明:數(shù)碼軟線管從左向右依次滾動顯示07,程序一次只循環(huán)選擇一根數(shù)碼軟線管*/#include#includ

15、e#define uchar unsigned char#define uint unsigned intucharcodedsy _代碼 =0xc 0,0x F9,0x a4,0xb 0,0x 99,0x 92,0x 82,0x F8,0x 80,0x 90 ;/延遲void DelayMS(uint x )舉止uchar t;while(x-) for(t=0; t120; t;以下/主程序void main ()舉止uchar i、wei=0x80;while(1)舉止for(i=0; i8; PS )舉止P2=0xff; /關(guān)閉顯示wei=_crol_(wei,1 )P0=dsy _代

16、碼 I ; /發(fā)送數(shù)字段P2=wei; /發(fā)送位代碼DelayMS(300 )以下以下以下08 8數(shù)字碼管動態(tài)地顯示多個不同的字符電路如上圖所示/*名稱:八個數(shù)字碼管能動態(tài)顯示多個不同的字符說明:數(shù)碼電線管的動態(tài)掃描顯示07。*/#include#include#define uchar unsigned char#define uint unsigned intucharcodedsy _代碼 =0xc 0,0x F9,0x a4,0xb 0,0x 99,0x 92,0x 82,0x F8,0x 80,0x 90 ;/延遲void DelayMS(uint x )舉止uchar t;while(x-) for(t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論