控制一只二极管亮,用定时器每隔一秒循环左移位的程序<单片机>急

控制一只二极管亮,用定时器每隔一秒循环左移位的程序<单片机>急,第1张

恩,不知道你要什么语言的弊绝!但是我觉得你提问本身矛盾哈!一只怎么左移?你是亮一只吧!

下面是我一个移位的流水灯程序,你先看看这个程序,延时这里你修改一下就是哈,用定时器来租裂姿触发移位。提示你,你每秒移动移位,那你每个亮多久呢?要考虑好哦!后面我附加一个1s的定时器,你就自己稍微拼凑哈,挺简单的,希望你能解决!

#include

<reg52.h>

#include

<intrins.h>

#define

uint

unsigned

int

#define

uchar

unsigned

char

void

delay(uint)

void

main()

{

uchar

aa

aa=0xfe

while(1)

{

P1=aa

delay(800)

aa=_crol_(aa,1)

}

}

void

delay(uint

z)

{

uint

x,y

for(x=zx>0x--)

for(y=110y>0y--)

}

定时器的

void

T0_time()

interrupt

1

//隔50ms跑过来到中断程序里源铅来,

{

TH0=(65536-50000)/256

TL0=(65536-50000)%256

num++

if(num==20)//50ms*20为1s

{

num=0

led1=~led1//实现灯的闪动

led2=~led2

}

}

稍微融合一下就OK

//稿搏没有编译过,大概思路就键橘祥这伍烂样

#define P_LED P1//定义到你自己的端口

void main(void)

{

unsigned char circledata=0x01,i=0

while(1)

{

for(i=0i<4i++) //显示范围 P_LED.0:P_LED3

{

P_LED=circledata<<i

Delay_ms(1000)//根据自己的晶振写延时1S的函数

}

circledata=0xfe

for(i=3i>=0i--) //显示范围 P_LED.3:P_LED.0

{

P_LED=circledata<<i

Delay_ms(1000)//根据自己的晶振写延时1S的函数

}

}

return

}

/改拦*单片机,用定时中断稿歼改实现每隔0.2秒让接在P1口的8个小灯从左往右键判循环点亮。*/ #include #include #define uchar unsigned char uchar a,buchar b=1uchar a=0xfevoid main() { EA=1IT1=1ET0=1TH0=-5000/256TL0=-5000%256TMOD=0x01...(火星人)2086


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存