因仑“3+1”工程特种兵精英论坛

标题: 74ls164串转并的数码管显示应用 [打印本页]

作者: 123321    时间: 2015-4-15 12:47
标题: 74ls164串转并的数码管显示应用


#include <reg52.h>
#include <stdio.h>

sbit p11=P1^1;
sbit p12=P1^2;
unsigned char data discode[11]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};//共阴串行
unsigned char leddis[6]={1,2,3,4,5,6};//显存,有几个数码管可以定义几个

void display(void)  //数码管显示函数
{
    unsigned char count;//数码管个数

    for (count=6;count>0;count--)
    {
        SBUF=discode[leddis[count-1]];
        while(TI==0);
        TI=0;
    }
}   
void main()
{
        SCON=0x00;        //设定UART的工作方式为MODEO
                leddis[0]=1;        //显示内容的初始化
                leddis[1]=2;
                   leddis[2]=3;
                   leddis[3]=4;
        leddis[4]=5;
        leddis[5]=6;
                display();        //        显示函数

                while(1)
                {
                        if(p11==0)        //键P11被按下,显示2008
                        {
                leddis[0]=1;        //显示内容的初始化
                leddis[1]=2;
                   leddis[2]=3;
                   leddis[3]=4;
                leddis[4]=5;
                leddis[5]=6;
                        display();
                        p11=1;
                        }
                        if(p12==0)        //键P12被按下,显示0808
                        {
                leddis[0]=9;        //显示内容的初始化
                leddis[1]=8;
                   leddis[2]=7;
                   leddis[3]=6;
                leddis[4]=5;
                leddis[5]=4;
                        display();
                        p12=1;
                        }               
                }               
}
[attach]2300[/attach]







欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4