急需单片机高手帮忙用C语言写一个单片机4个灯轮流闪亮的源程序。 详细内容看补充。

急需单片机高手帮忙用C语言写一个单片机4个灯轮流闪亮的源程序。 详细内容看补充。,第1张

/*对于个凳耐单片机的初学者,我希望用最直观的方式来达到你要的要求,程序每一句我已经写好备注,希望对你有帮助*/

#include<reg51.h> //使用51功能头文件

sbit L1=P0^0 //L1对应P0.0,表示第一盏灯

sbit L2=P0^1 //L1对应P0.1,表示第二盏大粗做灯

sbit L3=P0^2 //L1对应P0.2,表示第三盏灯

sbit L4=P0^3 //L1对应P0.3,表示第四盏灯

void delay(unsigned int i) //延迟子程序,注意这里的unsigned int i,这里相当于限定了调用时候变量的类型

{

unsigned char j//局部变量定义

while(i--) //循环i次,主程序main调用时候,i为100,这数值你可随便该,但小于65355

for(j = 200j >0j--) //这步的意思是空 *** 滚衡作200次,也就是暂用CPU200次的工作时间

}

void main(void) //主函数,这里的viod是无类型,意思是没有给这函数指定数据类型

{

P0=0x00 //将P0口初始化位高电平,如果没有这句,初始化为低电平,这里可根据需要选择

L1=1 //第一盏灯亮

delay(100)//调用延时子程序

L2=1 //第二盏灯亮

delay(100)//调用延时子程序

L3=1 //第三盏灯亮

delay(100)//调用延时子程序

L4=1 //第四盏灯亮

delay(100)//调用延时子程序

while(1)//这里我用了个死循环,目的程序只运行一次,如果需要自动重新运行,可以把这句删掉

}

纯手工书写,并仿真调试过,记得加分哟~

采模裤用串口发送一次0x0001,然旦闭简后一次移位0x0002,0x0004,0x0008,0x0010,0x0020,0x0040...

#include "STC89C51RC_RD_PLUS.H"

#define uchar unsigned char

#define uint unsigned int

void Com_Init()

{

TMOD = 0x20

SCON = 0x50

TH1 = 0xFC

TL1 = TH1

PCON = 0x00

TR1 = 1

}

void Delay (uint Milliseconds)//延时2ms,

{

uchar a,b

for(a=3a>0a--)

{

for(b=245b>0b--)

for (Milliseconds >0Milliseconds--)

}

}

void SendChar (uchar chr)//发送一个字符

{

SBUF = chr

while(!TI)

TI=0

}

main()

{

Com_Init()

while(1)

{u8 i

for(i=0i<16i++)

{

u16 dat= 0x0001<<i

SendChar (dat)

SendChar ( dat>>态森8)

Delay (1000)//延时

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12406697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存