欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2086|回復(fù): 2
收起左側(cè)

關(guān)于單片機+74LS595同時驅(qū)動數(shù)碼管和LED的問題

[復(fù)制鏈接]
ID:365235 發(fā)表于 2020-5-4 21:47 | 顯示全部樓層 |閱讀模式
如下的單片機程序,p3.4和p1.0分別輸出一串?dāng)?shù)據(jù),定義兩個函數(shù)void LED24show(long byteData)和void LED16show(int byteData)用于驅(qū)動數(shù)碼管和LED,當(dāng) 執(zhí)行 LED24show(0x7fffff);   LED16show(0x0202);時數(shù)碼管應(yīng)當(dāng)顯示00,24個LED小燈應(yīng)當(dāng)只有一個亮,但是仿真的結(jié)果如下,沒有實現(xiàn)要求顯示的部分,請大神幫忙看一下。
51hei截圖20200504214659.png
#include<reg52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned char uint;
void delayms(unsigned int xms);
//****************************************74LS595端口定義
sbit SER1 = P3^4;    //p3.4腳控制串行數(shù)據(jù)輸入
sbit SCK1 = P3^6;    //串行輸入時鐘
sbit RCK1 = P3^5;    //存儲寄存器時鐘

sbit SER2 = P1^0;    //p1.0腳控制串行數(shù)據(jù)輸入
sbit SCK2 = P1^2;    //串行輸入時鐘
sbit RCK2 = P1^1;    //存儲寄存器時鐘

sbit key=P1^7;
sbit run=P0^0;
//*********************************************************************

void LED24show(long byteData)
{
    char i=0;   
    for(i=0;i<24;i++)
    {
        SER1 = byteData<<23;        //送出23位數(shù)據(jù)
        byteData= byteData>>1;      

        SCK1 = 0;          //上升沿,讓串行輸入時鐘變?yōu)楦唠娖剑⒀訒r2個時鐘周期
        _nop_();
        _nop_();
        SCK1 = 1;          //變?yōu)榈碗娖剑瑸橄麓螠?zhǔn)備
    }  

   //位移寄存器數(shù)據(jù)準(zhǔn)備完畢,轉(zhuǎn)移到存儲寄存器
   RCK1 = 0;         //上升沿,讓存儲寄存器時鐘變?yōu)楦唠娖剑⒀訒r2個時鐘周期
   _nop_();
   _nop_();
   RCK1 = 1;

}
void LED16show(int byteData)
{
    char i =0;   
    for(i=0;i<16;i++)
    {
        SER2 = byteData>>15;        //送出15位數(shù)據(jù)
        byteData= byteData<<1;      

        SCK2 = 0;          //上升沿,讓串行輸入時鐘變?yōu)楦唠娖剑⒀訒r2個時鐘周期
        _nop_();
        _nop_();
        SCK2 = 1;          //變?yōu)榈碗娖剑瑸橄麓螠?zhǔn)備
    }  

   //位移寄存器數(shù)據(jù)準(zhǔn)備完畢,轉(zhuǎn)移到存儲寄存器
   RCK2 = 0;         //上升沿,讓存儲寄存器時鐘變?yōu)楦唠娖剑⒀訒r2個時鐘周期
   _nop_();
   _nop_();
   RCK2 = 1;

}
void main()
{  
while(1)
{
    LED24show(0x7fffff);
    delayms(100);
   LED16show(0x0202);
}                  
}

void delayms(unsigned int xms)                //延時函數(shù)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
回復(fù)

使用道具 舉報

ID:89217 發(fā)表于 2020-5-5 08:06 | 顯示全部樓層
你確定8位單片機能0x7fffff<<23位???反正我是沒試過。
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-5-6 10:32 | 顯示全部樓層
無標(biāo)題.jpg
示例.zip (135.33 KB, 下載次數(shù): 11)

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表