51单片机 ,设计一个跑马灯程序,用软件延时,p0输出,怎么设计c语言,用p1口的开关控制灯循环的速率?

51单片机 ,设计一个跑马灯程序,用软件延时,p0输出,怎么设计c语言,用p1口的开关控制灯循环的速率?,第1张

51单片机孝辩闹是单片机接触最早的,下边这个巧罩程序希望灶顷能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)

void delay(int times){//延时函数,times控制延时时间

int i, j

for(i = 0i <timesi++)

for(j = 0j <210j++)

}

int main(void){

unsigned char data, i

while(1){

data = P1//把开关值读回来

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

P0 = ~(0x01 <<i)//某位为高电平某位对应的灯亮

delay(data)//把读取的开关值用来控制延时

}

}

}

#include<reg51.h> //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=0i<8i++) //洞枣8个流水灯逐个闪动

{

P1=~temp

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

temp<银喊<=1

}

}

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

{

register uint bt

for(tt--)

for(bt=0bt<锋颤野255bt++)

}

跑马灯程序最基本的,c语言还未入门啊!!!

答疑解难   跑马灯程序

                   ORG     0000H

                   LJMP     MAIN

                   ORG     0100H

MAIN:            JB          P0.7,MAIN  ;等待开始键按下

                   LCALL    YS             ;按键延时

                    JB         P0.7,MAIN

                    MOV     A,#7FH       ;是开始键按下  则跑马灯开始运行

LL:                 MOV     P1,A

                    LCALL    YS           ;显示延时

                    RR          A             ;循环右移一位

                    JB         P0.6, LL     ;没有按下停止键  则继续跑马

                    LCALL    YS            ;按键延时

                    JB          P0.6,LL         ;按下停止键 则停止跑马;否则继续跑马

                    MOV      A,#0FFH

                    MOV      P1,A

                    SJMP     MAIN            ;转到程序开始处,等待开始键的按下

YS:                MOV    R7,#150          ;延时子程序

YL:                MOV    R6,#200

YY:         闷旅盯       NOP

                   DJNZ    R6,YY

     镇启              DJNZ    R7,YL

                   RET

                   END

硬件接口电路如下:

   蚂和   哈哈   还满意吗   就请给俺选择(满意选项)吧


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存