微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 138模块实现数码管扫描

138模块实现数码管扫描

时间:10-02 整理:3721RD 点击:
[hide=d1e+48]#include <STC89.H>
#define uchar unsigned char
uchar code tab[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit _138_A=P2^0;
sbit _138_B=P2^1;
sbit _138_C=P2^2;

void delay(uchar ms)
{
        while(--ms);
}
void dis(uchar i)
{
//        switch(i)
//        {
//                case 0: _138_C=0;_138_B=0;_138_A=0;
//                                break;
//                case 1:_138_C=0;_138_B=0;_138_A=1;
//                                break;
//                case 2:_138_C=0;_138_B=1;_138_A=0;
//                                break;
//                case 3:_138_C=0;_138_B=1;_138_A=1;
//                                break;
//                case 4:_138_C=1;_138_B=0;_138_A=0;
//                                break;
//                case 5:_138_C=1;_138_B=0;_138_A=1;
//                                break;
//                case 6:_138_C=1;_138_B=1;_138_A=0;
//                                break;
//                case 7:_138_C=1;_138_B=1;_138_A=1;
//                                break;
//        }                                      /正方向/
        switch(i)
        {
                case 0: _138_C=1;_138_B=1;_138_A=1;
                                break;
                case 1:_138_C=1;_138_B=1;_138_A=0;
                                break;
                case 2:_138_C=1;_138_B=0;_138_A=1;
                                break;
                case 3:_138_C=1;_138_B=0;_138_A=0;
                                break;
                case 4:_138_C=0;_138_B=1;_138_A=1;
                                break;
                case 5:_138_C=0;_138_B=1;_138_A=0;
                                break;
                case 6:_138_C=0;_138_B=0;_138_A=1;
                                break;
                case 7:_138_C=0;_138_B=0;_138_A=0;
                                break;                       
        }                                                                       
        P0=tab;
        delay(100);
        P0=0x00;
}
void main()
{
        while(1)
        {
                uchar i,j;
                for(i=0;i<8;i++)
                {
                        for(j=0;j<160;j++)
                        {
                                delay(60000);
                                dis(i);
                        }
                }
        }
}
[/hide]

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top