找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2064|回复: 2
收起左侧

74HC595扩展控制8位数码管

[复制链接]
ID:245375 发表于 2017-11-2 16:43 | 显示全部楼层 |阅读模式
#include<REG52.H>

#define ui unsigned int
#define uc unsigned char

uc code tube[] = {0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
uc code xx[] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

sbit DAT = P3^4;
sbit rck = P3^5;
sbit sck = P3^6;

uc l,i,k=0;



void S_data(  uc chip_4 ,uc chip_3 )
{  
        uc i;
       
       
        rck = 0;
       
        for(i=0;i<8;i++)
        {
                sck = 0;//从低位到高位
                chip_4 <<= 1;
                DAT = CY;
                sck = 1;               
        }
       
        for(i=0;i<8;i++)
        {
                sck = 0;//从低位到高位
                chip_3 <<= 1;
                DAT = CY;
                sck = 1;               
        }
        rck = 1;
}


void delay()
{
    ;;
}



void display(void)
{
        uc j=0;
       
        if(l == 5)
        {
                l = 0;
               
                S_data(xx[k],tube[j + k]);
                        delay();
               
                k++;
               
                if (k == 8)
                        k = 0;
               
               
        }

       
}

void star(void)
{
        TMOD = 0X01;
        TH0 = (65536-45872)/256;
        TL0 = (65536-45872)%256;
        EA = 1;
        ET0 = 1;
        TR0 = 1;
       
}

void time() interrupt 1
{
        TH0 = (65536-45872)/256;
        TL0 = (65536-45872)%256;
        l++;
}


void main()
{
        star();
        while(1)
        {
                display();
        }
}


回复

使用道具 举报

ID:358284 发表于 2018-6-27 11:30 | 显示全部楼层
请问中间的cy是什么意思?
回复

使用道具 举报

ID:245375 发表于 2018-9-10 14:42 | 显示全部楼层
吉法师 发表于 2018-6-27 11:30
请问中间的cy是什么意思?

这是51的一个运算位,你可以理解为移出去的那一位就在CY里面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表