keil软件这个流水灯程序怎么写?图片上哪边写错了?能发给我个正确的吗?
错误1,p2小写不行,改成大写P2。
2,那个延时子程序delay(),不能写在主程序中,要写在主程序前面,单独写,主程序去调用它。
3,P2不能写在_corl_()函数中。
4,主程序不能写 int main()
应该这么写
#includereg51.h
#includeintrins.h
void delay()
{
unsigned int a=5000;
while(a--);
}
void main()
{
unsigned char light=0xfe;
P2=0xfe;
while(1)
{
P2=light;
light=_crol_(light,1);
delay();
}
}
keil软件如何编写流水灯程序?哪位大神写个程序给我?
你有过这个提问了,已经给你程序了。
#includereg51.h
#includeintrins.h
void delay()
{
unsigned int a=5000;
while(a--);
}
void main()
{
unsigned char light=0xfe;
P2=0xfe;
while(1)
{
P2=light;
light=_crol_(light,1);
delay();
}
}
一键多控流水灯汇编语言怎么写,软件是keil
一键多空流水灯汇编语言程序编写方法是:设置一个变量,来检测按键的次数,从而控制程序分支来达到控制不同流水灯的效果例如:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV R6,#0FEH
MOV R7,#0
LOOP:
JB P1.0,LOOP1
JNB P1.0,$
INC R7
CJNE R7,#2,LOOP1
MOV R7,#0
LOOP1: ;奇数次按键左向流水灯
MOV A,R7
JNZ LOOP2
MOV A,R6
MOV P0,A
RL A
MOV R6,A
LCALL DELAY
SJMP LOOP
LOOP2: ;偶数次按键右向流水灯
MOV A,R6
MOV P0,A
RR A
MOV R6,A
LCALL DELAY
LJMP LOOP
DELAY:
MOV R2,#200
DL1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DL1
RET
END
8个流水灯程序如何编???用keil编
#includereg52.h
unsigned char table[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void delay()
{
unsigned int i;
for(i=0;i30000;i++)
}
void main(void)
{
unsigned char i;
while(1)
{
for(i=0;i8;i++)
{
P1=table[i];
delay();
}
}
}
大致就是这个样子,具体要看你硬件电路的
Keil软件编写流水灯
这个是不对的,sbit是keil针对51硬件对标准C的扩展P1^x中的x只能是立即数,不能做变量,而且for(x=7;x=4;x--);循环什么都做不了,printf函数在单片机中数据流向串口,因此实现这样的功能这个代码显然无法完成。延时算法最简单的当属--运算。具体实例我给你写一个以供参考:
#include STC12C2052AD.h
void delay(unsigned K){while(K--);}//延时函数
void main()
{
int i=0;
while(1)
{
i++;
i=3;//i在0~3之间变化
P1=~(1(i+4));//因为是P1.4~P1.7低电平有效所以i要先+4再移位结果还要取非
delay(65535);//延时
}
}
如何用proteus和keil制作一个简单的流水灯
工具:STC系列51单片机、串口转换器(USB转TTL或232转TTL)材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯若干,5V电源等。以下程序可以直接用KeilC直接编译执行。//可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。//具体实现方法可以参考如下程序:#include#include#defineuintunsignedint#defineucharunsignedcharvoiddelay(uinta);voidmain(){P1=0xfe;while(1){//向左循环点亮LEDfor(i=0;i0;x--)for(y=110;y0;y--);}