打印

求助关于2个数码管显示的问题

[复制链接]
964|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lg_forever|  楼主 | 2013-5-4 18:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lg_forever|  楼主 | 2013-5-4 18:24 | 只看该作者
本帖最后由 lg_forever 于 2013-5-4 18:30 编辑

程序贴上,就是用IO模拟时序的。请大家帮忙
通过主程序连续两次调用sendbyte(6);显示的十位是正确的6,而个位却是全亮,挠头。
void seg_h(void)   //IO模拟时序,在上升沿送个高电平信号。
{
    Low_CLK;
   Delay(1);
   High_DATA;
   Delay(1);
   High_CLK;   
   Delay(1);   
}
void seg_l(void)  //在上升沿时。送个低电平信号进入164
{
    Low_CLK;
   Delay(1);
   Low_DATA;
   Delay(1);
   High_CLK;   
   Delay(1);   
}
void sendbyte(uchar byte)   //  显示相应数字,连续调用2次该函数去显示66或者00时,十位显示正确,但 是个位显示全亮
{
   uchar num,i;
  num=tab[byte];
  for(i=0;i<8;i++)
   {
  Delay(1);
  if(tab[byte]&0x01)
   seg_h();   
  else
   seg_l();   
  tab[byte]>>=1;
  Low_LED;
   }
  Delay(1);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

5

帖子

0

粉丝