单片机流水单C语言程序,51单片机流水灯C语言源程序

单片机流水单C语言程序,51单片机流水灯C语言源程序**************************************************************文件名称:flash_led.c文件说明:流水灯C程序编写日期:2006年10月5日程序说明:MCU采用AT89S51,外接12M晶振,P1口输出*************************************************************/#in…

大家好,又见面了,我是你们的朋友全栈君。

**************************************************************

文件名称:flash_led.c

文件说明:流水灯C程序

编写日期:2006年10月5日

程序说明:MCU采用AT89S51,外接12M晶振,P1口输出

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

#include //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++) //8个流水灯反向逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8个流水灯依次全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++) //8个流水灯依次反向全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp>>=1;

}

}

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t–)

for(bt=0;bt<255;bt++);

}

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

*89C51、S51单片机32个IO口流水灯测试程序

*Flash0、1、2、3分别对应单片机的P0、1、2、3四个口

*a程序对应流水灯从全灭到一个一个亮

*b程序对应流水灯从全亮到一个一个灭

*2006-7-26 10:57,OK!

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

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define TimeDelay 60000

void delay(uint n);

void Flash0a(void);

void Flash0b(void);

void Flash1a(void);

void Flash1b(void);

void Flash2a(void);

void Flash2b(void);

void Flash3a(void);

void Flash3b(void);

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

*Function: 主函数

*parameter:

*Return:

*Modify:

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

void main(void)

{

while(1)

{

Flash1b();

Flash1a();

delay(TimeDelay);

delay(TimeDelay);

Flash0b();

Flash0a();

Flash2b();

Flash2a();

Flash1b();

Flash1a();

Flash3b();

Flash3a();

}

}

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

*Function: 延时

*parameter:

*Return:

*Modify:

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

void delay(uint n)

{

while(n!=0)

{

n–;

}

}

void Flash0a(void)

{

uchar i;

uchar Temp;

Temp = 0x80;

for(i=0;i<8;i++)

{

P0 = ~Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P0 = 0xff;

}

void Flash0b(void)

{

uchar i;

uchar Temp;

Temp = 0x80;

for(i=0;i<8;i++)

{

P0 = Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P0 = 0;

}

void Flash1a(void)

{

uchar i;

uchar Temp;

P1 = 1;

Temp = 0x80;

for(i=0;i<8;i++)

{

P1 = ~Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P1 = 0xff;

}

void Flash1b(void)

{

uchar i;

uchar Temp;

P1 = 1;

Temp = 0x80;

for(i=0;i<8;i++)

{

P1 = Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P1 = 0;

}

void Flash2a(void)

{

uchar i;

uchar Temp;

P2 = 1;

Temp = 0x80;

for(i=0;i<8;i++)

{

P2 = ~Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P2 = 0xff;

}

void Flash2b(void)

{

uchar i;

uchar Temp;

P2 = 1;

Temp = 0x80;

for(i=0;i<8;i++)

{

P2 = Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P2 = 0;

}

void Flash3a(void)

{

uchar i;

uchar Temp;

P3 = 1;

Temp = 0x80;

for(i=0;i<8;i++)

{

P3 = ~Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P3 = 0xff;

}

void Flash3b(void)

{

uchar i;

uchar Temp;

P3 = 1;

Temp = 0x80;

for(i=0;i<8;i++)

{

P3 = Temp;

delay(TimeDelay);

Temp = Temp >> 1;

}

P3 = 0;

}

===========

;P1口八个LED灯做三路流水灯实验

;***************************************************************

;* Date : 2004.4.20 *;***************************************************************

ORG 0000H

LJMP MAIN

ORG 030H

MAIN:MOV P1,#0DBH ;11011011–0为亮,1为灭

ACALL DELAY

MOV P1,#06DH ;01101101

ACALL DELAY

MOV P1,#0B6H ;10110110

ACALL DELAY

AJMP MAIN

DELAY:MOV R7,#255 ;延时子程序

D1: MOV R6,#255

D2: DJNZ R6,D2

DJNZ R7,D1

RET

END

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137898.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • tkmapper教程_tkr和tka的区别

    tkmapper教程_tkr和tka的区别tkMapper入门1、tkMapper介绍1.1SpringBoot整合MyBatis以及tkMapper1.2在启动类上修改注解`@MapperScan`2、tkMapper的使用2.1创建数据表2.2创建实体类2.3创建Mapper接口2.4测试3、tkMapper的常用方法3.1类别实体类3.2类别接口增加修改删除查询查询所有根据主键查询条件查询分页查询带条件的分页查询关联查询1、通过多个单表操作实现2、自定义连接查询2.1、在DAO接口自定义方法2.2、创建Mapper文件1、

  • 基于时间的反向传播算法BPTT(Backpropagation through time)[通俗易懂]

    基于时间的反向传播算法BPTT(Backpropagation through time)[通俗易懂]本文介绍BPTT的原理和实现,是读“RecurrentNeuralNetworksTutorial,Part3–BackpropagationThroughTimeandVanishingGradients”的读书笔记,代码也来自于这篇文章,加了部分注释。

  • Dependency Injection

    Dependency Injection

  • python selenium清除浏览器缓存[通俗易懂]

    python selenium清除浏览器缓存[通俗易懂]最近在做自动化测试的时候,由于重复进入登录页面多次,并且此页面在第一次进入的时候才会出现输入用户名和密码,之后进入时候由于登录过了就不会出现用户名和密码框了,所以没登录一次就清除一次浏览器的缓存,下面是清除浏览器缓存的代码fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeysdriver=webdriver.Chrome()driver.get(‘chrome://settings/cl

  • mybatis log plugin 激活码[最新免费获取][通俗易懂]

    (mybatis log plugin 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html1M3Q9SD5XW-eyJsa…

  • jsp添加背景图片铺满屏幕_web背景图片铺满

    jsp添加背景图片铺满屏幕_web背景图片铺满<bodystyle=”background:url(图片存放的路径);background-size:100%100%;background-attachment:fixed”></body>

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号