标题: 请问这个单片机C语言函数哪里错了?求指点 [打印本页]

作者: jerry1203    时间: 2021-10-5 11:03
标题: 请问这个单片机C语言函数哪里错了?求指点
#include <reg51.h>
void delay(unsigned char i)
{
        unsigned char j,k;
        for(k=0;k<i;k++)
        for(j=0;j<255;j++);
}
void lsd1()
{
        unsigned char i,w;
        w=0x01;
        for(i=0;i<8;i++){
                P1=~w;
                delay(200);
                w<<=1;
        }
        }
        void lsd2()
        {
                unsigned char i,w;
                w=0x80;
                for(i=0;i<8;i++){
                        P1=~w;
                        delay(200);
                        w>>=1;
                }
        }
        void main()
        {
                unsigned char key_count,l;
                P3=0xff;
                for(l=0;l<4;l++)
                        key_count=0
                while(1)
                {
                        if(key_count=0)lsd1();
                                if(key_count=0)lsd1();
                                if(key_count=1)lsd2();
                                if(key_count=2)0x0f;
                                if(key_count=3)0xf0;

                        }
                }
        

捕获.PNG (79.44 KB, 下载次数: 28)

捕获.PNG

1.png (147.51 KB, 下载次数: 28)

1.png

作者: cn_zhx    时间: 2021-10-5 16:56
unsigned char key_count,l;
                P3=0xff;
                for(l=0;l<4;l++)
                        key_count=0

这里的for循环,有什么意义?执行下来,key_count一直等于0
作者: daemondong    时间: 2021-10-5 18:57
逻辑不谈,语法上key_count=0;  你少了;
作者: 一giao我里giao    时间: 2021-10-11 16:17
#include <reg51.h>
void delay(unsigned char i)
{
        unsigned char j,k;
        for(k=0;k<i;k++)
        for(j=0;j<255;j++);
}
void lsd1()
{
        unsigned char i,w;
        w=0x01;
        for(i=0;i<8;i++){
                P1=~w;
                delay(200);
                w<<=1;
        }
        }
        void lsd2()
        {
                unsigned char i,w;
                w=0x80;
                for(i=0;i<8;i++){
                        P1=~w;
                        delay(200);
                        w>>=1;
                }
        }
        void main()
        {
                unsigned char key_count,l;
                P3=0xff;
                for(l=0;l<4;l++)
                key_count=0;
                while(1)
                {
                        if(key_count==0)lsd1();
                                if(key_count==0)lsd1();
                                if(key_count==1)lsd2();
                                if(key_count==2)P3=0x0f;
                                if(key_count==3)P3=0xf0;

                        }
               
                                }
刚学吧
作者: 没啥好名    时间: 2021-10-11 16:25
一giao我里giao 发表于 2021-10-11 16:17
#include
void delay(unsigned char i)
{

你就不能说明一下吗?

作者: 郑汉松    时间: 2021-10-13 13:53
while(1)上面的key_conut = 0少了分号
作者: 李冬    时间: 2021-10-13 16:59
多了一个 if(key_count=0)lsd1();
作者: 名字不是重点    时间: 2021-10-15 10:42
提示这么清楚了还找不到问题? nron.c文件的34行处:语法错误,在‘while’关键字附近。这个错误一看就是你33行末尾少了个“;”的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1