當前位置:編程學習大全網 - 編程語言 - 用數碼管顯示路燈亮的時間,用C語言寫單片機程序

用數碼管顯示路燈亮的時間,用C語言寫單片機程序

數碼管顯示路燈亮的時間是壹個常見的應用場景,可以通過單片機來實現。下面是壹個簡單的C語言程序示例,用於控制數碼管顯示路燈亮的時間。

```c

#include

sbit D1 = P2^0; // 定義數碼管引腳

sbit D2 = P2^1;

sbit D3 = P2^2;

sbit D4 = P2^3;

void delay(unsigned int t) // 延時函數

{

unsigned int i, j;

for(i = t; i > 0; i--)

for(j = 110; j > 0; j--);

}

void display(unsigned int time) // 數碼管顯示函數

{

unsigned int i;

unsigned int digit[4]; // 數碼管的四位數值

digit[0] = time / 1000; // 千位

digit[1] = (time % 1000) / 100; // 百位

digit[2] = (time % 100) / 10; // 十位

digit[3] = time % 10; // 個位

for(i = 0; i < 4; i++)

{

switch(i)

{

case 0: D1 = 1; D2 = 0; D3 = 0; D4 = 0; break; // 顯示千位

case 1: D1 = 0; D2 = 1; D3 = 0; D4 = 0; break; // 顯示百位

case 2: D1 = 0; D2 = 0; D3 = 1; D4 = 0; break; // 顯示十位

case 3: D1 = 0; D2 = 0; D3 = 0; D4 = 1; break; // 顯示個位

}

P0 = digit[i]; // 設置數碼管顯示的數值

delay(1); // 延時1ms

P0 = 0x00; // 關閉數碼管

}

}

void main()

{

unsigned int time = 0; // 路燈亮的時間,單位為秒

while(1)

{

display(time); // 顯示路燈亮的時間

delay(1000); // 延時1秒

time++; // 時間加1秒

}

}

```

上述程序使用了8051系列單片機,通過控制P0口的輸出來控制數碼管的顯示。程序中的`delay`函數用於延時,`display`函數用於顯示數碼管的數值。`main`函數中的循環不斷更新時間並顯示在數碼管上。

該程序的原理是每隔1秒更新壹次時間,並將時間的四位數值分別顯示在數碼管的四位上。其中,千位顯示在D1引腳,百位顯示在D2引腳,十位顯示在D3引腳,個位顯示在D4引腳。通過控制這四個引腳的高低電平,以及P0口的輸出,實現數碼管的顯示。

需要註意的是,上述程序只是壹個簡單的示例,實際應用中可能需要根據具體的數碼管型號和單片機型號進行適當的修改。同時,還需要根據實際需求添加其他功能,比如通過按鍵控制時間的增減、設置亮燈時間等。

  • 上一篇:請問圖像處理這個方向有前途嗎?還有我是通信專業的,學這個有優勢嗎?貌似這是計算機學的科目。。
  • 下一篇:除了格力,國產空調哪家好!用料厚道!能用很多年嗎?
  • copyright 2024編程學習大全網