久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7508|回復: 1
打印 上一主題 下一主題
收起左側

兩片74HC595 驅動8位數碼管 單片機源代碼分享

[復制鏈接]
跳轉到指定樓層
樓主
04 數碼管 SMG_Ser.pdf (4.74 MB, 下載次數: 61)
03 HC595_Drive.pdf (6.78 MB, 下載次數: 55)




//以下代碼是主文件的代碼

//************************************************************************************
// 數碼管顯示1、2、3、4、5、6、7、8
//************************************************************************************
#include "STC89.H"        //頭文件包含
#include <intrins.h>                                //頭文件包含
typedef unsigned char u8;                        //重新定義數據類型名
typedef unsigned short u16;                        //重新定義數據類型名
typedef unsigned long u32;                        //重新定義數據類型名        
#include <HC595.H>                                        //調用74HC595的底層驅動文件(必須寫這里)
#include <SMG_Ser.H>                                //調用數碼管的文件(必須寫這里)

void SMG_Allot()                                        //數碼管的數據分配
{
        static u8 xdata count;                        //靜態變量               
        count++;                                
        if(count>200)                                        //每200次進來執行一次
        {
                count=0;
                SMG_Write_Buffer[0]=1;                //第1位數碼管顯示內容
                SMG_Write_Buffer[1]=2;                //第2位數碼管顯示內容
                SMG_Write_Buffer[2]=3;                //第3位數碼管顯示內容
                SMG_Write_Buffer[3]=4;                //第4位數碼管顯示內容
                SMG_Write_Buffer[4]=5;                //第5位數碼管顯示內容
                SMG_Write_Buffer[5]=6;                //第6位數碼管顯示內容
                SMG_Write_Buffer[6]=7;                //第7位數碼管顯示內容
                SMG_Write_Buffer[7]=8;                //第8位數碼管顯示內容
        }
        SMG_Display_Ser();                                //執行數碼管顯示函數
}
void main()                                                        //主函數
{
        HC595_Init();                                        //初始化74HC595管腳
        while(1)                                                //主函數大循環
        {
                SMG_Allot();                                //循環調用數碼管數據分配函數
        }
}

//******************************************************************************************************************//******************************************************************************************************************
//以下代碼是74HC595的驅動代碼
//文件名是:HC595.h
#ifndef HC595_Drive                                        //如果沒有找到這個標簽
#define HC595_Drive                                        //那么就打一個這個標簽
sbit HC595_DS=P2^2;                                        //74HC595的數據腳
sbit HC595_ST=P2^3;                                        //74HC595的顯示控制腳
sbit HC595_SH=P2^4;                                        //74HC595的時鐘腳

unsigned char HC595_Write_Buffer[2];//74HC595芯片的數據緩存

void HC595_Init()                                        //74HC595初始化IO口                        
{
        HC595_DS=0;                                                
        HC595_ST=0;
        HC595_SH=0;
}

void HC595_Write_Data_Drive()                //74HC595 數據發送函數
{
        u8 i;                                                        //變量i 用于移位
        for(i=0;i<8;i++)
        {
                HC595_SH=0;                                  //時鐘拉低
                HC595_DS=HC595_Write_Buffer[1]&0x80;//數據最高位拷貝
                HC595_Write_Buffer[1]<<=1;        //數據左移
                HC595_SH=1;                                        //時鐘拉低
        }
        for(i=0;i<8;i++)
        {
                HC595_SH=0;                                  //時鐘拉低
                HC595_DS=HC595_Write_Buffer[0]&0x80;//數據最高位拷貝
                HC595_Write_Buffer[0]<<=1;        //數據左移
                HC595_SH=1;                                        //時鐘拉低
        }
        HC595_ST=1;                                                //顯示控制腳拉高 顯示輸出
        HC595_DS=0;                                                //數據腳歸0
        HC595_ST=0;                                                //控制腳歸0
        HC595_SH=0;                                                //時鐘腳歸0
}
#endif

//******************************************************************************************************************
//******************************************************************************************************************
//以下代碼是數碼管的驅動代碼
//文件名是:SMG_Ser.h

#ifndef SMG_Ser                                        //如果沒有找到這個標簽               
#define SMG_Ser                                        //那么就打一個這個標簽

u8 xdata SMG_Write_Buffer[8];        //八位數碼管的顯存
u8 code SMG_Duan_Buffer[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
u8 code SMG_Wei_Buffer[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

void SMG_Display_Ser()                        //數碼管顯示刷新函數
{
        static u8 count=0;                        //count取值范圍是0~7,每次顯示一位數碼管
        switch(count)
        {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                HC595_Write_Buffer[0]=SMG_Duan_Buffer[SMG_Write_Buffer[count]];
                //通過數碼管顯示緩存0~7的值,查找數碼管duan碼的值,送人74HC595的顯存0,送入0#595芯片
                HC595_Write_Buffer[1]=SMG_Wei_Buffer[count];
                //通過count,查找數碼管wei碼的值,送人74HC595的顯存1,送入1#595芯片
                HC595_Write_Data_Drive();//執行595數據的發送
                break;
        }
        count++;
        count=count%8;//限制count的值,取值范圍是0~7;        
}
#endif


新建工程 包含以上上個.h文件。配置好工程之后 再編譯。












分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:390416 發表于 2021-1-14 19:24 | 只看該作者
配套視頻教程觀看地址:https://www.acfun.cn/v/ac15187311
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色片免费看 | 国产成人免费视频网站高清观看视频 | 久久国产精品亚洲 | 91社影院在线观看 | 综合久久av | 国产aaaaav久久久一区二区 | 三级视频国产 | 欧美一极视频 | 99r在线| 成人黄色三级毛片 | 在线播放亚洲 | 成人欧美一区二区三区黑人孕妇 | 中文字幕av亚洲精品一部二部 | 一区二区三区视频播放 | 亚洲69p | 求毛片 | av毛片 | 亚洲区一区二 | 玖玖在线精品 | 久久国产精品久久久久久 | 精品国产乱码久久久久久牛牛 | 久久精品国产亚洲 | 精品九九久久 | 麻豆亚洲 | 国产电影一区二区三区爱妃记 | 国产美女永久免费无遮挡 | 亚洲精品一区在线观看 | 亚洲第一色站 | 日韩91| 久久综合入口 | 精品视频一区二区 | 日日干天天操 | 免费观看的av毛片的网站 | 亚洲字幕在线观看 | 天天干天天爱天天操 | 极品电影院 | 一区二区在线免费观看 | 一级a爱片性色毛片免费 | 国产精品我不卡 | 久久99蜜桃综合影院免费观看 | 亚洲精品一区av在线播放 |