48路流水灯374扩展流水灯电路仿真,求C怎么控制

2020-02-02 09:34发布

有谁写过这个电路的硬件程序,原来的程序是汇编,我看不懂汇编哪位大哥帮帮忙指导一下这个C程序的流水灯程序怎么写,只需要正传15圈后然后反转15圈,可以按扭调流水灯快慢!带仿真和汇编在里面,大家可以仿真一下,这个我是在其它东风找的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
devcang
1楼-- · 2020-02-02 10:12
感觉和点阵一样,74154做位选,P0数据
devcang
2楼-- · 2020-02-02 14:19
#include<reg51.h>

#define uchar unsigned char
#define uint  unsigned int
sbit EN=P3^6;

void delay5ms();
void delay400ms();

void hy4(){//;花样4全亮
        uchar a;
        for(a=0; a<6; a++){
                P2=a;
                P0=0xff;
                P2=0;
        }
}

void hy3(){        //;花样3全灭
        uchar a;
        for(a=0; a<6; a++){
                P2=a;
                P0=0x00;
                P2=0;
        }
}

void hy2(){ //;花样2从左到右亮,然后从右到左灭
                // mov a,#01h
        // mov r6,#6

// hy21:   mov dptr,#0000h
// hy22:   mov r7,#8

// hy2lp:  movx @dptr,a
        // setb c
        // rlc a
        // lcall delay5ms
        // djnz r7,hy2lp
        // inc dph
        // djnz r6, hy22
        // lcall delay400ms

        // mov a,#01h
        // mov r6,#6

// hy21a:  dec dph
       // ; mov dptr,#0000h
// hy22a:   mov r7,#8

// hy2lpa:  movx @dptr,a
        // clr c
        // rrc a
        // lcall delay5ms
        // djnz r7,hy2lpa
        // dec dph
        // djnz r6, hy22a
        // lcall delay400ms
}


void hy1(){//;花样1间隔亮 变换
        uchar a, p;
        for(p=0; p<0x10; p++){
                for(a=0; a<=6; a++){
                        P2=a;
                        if( (p % 2)==0){
                                P0=0xAA;
                        }else{
                                P0=0x55;
                        }
                        P2=0;
                }
                delay400ms();
        }
}

void delay5ms(){ //;延时子程序(5MS)
        uchar i,j;
        for(i=25;i>0;i--){
                for(j=100; j>0; j--){
                        ;
                }
        }
}

//;==============延时400毫秒
void delay400ms(){  //;延时子程序(400MS)
        uchar i,j,k;

        for(i=20;i>0;i--){
                for(j=100; j>0; j--){
                        for(k=100; k>0; k--){
                                ;
                        }
                }
        }
}


void main(){
        delay400ms();
        EN=0;
        while(1){
         hy1();         //;间隔亮10次
                 delay400ms();
         hy3();         //;全灭
         delay400ms();  //;延时
         hy4();         //;全亮
         delay400ms();  //;延时
         hy3();         //;全灭
         delay400ms();  //;延时
         hy4();         //;全亮
         delay400ms();  //
         hy3();         //;全灭
         delay400ms();  //
         hy2();         //;从左到右亮,然后从右到左灭
         hy2();         //
        }
}



断断续续修改一下,还有一个函数,没改。
SengChuary
3楼-- · 2020-02-02 16:56
devcang 发表于 2012-10-31 17:40
#include

#define uchar unsigned char

非常感谢你@@LZ
SengChuary
4楼-- · 2020-02-02 21:58
devcang 发表于 2012-10-31 17:40
#include

#define uchar unsigned char

不需要按汇编的改为C,可以指导一下就从第1灯开始开始流水死循环15圈完后再反着15圈来回不断的循环怎么写,麻烦你了大哥!
devcang
5楼-- · 2020-02-03 03:24
 精彩回答 2  元偷偷看……
SengChuary
6楼-- · 2020-02-03 08:05
devcang 发表于 2012-10-31 21:43
你按 hy1() 修改一下,差不多了。

想问一下位移应该怎样改,P0口八位移还是按这个片选移,如果选择片选移,是不是每个片选都要按着顺序同步移是吗,不知道我说的对吗?
  1. void hy1()
  2.    
  3.         {                     
  4.         uchar a, p;
  5.         for(p=0; p<0x10; p++)
  6.                
  7.                 {
  8.                 for(a=0; a<=6; a++)
  9.                                 {
  10.                         P2=a;
  11.                         if( (p % 2)==0)
  12.                                                
  13.                                   {
  14.                         P0=0x00;                                               
  15.                           }
  16.                                                 else
  17.                                                 {
  18.                          P0=0xff;
  19.                         }
  20.                         P2=0;
  21.                 }
  22.                 delay400ms();
  23.         }
  24. }
复制代码

一周热门 更多>