导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:這也會出錯?﹗[ALP]

 *第2146篇: C51编程:這也會出錯?﹗

  
楼 主:ALP 2002年1月25日15:42
 C51编程:這也會出錯?﹗
各位大俠﹕
    我有10多行程序﹐是動態LED顯示﹐研究了半天﹐居然沒有OK﹐真奇怪。現象是顯示不
全﹐舉例如下﹕
            數字"8"
    正常﹕1000 0000B  0x80
    本例﹕1000 0111B  0x87 
    硬件上沒有問題。
    Why?Who can help me?
    注﹕我已發過類似貼子﹐并得到了大俠的熱情指點。但問題未能kill.還妨大俠再行指
點。Thanks.

#include    <stdio.h>
#include    <reg51.h>
#include    <intrins.h>  

void looplamp()
{
    int i,j,k,m;
    int a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
    for (i=0; i<=9; i++)
    {
        P0 = a[i];
        for (m=0; m<150; m++)
        {
            P2 = 0x01;
            for (j=0; j<8; j++)
            {                
                for (k=0; k<400; k++)
                {
                    _nop_();
                }
                P2 <<= 1;
            }
        }            
    }
}

main()
{
    P0 = 0xff;
    P2 = 0x00;
    while (1)
    {
        looplamp();
    }
}

  
2楼:《农民运动讲习所》所长 2002年1月25日16:30
 这里:
void looplamp()
{
    int i,j,k,m;
    int a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
-》unsigned char code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
    for (i=0; i<=9; i++)
    {
        P0 = a[i];
        for (m=0; m<150; m++)
        {
            P2 = 0x01;
            for (j=0; j<8; j++)
            {                
                for (k=0; k<400; k++)
                {
                    _nop_();
                }
                P2 <<= 1;  //在开始移位之前要关P0的显示
            }
        }            
    }
}
  
3楼:幽游梦蝶 2002年1月25日20:43
 我总觉得定义成int型有问题,换无符号型试试

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:硬件:我想做一个好玩的电路,需要编程控制,还要方便的反复擦写。

[下一篇主题]:初学者:问个菜菜的问题:单片机的代码怎么加密,原理是什么?