stc89c52单片机C语言编程:8个LED登先左循环,再闪烁3次,最后右循环

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-07
stc89c52单片机C语言编程:8个LED灯先左循环,再闪烁3次,最后右循环

#include
#include
#define uint unsigned int
#define uchar unsigned char
void delay(uint);
void main()
{
uchar i,j,k;
uchar temp;
temp=0xfe;

while(1)
{
for(j=1;j>0;j--)
{
for(i=7;i>0;i--)
{
P1=temp;
delay(200);
temp=_crol_(temp,1);
}

P1=0xff;
for(k=6;k>0;k--)
{
P1=~P1;
delay(200);
}

for(i=7;i>0;i--)
{
P1=temp;
delay(200);
temp=_cror_(temp,1);
}
}
}
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

#include
#include
void delay(unsigned int z );
void main()
{
unsigned int a;
unsigned char b=0xfe;
for(a=0;a<8;a++)
{
P1=b;//P1口接8个LED灯
delay(200);
b=_crol_ (b,1);
}
}
void delay(unsigned int z)
{
unsigned int i;
for(;z>0;z--) //延迟时间自己算吧
for(i=110;i>0;i--);
}
用汇编写这个容易点
main: mov a,#0feh
mov r0,#8
loop: mov p1,a
acall delay
rl a
djnz r0,loop
delay:mov r6,#0ffh
loop1: mov r7,#01h
djnz r7,$
djnz r6,loop1
ret
end
好像是这样,延迟时间可能不太准,也是P1口接8个LED灯

#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint);
void main()
{
uchar i,j,k;
uchar temp;
temp=0xfe;
while(1)
{
for(j=1;j>0;j--)
{
for(i=7;i>0;i--)
{
P1=temp;
delay(200);
temp=_crol_(temp,1);
}
P1=0xff;
for(k=6;k>0;k--)
{
P1=~P1;
delay(200);
}
for(i=7;i>0;i--)
{
P1=temp;
delay(200);
temp=_cror_(temp,1);
}
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
这个程序我写的循环的 你要是不需要循环 那就把while(1);移动到最下面

C+proteus仿真




  • stc89c52单片机C语言编程:8个LED灯先左循环,再闪烁3次,最后右循环_百 ...
    答:include<reg52.h> include <intrins.h> define uint unsigned int define uchar unsigned char void delay(uint);void main(){ uchar i,j,k;uchar temp;temp=0xfe;while(1){ for(j=1;j>0;j--){ for(i=7;i>0;i--){ P1=temp;delay(200);temp=_crol_(temp,1);} P1=0xff;for(...
  • 问: 求用C语言写一个简单的STC89C52单片机程序
    答:} else{Motor_L=Motor_R=1;}}
  • STC89c52单片机c语言编程。想用4*4矩阵键盘输入一个数(包括两位数...
    答:以下程序除了你所提出的要求外,多了个把按的数发送到串口的功能。include <reg51.h> include <stdio.h> /***/ define uchar unsigned char define uint unsigned int /***/ define KEYPORT P1 define DATAPORT P2 sbit e=P3^5;sbit rs=P3^6;sbit rw=P3^7;/***/ //4X4键盘 /***4X4...
  • 单片机STC89C52显示0-99的C语言程序
    答:include <reg52.h> include <stdio.h> include <intrins.h> define uchar unsigned char define uint unsigned int sbit sm1= P3^7;sbit sm2=P3^6;sbit sm3=P3^5;sbit sm4=P3^4;sbit led=P2^7;unsigned char table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 }...
  • STC89C52单片机,用C语言编温度报警器的程序
    答:void dsInit(){ //对于11.0592MHz时钟, unsigned int型的i, 作一个i++操作的时间大于8us unsigned int i;ds = 0;i = 100; //拉低约800us, 符合协议要求的480us以上 while(i>0) i--;ds = 1; //产生一个上升沿, 进入等待应答状态 i = 4;while(i>0) i--;} void dsWa...
  • 单片机是STC89C52,编程语言怎么写
    答:汇编语言写格式如下:1、首先必须从0000H开始,一般这里加一个跳转指令比如:ORG 0000H LJMP MAIN 2、中断有固定入口地址 0003H;外部中断0 000BH;定时器0 0013H;外部中断1 001BH;定时器1 0023H;串口 002BH;定时器2 3、正式的主程序一般要避开中断向量地址,所以一般从0030H或更靠后开始如:ORG ...
  • 跪求!!!STC89C52单片机,用八个按键控制分别控制八个LED灯的代码(C语言...
    答:case 0xef:P0=table[5];LED4=0;break;case 0xdf:P0=table[6];LED5=0;break;case 0xbf:P0=table[7];LED6=0;break;case 0x7f:P0=table[8];LED7=0;break;default:break; //如果都没按下,直接跳出}//主循环中添加其他需要一直工作的程序}}//如果帮到你的话,点一个赞吧!硬件电路...
  • 求STC89C52单片机运算及共阴4位八段数码管显示运算结果的C语言程序...
    答:显示到数码管上要加一个小数点,所以实际上程序中的V是以毫米每秒为单位,显示到数码管上缩小了10倍 / include <reg52.h> code unsigned char tab[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管 0-9 共阴极你要取反 unsigned char Dis_Baiwei=0xc0;//定义...
  • 求STC89C52的单片机跑马灯C语言程序
    答:int runlinght(){int i,j;j=1;for(i=0;i<8;i++){P[i]=(j<
  • 怎样用stc89c52单片机控制蜂鸣器发出音乐的c语言程序?
    答:include <REG52.H> include <INTRINS.H> //本例采用89C52, 晶振为11.0592MHZ //关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;//所以拿出谱子, 试探编吧!sbit Beep = P1^5 ;unsigned char n=0; //n为节拍常数...