用c语言写一个完整程序,让一个小灯闪动,亮500ms,灭800ms

用c语言写一个完整程序,让一个小灯闪动,亮500ms,灭800ms,第1张

#include<stdio.h>

#include<windows.h>

int main()

{

for(int i=0i<100i++) //不停地闪烁100次

{

printf("灯亮") //亮灯,输出一个灯的符号

Sleep(500) //延时500毫秒

system("cls")//系统命令,清屏

printf("灯灭")

Sleep(800) //延时800毫秒

}

return 0

}

用51单片机来简单说明一下:

用8只LED代表8盏灯(D1~D8),限流电阻用一个9脚排阻RP1,原理图如下:

为了视觉观察观察方便,用一个500ms,也就是0.5秒的延时程序来间隔灯的亮灭变化。当然这个时间是可以自由修改的,修改成1秒的话也可以,只是LED亮灭变化快慢不同而已。

下面是延时程序:

void delay500ms(void) //@12.000MHz

{

unsigned char i, j, k

_nop_()

_nop_()

i = 23

j = 205

k = 120

do

{

do

{

while (--k)

} while (--j)

} while (--i)

}

//----------------------------

前面原理图采用P1端口驱动LED,定义LED端口为P1:

#define   IO_LED   P1

//---------------------------

当端口为0时灯亮,为1时熄灭,为了理解方便,用宏定义来定义LED亮灭,增加可读性,也便于理解,如下:

#define DATA_LED_OFF 0xff

#define DATA_LED_ON 0x00

(程序中写“DATA_LED_OFF”,在编译时编译器会自动编译“0xff”。)

//----------------------------

用for循环语句实现LED点亮和熄灭10次:

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

{

IO_LED = DATA_LED_ON //点亮LED

delay500ms()

IO_LED = DATA_LED_OFF //熄灭LED

delay500ms()

}

//----------------------------------

完整的c源程序如下图:

以上仅供参考。

看你这程序编的,ha

查询RI

不是等于

1,而是0

只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是

0,不是1

当接收完数据后,再进行对RI的清零

还是不多说了,上程序,若满意请记得采纳一下,谢谢!

这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序

/***************************************************************************/

#include

<REG52.h>//通用89C52头文件

/***************************************************************************/

void

main(void)//主函数

{

    

TMOD=0x20

 

 

//定时器1和2工作方式2(8位定时/计数)

    

TH1=0xfd

 

 

//定时器1设置初值,波特率9600bit/s,

    

TL1=0xff

    

TR1=1

 

 

 

//启动定时器T1

    

PCON=0x00

 

 

//SMOD=0,不加倍

    

SCON=0x50

 

 

//串口工作方式1,允许接收

    

IE=0x00

//关闭所有中断

    

while(1)

    

{

         

if(RI==0)//如果有数据

        

{

            

P2=SBUF

//接收数据并输出至LED上显示

            

while(!RI)

//等待接收完成

            

RI=0

//清空标识

        

}

    

}

}

/***************************************************************************/


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

原文地址: https://outofmemory.cn/yw/7942180.html

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

发表评论

登录后才能评论

评论列表(0条)

保存