標題: 動態(tài)數碼管實時顯示ds1302的功能為什么實現(xiàn)不了? [打印本頁]

作者: dafengche    時間: 2014-9-26 14:36
標題: 動態(tài)數碼管實時顯示ds1302的功能為什么實現(xiàn)不了?
用的是HJ-2G開發(fā)學習板,想實現(xiàn)用動態(tài)數碼管實時顯示ds1302的功能?仿照網上程序試了好多遍,為什么老是實現(xiàn)不了呢?
void Delay(unsigned long x)
{
   while(x--);
}

show(uchar time[])
{
    uchar time0,gw,sw, time1,time2;//
unsigned long t=500;
//uint t=2;
time0=time[0];     time[0]為得到的秒BCD碼
sw=time0/16;      求十位;
gw=time0%16;    求個位;

DDRA|=BIT(3);//把PA3設為輸出
DDRA|=BIT(4);//把PA4設為輸出
DDRB=0XFF;//把PB口設為輸出型,全為高

PORTA|=BIT(3);
PORTB=Number[sw];
PORTA&=~BIT(3);

PORTB=0XFF;
PORTB&=~BIT(4);//位選四顯示分十位
PORTA|=BIT(4);
PORTA&=~BIT(4);
    Delay(t);

PORTA|=BIT(3);
PORTB=Number[gw];
PORTA&=~BIT(3);

PORTB=0XFF;
PORTB&=~BIT(5);//位選四顯示分個位
PORTA|=BIT(4);
PORTA&=~BIT(4);
Delay(t);
}
哪位大俠指點一下迷津?
補充:假設先前輸入的秒是50,理想情況在數碼管顯示出50并不斷加1,但最后顯示是AE, AE也不動,不知道錯誤在哪。
時間在1602上顯示正常,當然輸入1602的數據提前轉為ascii碼了。


作者: mqwu    時間: 2014-10-4 14:26
void Delay(unsigned long x)
{
   while(x--);
}

show(uchar time[])
{
    uchar time0,gw,sw, time1,time2;//
unsigned long t=500;
//uint t=2;
time0=time[0];     time[0]為得到的秒BCD碼
//*既然是BCD碼的格式, 數據只能按下面處理*******//
gw=time0&0x0f;
sw=(time0>>4)&0x07;
//sw=time0/16;      求十位;
//gw=time0%16;    求個位;

DDRA|=BIT(3);//把PA3設為輸出
DDRA|=BIT(4);//把PA4設為輸出
DDRB=0XFF;//把PB口設為輸出型,全為高

PORTA|=BIT(3);
PORTB=Number[sw];
PORTA&=~BIT(3);

PORTB=0XFF;
PORTB&=~BIT(4);//位選四顯示分十位
PORTA|=BIT(4);
PORTA&=~BIT(4);
    Delay(t);

PORTA|=BIT(3);
PORTB=Number[gw];
PORTA&=~BIT(3);

PORTB=0XFF;
PORTB&=~BIT(5);//位選四顯示分個位
PORTA|=BIT(4);
PORTA&=~BIT(4);
Delay(t);
}
作者: dafengche    時間: 2014-10-8 09:50
謝謝你的回答,在板子上試了一下,還是不行,估計板子什么地方沒配置好吧;挺奇怪的
作者: mqwu    時間: 2014-10-8 17:43
你買的慧凈的板子嗎? 是市面上最差勁的, 完全是抄襲,沒有一點自己的東西, 前年我公司有位同事買的慧凈的PIC開發(fā)板就是這樣。
作者: dafengche    時間: 2014-10-9 09:22
是的,第一次接觸單片機,第一次買板子,不是太清楚質量好壞;別人仿真好的程序發(fā)給我,在板子上老是通過不了;看了好多例程,程序應該沒問題,可是卻沒有得到想要的結果。。。
作者: dafengche    時間: 2014-10-22 17:07
把程序給了賣板子的人調,也沒消息了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1