單片機(jī)C語(yǔ)言實(shí)例-157-數(shù)碼管顯示
* 文件名 : 數(shù)碼管顯示.c
* 描述 : 該程序?yàn)閿?shù)碼管靜態(tài)顯示程序。
每按一次 獨(dú)立按鍵 中的 T0,數(shù)碼管的值便會(huì)加一。
* 創(chuàng)建人 : 東流,2009年8月27日
* 版本號(hào) : 1.0
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY = P3^4; //獨(dú)立按鍵的T0
/*下一行你可以試著把 code 去掉看看試驗(yàn)結(jié)果。 去掉后 table[] 會(huì)被存到 RAM 中,因?yàn)閱纹瑱C(jī)的 RAM 比 ROM 小的多*/
/*所以,對(duì)于不會(huì)改變的值應(yīng)該用 code 或者 #define 去定義,讓這些固定值存到 ROM 中去*/
uchar code table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/*下一行的數(shù)組可以顯示數(shù)值外,還可以顯示數(shù)碼管的點(diǎn)*/
uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};
/********************************************************************
* 名稱(chēng) : Delay()
* 功能 : 延時(shí),延時(shí)時(shí)間為 10ms * del
* 輸入 : del
* 輸出 : 無(wú)
***********************************************************************/
void Delay(uint del)
{
uint i,j;
for(i=0; i<del; i++)
for(j=0; j<1827; j++)
;
}
/********************************************************************
* 名稱(chēng) : Main()
* 功能 : 主函數(shù)
* 輸入 : 無(wú)
* 輸出 : 無(wú)
***********************************************************************/
void main()
{
uchar i = 0;
//P2=0xff;
P2=2;
while(1)
{
P0 = table[i % 16]; //在這里取 i 的個(gè)位數(shù),不帶點(diǎn)顯示
//P0 = table_d[i % 16]; //帶點(diǎn)顯示
if(KEY == 0)
{
Delay(1); //軟件消抖,試驗(yàn)為20ms
if(KEY == 0)
{
i++;
}
Delay(50); //延時(shí)0.5秒后進(jìn)行下一次的按鍵檢測(cè)
}
}
}
更多詳情參考附件文檔
+08:00C180聯(lián)盟網(wǎng)1705.png (54.4 KB, 下載次數(shù): 2)
下載附件
保存到相冊(cè)
2022-1-25 11:20 上傳
游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)
|