打印
[程序源码]

//晟矽微单片机编程第五天//流水灯升级版

[复制链接]
619|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
34af9uc|  楼主 | 2020-10-22 20:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//晟矽微单片机编程第五天//流水灯升级版
//为了方便移植和后期更改io方便不得不用#define宏定义,这样太麻烦了也没有别的办法了.
//qq:74145445
//快手:共同学习stm8
/**************************************************/
//                                              MC32P7311
//                                           _____@_____
//            led0--p16|1                      16|p17--led13
//                                vdd|2                       15|vss
//            led1--p15|3                      14|p00--led12
//            led2--p14|4                      13|p01--led11
//            led3--p13|5                      12|p02--led10
//            led4--p12|6                      11|p03--led9
//            led5--p11|7                      10|p04--led8
//            led6--p10|8_________9|p05--led7

/**************************************************/
#define                   bit0                      0b00000001
#define                   bit1                      0b00000010
#define                   bit2                      0b00000100
#define                   bit3                      0b00001000
#define                   bit4                      0b00010000
#define                   bit5                      0b00100000
#define                   bit6                      0b01000000
#define                   bit7                      0b10000000

#define                   bit8                      0b0000000100000000
#define                   bit9                      0b0000001000000000
#define                   bit10                     0b0000010000000000
#define                   bit11                     0b0000100000000000
#define                   bit12                     0b0001000000000000
#define                   bit13                     0b0010000000000000
#define                   bit14                     0b0100000000000000
#define                   bit15                     0b1000000000000000
/**************************************************/
//led0--p16
#define                   led_0chu           OEP1                      |=bit6                    //输出使能0输入1为输出
#define                   led_0h                    IOP1                      |=bit6                    //点亮led
#define                   led_0l                    IOP1                      &=~bit6                   //熄灭led
//led1--p15
#define                   led_1chu           OEP1                      |=bit5
#define                   led_1h                    IOP1                      |=bit5
#define                   led_1l                    IOP1                      &=~bit5
//led2--p14
#define                   led_2chu           OEP1                      |=bit4
#define                   led_2h                    IOP1                      |=bit4
#define                   led_2l                    IOP1                      &=~bit4
//led3--p13
#define                   led_3chu           OEP1                      |=bit3
#define                   led_3h                    IOP1                      |=bit3
#define                   led_3l                    IOP1                      &=~bit3
//led4--p12
#define                   led_4chu           OEP1                      |=bit2
#define                   led_4h                    IOP1                      |=bit2
#define                   led_4l                    IOP1                      &=~bit2
//led5--p11
#define                   led_5chu           OEP1                      |=bit1
#define                   led_5h                    IOP1                      |=bit1
#define                   led_5l                    IOP1                      &=~bit1
//led6--p10
#define                   led_6chu           OEP1                      |=bit0
#define                   led_6h                    IOP1                      |=bit0
#define                   led_6l                    IOP1                      &=~bit0
//led7--p05
#define                   led_7chu           OEP0                      |=bit5
#define                   led_7h                    IOP0                      |=bit5
#define                   led_7l                    IOP0                      &=~bit5
//led8--p04
#define                   led_8chu           OEP0                      |=bit4
#define                   led_8h                    IOP0                      |=bit4
#define                   led_8l                    IOP0                      &=~bit4
//led9--p03
#define                   led_9chu           OEP0                      |=bit3
#define                   led_9h                    IOP0                      |=bit3
#define                   led_9l                    IOP0                      &=~bit3
//led10--p02
#define                   led_10chu              OEP0                      |=bit2
#define                   led_10h                       IOP0                      |=bit2
#define                   led_10l                       IOP0                      &=~bit2
//led11--p01
#define                   led_11chu              OEP0                      |=bit1
#define                   led_11h                       IOP0                      |=bit1
#define                   led_11l                       IOP0                      &=~bit1
//led12--p00
#define                   led_12chu              OEP0                      |=bit0
#define                   led_12h                       IOP0                      |=bit0
#define                   led_12l                       IOP0                      &=~bit0
//led13--p17
#define                   led_13chu                     OEP1                      |=bit7
#define                   led_13h                              IOP1                      |=bit7
#define                   led_13l                              IOP1                      &=~bit7
/**************************************************/
#include"MC32P7311.h"
unsigned           char                      b1;                   //全局变量
void           yanshi();                     //延时
void           panduan();                    //判断
/**************************************************/
void           main()
{
unsigned           char                   a1,a2;

led_0chu;
led_1chu;
led_2chu;
led_3chu;
led_4chu;
led_5chu;
led_6chu;
led_7chu;
led_8chu;
led_9chu;
led_10chu;
led_11chu;
led_12chu;
led_13chu;
/*
led_0l;
led_1l;
led_2l;
led_3l;
led_4l;
led_5l;
led_6l;
led_7l;
led_8l;
led_9l;
led_10l;
led_11l;
led_12l;
led_13l;
*/
for(;;)
{
b1         =0x01;
for(a1=14;a1>0;a1--)                      //左移
{

    panduan();
    yanshi();
    b1         <<=1;                     //左移一位
}

//b1         =bit13;
for(a1=14;a1>0;a1--)                      //右移
{
    panduan();
    yanshi();
    b1         >>=1;                     //右移一位
}
/**************************************************/
//心跳灯
for(a2=5;a2>0;a2--)                   //心跳5次
{
b1         =0x01;
for(a1=14;a1>0;a1--)                      //左移
{
           b1                    |=bit0;                   //每一次都把末尾填满
    panduan();
    yanshi();
    b1         <<=1;                     //左移一位
}
//上面已经点亮>>熄灭
for(a1=14;a1>0;a1--)                      //左移
{
           b1                    |=bit0;                   //末尾一直亮
    panduan();
    yanshi();
    b1         >>=1;                     //左移一位
}
}
/**************************************************/
//两面流→←
unsigned char          aa1,aa2;

for(a1=2;a1>0;a1--)
{
aa1                   =bit0;
aa2                   =bit13;
for(a2=7;a2>0;a2--)
    {
    b1                    |=aa1;
    b1                    |=aa2;
           panduan();
           yanshi();
           aa1                   <<=1;
           aa2                   >>=1;

    }


}

/**************************************************/ //待测
a2                    =0xffff;                      //呼吸灯
for(;;)
{

for(a1=0;a1<100;a1++)
{

if(a2==a1)
{
a2=~a2;
b1         =a2;
}
panduan();
;
;
;
;
;
}

a2++;
}


/**************************************************/
//开发你的想象力写一个
/**************************************************/

}

}

/**************************************************/
void           panduan()                    //判断
{
if(b1&&bit0){led_0h;}                     else{led_0l;}
if(b1&&bit1){led_1h;}                     else{led_1l;}
if(b1&&bit2){led_2h;}                     else{led_2l;}
if(b1&&bit3){led_3h;}                     else{led_1l;}
if(b1&&bit4){led_4h;}                     else{led_1l;}
if(b1&&bit5){led_5h;}                     else{led_1l;}
if(b1&&bit6){led_6h;}                     else{led_1l;}
if(b1&&bit7){led_7h;}                     else{led_1l;}
if(b1&&bit8){led_8h;}                     else{led_1l;}
if(b1&&bit9){led_9h;}                     else{led_1l;}
if(b1&&bit10){led_10h;}                   else{led_1l;}
if(b1&&bit11){led_11h;}                   else{led_1l;}
if(b1&&bit12){led_12h;}                   else{led_12l;}
if(b1&&bit13){led_13h;}                   else{led_13l;}


}

/**************************************************/
void           yanshi()                      //延时
{
unsigned char x,y;
for(x=200;x>0;x--)
    {
    for(y=200;y>0;y--);
    }

}

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

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

301

主题

458

帖子

62

粉丝