找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 8457|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

驅(qū)動(dòng)單片機(jī)數(shù)碼管程序改如何寫

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:2356 發(fā)表于 2008-8-30 09:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我想驅(qū)動(dòng)單片機(jī)數(shù)碼管,我的 程序不曉得如何才能寫對(duì)/-------------------------------
// MCS51-Study.C
//------------------------------
// [文件包含] 程序中用到哪些C51標(biāo)準(zhǔn)函數(shù),就需要把該函數(shù)對(duì)應(yīng)的頭文件包含進(jìn)來(lái)
//-----#include
#include
#include
//-----------------------------------
// 為提高書(shū)寫效率做以下宏定義
//-------------------------------
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

#define CLOSE 1//為了邏輯清晰
#define OPEN 0



sbit SECOND_L =P2^0;//數(shù)碼管公共端控制位管腳
sbit SECOND_H =P2^1;


//=============================================
//======================全局變量=============
uchar timer_50ms;
uchar hour;
uchar minute;
uchar second;

uchar leddata[]={0xC7, //"0"
0xFA, //"1"
0xAB, //"2"
0xB7, //"3"
0x9A, //"4"
0x98, //"5"
0x88, //"6"
0xF9, //"7"
0x87, //"8"
0x97, //"9"
};
//------------------------------------------
// 鍵盤掃描相關(guān)的全局變量
//-----------------------------------------
uchar key_value_previous;
uchar key_press_counter;
uchar key_value_main;
//-------------------------------------
// 函數(shù)聲明
//------------------------------------------
void init_cpu(void);
void show_time(uchar hour_data,uchar minute_data,uchar second_data);
uchar key_scan(void);
//===============================
//===================== ======
//===================== 主程序==
//===================== =======
//========================================
void main (void)
{
init_cpu();
second = 0;

wqyloop:
show_time(hour,minute,second);
goto wqyloop;
}
//########################## 主程序結(jié)束 ########
//########################## 子程序開(kāi)始 ########
// 函數(shù)功能:CPU初始化函數(shù)
// 串口波特率可以由T1或T2產(chǎn)生,本例中用T1產(chǎn)生波特率
// T1用于50毫秒精確定時(shí)

//=================================================
void init_cpu(void)
{
TMOD=0x10;//T1為16位計(jì)數(shù)器

TH1=0x4c;//11.0592M晶振時(shí)T1定時(shí)時(shí)間長(zhǎng)度為50毫秒
TL1=0x00;
TR1=1;//T1開(kāi)始定時(shí)

ET1=1;
EA=1;//CPU中斷開(kāi)放
}
//=======================================
void show_time(uchar hour_data,uchar minute_data,uchar second_data)
{ uchar hour_data_h;
uchar hour_data_l;
uchar minute_data_h;
uchar minute_data_l;
uchar second_data_h;
uchar second_data_l;

hour_data_h = hour_data/10;
hour_data_l = hour_data%10;
minute_data_h = minute_data/10;
minute_data_l = minute_data%10;
second_data_h = second_data/10;
second_data_l = second_data%10;

//掃描顯示

P0 = leddata[second_data_h];
SECOND_H=OPEN;
SECOND_L=CLOSE;

P0 = leddata[second_data_l];
SECOND_H=CLOSE;
SECOND_L=OPEN;
}
//=====================================中斷=====
// T1中斷服務(wù)程序
//============================================
void T1_interrupt(void) interrupt 3
{ TH1=0x4c;//11.0592M晶振時(shí)T1定時(shí)時(shí)間長(zhǎng)度為50毫秒
TL1=0x00;
timer_50ms++;//50毫秒中斷一次
if(timer_50ms==20)
{second = second+1;
if(second==60)
{second=0;
}
}
}
//======================================
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:66501 發(fā)表于 2014-11-13 15:43 | 只看該作者
掘墓高手,專挖古墓,一挖一個(gè)坑,坑坑見(jiàn)墓。。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表