| 用的是HJ-2G开发学习板,想实现用动态数码管实时显示ds1302的功能?仿照网上程序试了好多遍,为什么老是实现不了呢? 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码了。 |
更多回帖