<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 咱們的ADC0809電壓表

咱們的ADC0809電壓表

作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò ) 收藏
///////通道編號的數碼管顯示函數///////
void disp_in(uchar a)
{
ADD_A = 0;
ADD_B = 0;
ADD_C = 0;
P0 = numtable[a];
delay(3);
}
///////通道1的AD轉換函數///////
void ADC_1()
{
STA_ALE = 0;
STA_ALE = 1;
ADD_A = 1;
ADD_B = 0;
ADD_C = 1;
ADC_B = 0;
ADC_A = 0;
STA_ALE = 0;
}
///////通道2的AD轉換函數///////
void ADC_2()
{
STA_ALE = 0;
STA_ALE = 1;
ADD_A = 1;
ADD_B = 0;
ADD_C = 1;
ADC_B = 0;
ADC_A = 1;
STA_ALE = 0;
}
///////判別是哪條通道AD轉換函數///////
void ADC(uchar ad_dat)
{
if (1 == keynum)
{
ADC_1();
disp();
disp_in(1);
}
else if (2 == keynum)
{
ADC_2();
disp();
disp_in(2);
}
else if (3 == keynum)
{
TR1 = 1;
if (!shift)
{
ADC_1();
disp();
disp_in(1);
}
if (shift)
{
ADC_2();
disp();
disp_in(2);
}
}
else if (16 == keynum)
{
ADC_2();
disp();
disp_in(2);
}
while ( 0 == OE_EOC )
{
keyscan();
if (1 == keynum)
{
disp();
disp_in(1);
}
else if (2 == keynum)
{
disp();
disp_in(2);
}
else if (3 == keynum)
{
TR1 = 1;
if (!shift)
{
disp();
disp_in(1);
}
if (shift)
{
disp();
disp_in(2);
}
}
}
temp = ad_dat*0.0196078;
val_int = (uchar) temp;
val_decimal = (uchar) ((temp - val_int)*100);
}
///////定時(shí)器初始化函數//////
void timer_init()
{
IE = 0x8a;
TMOD = 0x12;
TH0 = 0x14;
TL0 = 0x00;
TR0 = 1;
TH1 = -50000/256;
TL1 = -50000%6;
}
///////主函數//////
int main ()
{
timer_init();//初始化定時(shí)器
while(1)
{
keyscan();//矩陣鍵盤(pán)掃描賦值
if (1 == keynum || 2 == keynum || 3== keynum) //當有鍵按下時(shí),啟動(dòng)ADC轉換
ADC(P2);
else //否則顯示四個(gè)0
{
disp();
disp_in(0);
}
}
return 0;
}
///////1S顯示切換的定時(shí)中斷函數(T1)//////
void TIMER(void) interrupt 3
{
static uchar timer;
timer++;
if (20 == timer)
{
timer = 0;
shift = !shift;//用于兩位的1S顯示切換
}
}
///////提供給ADC芯片CLOCK的定時(shí)函數(T0)//////
void OTHER_CLOCK(void) interrupt 1
{
CLK = !CLK;
}
說(shuō)說(shuō)主要遇到的問(wèn)題和學(xué)到的東西:一個(gè)是因為用了等待查詢(xún)方式來(lái)讀取ADC0809的AD轉換結果,加上矩陣鍵盤(pán)和38譯碼器選址,導致兩個(gè)問(wèn)題:
1.各個(gè)功能的邏輯關(guān)系混亂。雖然只有幾個(gè)功能模塊,但是也思考了一番才有了新的程序架構。還有就是始終沒(méi)能適應自頂向下的編程思維,比如會(huì )習慣先編出ADC的START信號或者選址函數,再去想用在哪里。而不是先直接構造一個(gè)ADC處理的框架,再去想細節的實(shí)現。
2.還有數碼管動(dòng)態(tài)顯示不停閃爍。調試的時(shí)候,也老想著(zhù),應該就是這樣了吧,改不了了吧,呵呵,可是解決之后再次覺(jué)得天無(wú)絕人之路啊,
ADD_A = 1;
ADD_B = 0; 這段語(yǔ)句起初P0 = numtable_DE[val_int];是放在首位的,結果想想是不是因為用38
ADD_C = 0; 譯碼器控制位選擾亂了下一位的段選,移一下位就搞定了……真是奇妙
P0 = numtable_DE[val_int];
delay(1);
團隊合作的效率這次體現得很明顯,特別是繁瑣的畫(huà)圖,可是因為大家實(shí)踐比較少,結果很不幸犯了很基礎的錯誤,導致成品沒(méi)有成功。不知道以后還有機會(huì )合作不
上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: ADC0809電壓

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>