#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar aa;
void main(){
aa = 0xfe;
uchar i;
while(1){
P1 = aa;
for(i=0;i<8;i++){
P1 = P1>>1;
}
}
}
错误:
2.c(9): error C141: syntax error near 'unsigned'
2.c(9): error C202: 'i': undefined identifier
2.c(12): error C202: 'i': undefined identifier
我写其他程序的时候这么写都对,为什么这一次就错了?是不是unsigned出错?还是变量i位置不对
另外,请大神看一下这么写,流水灯能不能运行。
还有,如何我按下一个按键,就能让流水灯停止。我只求流水灯停止代码!!谢谢啦
ä¸è½è¿è¡å.....æåçkeyonæ¯ä»ä¹ï¼èä¸æ¹ækonï¼æ ¹æ¬å°±ä¸æ¯æµæ°´ç¯
追ç#include
#define uchar unsigned char
#define uint unsigned int
sbit key= P2^4;
void main(){
uchar i;
uchar aa;
uchar kon;//1 run,0 stop;
uint dly;
aa = 0xfe;
while(1){
P1 = aa;
dly=5000;
if(kon)
{
for(i=0;i>1;
while(dly--);
}
if(key==0)
kon=!kon;
while(key==0);//çå¾
æé®éæ¾
}
}
嗯,我自己试了下,确实是放在前面对了。为什么啊?
其他问题你能解答吗?感激不尽......
这个就和开发软件的编译方式有关了,你用的应该keil吧,keil编译时必须先要申明定义好一些函数或变量,否者在编译的时候会报错,这个问题就是和编译软件有关的,影响不大,你以后写程序的时候注意点就好,把所有的变量函数都事先声明和定义好就没问题了
让流水灯停下是可以的,你要按下一个键的话,就涉及到外部中断了,不知道你有去接触这个外部中断么?
我看过中断。你能不能大致写一下?
keil汇编语言编程流水灯出现错误1.asm(41): 错误 A45: UNDEFINED SYMBOL...
DO: MOV R1,#200这里的标号是DO D1: MOV R2,#123 NOP D2: DJNZ R2,D2 DJNZ R1,D1 DJNZ R0,D0 这里是D0 数字0和字母O写错了
我用keil c51编了一个流水灯程序,编译无误却只有第一和第二个灯亮了...
1 你的定时器没有重装,导致第一次中断和后面的中断时间不一样,第一次时间短,后面的时间一直是以65536个周期中断的.2 你在中断函数里用了 for 循环,for循环是一下子就执行完了的,而不是你想象的每中断一次才执行一次.for(a=0;a<8;a++){ P1=(P1<<1)+1; \/\/---这一句,使得你的第二...
keil c51编写流水灯程序出现undefined identifier 求高手帮忙啊_百度知 ...
unsigned char led8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char led81[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};这些移到include的下面 另外 j跟 k要定义
谁帮我看下51单片机流水灯怎么不能正常流水闪亮
你程序最后的运行结果是不是所有LED都亮了,如果是这样的话,就是可能你P0口没有加上拉电阻,单片机P0不加上拉电阻的话,是输出不了高电平的。还有,楼主以后问程序问题的同时,最好也把硬件电路图给出,这样大家也才好回答。。。希望可以帮到你。。。
关于单片机流水灯 为什么我的灯都不亮啊??与proteus联调时还说代码没...
P0=_crol_(P0,1);这个函数=_crol_在哪里 很明显你的HEX文件没有生成,而且你的二极管负端全部都接的高电平,按照你这种接法 必须让你二极管的正端的电压高于VCC,那是不可能的。所以你重新看哈hex文件是否生成,再把二极管换过来
keil 流水灯程序 开发板灯不亮。
sbit ENLED = P1^4,你写成3了,能一样吗,LED灯引脚定义出错,灯根本没有工作,能亮就怪了
89C52单片机点亮流水灯同时蜂鸣器响
第一、延迟还没有写完全;第二、leday子函数无调用,而且你这个子函数我都看不懂你是写什么意思,按你的设计要求,这个函数也用不着啊;第三、你这个程序应该有语法错误吧,FOR语句既没大括号又没顿号
这个错误怎么解决,简单的流水灯程序。
有的警告不影响编译,可以编译出HEX文件,而且单片机运行程也正常,就可以不管。如果不能生成HEX文件,或运行错误,那就得查找问题,消除警告才行。你没有发程序,所以,不知是什么原因警告。
单片机Keil问题
有个方法可以解决,即在KEIL调试时,修改R0里的数值,将它变成1或者01H,就可以出循环了。第二个问题:你的程序是实现P1循环→P3循环→P2循环→P0循环,然后又返回P1循环,连续往复。你的程序,我用软件调试了,逻辑上没问题,能实现。不过建议你用移位指令来完成。这样更简单。回答完毕,谢谢。
keil软件用单片机控制8个LED流水灯来回点亮(C语言程序)
P1=w; \/\/循环点亮LED w<<=1; \/\/点亮灯的位置移动,最低位补0 w=w|0x01; \/\/将最低位置1 delay(500); \/\/延时 } } } 或:include "reg51.h"\/\/程序中使用_crol_函数,所以要包含头文件"intrins.h"include "intrins.h"void delay(unsigned int t){ unsigned int i,j;f...