24小时热门版块排行榜    

查看: 418  |  回复: 1

糖果豆豆

新虫 (初入文坛)

[求助] 老师布置的单片机作业,不知道哪里错了,请大神帮帮我,拜托拜托~ 已有1人参与

C52单片机,八位共阴数码管,从右到左逐个显示0~7.
下面是我写的代码,没有错误,不过单片机上什么都不显示
#include<reg51.h>
#include<intrins.h>
sbit duan=P2^0;
sbit wei=P2^1;
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,};
void Delayms(int i)
{
int x,y;
for(x=i;x>0;x--)
for(y=120;y>0;y--);
}
void main( )
{
while(1)
{
uint j,k=0x7f;
for(j=1;j>7;j++)
{
       
        wei=1;
        P0=_cror_(k,j);
        wei=0;

        duan=1;
        P0=dis_code[j];
        duan=0;
    Delayms(5);

}
Delayms(1000);
}
}
还有数码管的原理图:

老师布置的单片机作业,不知道哪里错了,请大神帮帮我,拜托拜托~
HJ-C52 数码管原理图.JPG
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

海洋稼柔宝

新虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
P0=_cror_(k,j);  j先改成1看看,这个函数是把k 每次向右移动j 个单位。
最小面的Delayms(1000);可能大了。
建议你每次编程调试时,先调出最基本的部分。可以先调个LED灯移动点亮,这个调试出来再用PO口控制数码管。
2楼2015-11-22 11:09:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 糖果豆豆 的主题更新
信息提示
请填处理意见