找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1167|回复: 7
收起左侧

请问这个单片机C语言函数哪里错了?求指点

[复制链接]
ID:969664 发表于 2021-10-5 11:03 | 显示全部楼层 |阅读模式
#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
1.png
回复

使用道具 举报

ID:883031 发表于 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
回复

使用道具 举报

ID:827243 发表于 2021-10-5 18:57 | 显示全部楼层
逻辑不谈,语法上key_count=0;  你少了;
回复

使用道具 举报

ID:831736 发表于 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;

                        }
               
                                }
刚学吧
回复

使用道具 举报

ID:836515 发表于 2021-10-11 16:25 | 显示全部楼层
一giao我里giao 发表于 2021-10-11 16:17
#include
void delay(unsigned char i)
{

你就不能说明一下吗?
回复

使用道具 举报

ID:514901 发表于 2021-10-13 13:53 | 显示全部楼层
while(1)上面的key_conut = 0少了分号
回复

使用道具 举报

ID:709761 发表于 2021-10-13 16:59 | 显示全部楼层
多了一个 if(key_count=0)lsd1();
回复

使用道具 举报

ID:824490 发表于 2021-10-15 10:42 | 显示全部楼层
提示这么清楚了还找不到问题? nron.c文件的34行处:语法错误,在‘while’关键字附近。这个错误一看就是你33行末尾少了个“;”的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表