您的位置:首页 > 编程语言 > C语言/C++

用C语言编程使51单片机的数码管左移循环显示

2016-01-25 11:42 429 查看
高手支招:请问用C语言编程使51单片机的数码管左移循环显示0-7的程序怎么编呀
由于我不懂得用中断和定时,请程序里不要用那两个函数,谢谢(*^__^*) 嘻嘻……
悬赏分:0 - 解决时间:2010-7-31 18:09
问题补充:这个是我自己编的,可是运行起来就是不移动,麻烦你们帮修改一下,我没有编左移循环部分的程序。
//==========================================================
最佳答案:
在楼主的程序基础上,增加显示数码移位的功能,程序如下:
//---------------------------------------------------
#include <REG51.H>
#define uint unsigned int
#define uchar unsigned char
uchar code DIS_SEG7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
uchar code DIS_BIT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//---------------------------------------------------
void delay1ms(uint i)  
{    
    uint j;
    while(i--)  for(j = 0; j < 125; j++);
}    
//---------------------------------------------------
void main(void)
{
    uchar cnt, ttt;
    uchar DISP[] = {0, 1, 2, 3, 4, 5, 6, 7};
    while(1) {
      for(ttt = 0; ttt < 100; ttt++)
        for(cnt = 0; cnt < 8; cnt++) {   //点亮数码管0-7
          P2 = 0;
          P0 = DIS_SEG7[DISP[cnt]];
          P2 = ~DIS_BIT[cnt];
          delay1ms(1);
        }
//-------------------以上显示800ms,下面更新显示内容
      ttt = DISP[0];
      DISP[0] = DISP[1];
      DISP[1] = DISP[2];
      DISP[2] = DISP[3];
      DISP[3] = DISP[4];
      DISP[4] = DISP[5];
      DISP[5] = DISP[6];
      DISP[6] = DISP[7];
      DISP[7] = ttt;
    }   
}
//---------------------------------------------------
程序运行截图如下:



图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/733085c774e5235a9c163d4a.html
//==========================================================
提问者对于答案的评价:非常感谢您,运行得了····thankyou(*^__^*)
原题网址:http://z.baidu.com/question/171078120.html
//---------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: