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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機利用定時器動態掃描8X8LED滾動顯示0-9

[復制鏈接]
跳轉到指定樓層
樓主
ID:597405 發表于 2023-6-17 11:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
LED8X8點陣,使用74HC595芯片作為數據輸入,以P0口作為陰極循環掃描每一列。采用STC89C52RC單片機,感興趣的可以復制來玩。
程序如下:
#include "reg52.h"         //此文件中定義了單片機的一些特殊功能寄存器
#include<intrins.h>


typedef unsigned int u16;          //對數據類型進行聲明定義
typedef unsigned char u8;


sbit SRCLK=P3^6;//數據輸入時鐘,上升沿時SER的最高位被移入數據寄存器中
sbit RCLK=P3^5;//移位寄存器,上升沿時數據寄存器里的數據被移到輸出端
sbit SER=P3^4;//數據輸入
u16 timecount;
u8 cnta,cntb;

u8 code ledwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//(0111 1111,1011 1111,1101 1111.....)
u8 code digittab[88]={                              //設置0-9的顯示數組,也可以根據不同的接法寫出不同的結合,本程序采用共陰掃描
                                                               //當輸入點為高,則點亮對應的led
0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00, //0
0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00, //1
0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00, //2
0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00, //3
0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00, //4
0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00, //5
0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00, //6
0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00, //7
0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00, //8
0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00, //9
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};


void Hc595SendByte(u8 dat)//
{
        u8 a;
        SRCLK=0;
        RCLK=0;                        //SRCLK,RCLK為0,以便產生上升沿
        for(a=0;a<8;a++)
        {
                SER=dat>>7;       //輸入的數據高位首先被移入數據寄存器中
                dat<<=1;            //次高位

                SRCLK=1;           // 數據時鐘產生上升沿,數據被移入
                _nop_();
                _nop_();
                SRCLK=0;        //   數據時鐘產生下降沿,數據寄存器里的數據不變,等待下一個數據(次高位)移入
        }

        RCLK=1;            //移位寄存器上升沿,數據寄存器里的數據被移到輸出端
        _nop_();
        _nop_();
        RCLK=0;       // 輸出端的數據保持不變
}



void Initi_t0()    //T0定時器的設置3000us中斷一次
{
TMOD=0x01;
TH0=(65536-3000)/256;
TL0=(65536-3000)%256;
TR0=1;
ET0=1;
EA=1;
}

void main()
{                       
        Initi_t0();
       
        while(1);
               
}


void t0(void) interrupt 1 using 0
{
TH0=(65536-1000)/256;           //重裝,每隔3ms產生一次
TL0=(65536-1000)%256;
P0=0xff;                                                //清除LED數據,也可以在后面寫成Hc595SendByte(0x00),但顯示數據變暗
Hc595SendByte(digittab[cnta+cntb]);
P0=ledwei[cnta];


cnta++;

if(cnta==8)                    //當cnta=8時,8x8點整顯示digittab[]數組中的前8個,及digittab[0]~digittab[7]
{
cnta=0;
}
timecount++;             //為延時,當不滿100,LED8X8一直顯示digittab[0]~digittab[7]
if(timecount==100)
{
timecount=0;
cntb++;               //初始為0,當cntb+1時,Hc595SendByte(digittab[cnta+cntb])就從digittab[1]~digittab[8]移數,
if(cntb==80)        //當cntb+2時,Hc595SendByte(digittab[cnta+cntb])就從digittab[2]~digittab[9]開始移數.....當cntb+3時,                                                               //Hc595SendByte(digittab[cnta+cntb])就從digittab[3]~digittab[10]移數......一直到digittab[80]~digittab[87]
cntb=0;              // 每次顯示digittab[]8位,從整體來看從0-9不斷的循環移動
}
}
}



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产一区二区三区免费 | 国产99精品 | 亚洲xxxxx | 国产一区二区在线免费视频 | 亚洲欧美高清 | 97久久久久久久久 | 国产乱一区二区三区视频 | 操操操av | 国产一区二区三区 | 免费午夜视频 | 欧美综合在线视频 | 亚洲一区二区三区福利 | 欧美一级全黄 | 欧美国产精品久久久 | 国产精品178页 | 国产精品大片在线观看 | 美国十次成人欧美色导视频 | 国产精品av久久久久久久久久 | 91麻豆精品国产91久久久久久 | 国产精品国产a | 亚洲一区在线播放 | 国产在线a | 91一区二区| 成年人在线视频 | 高清成人av | 亚洲区一区二 | 中文字幕日韩欧美 | 理论片午午伦夜理片影院 | 天天草夜夜骑 | 日韩免费看片 | 国产在线精品一区二区 | 国产精品日韩欧美一区二区三区 | 九九视频在线观看视频6 | 玖玖在线精品 | 午夜成人在线视频 | 97免费在线视频 | 精品国产一区二区三区av片 | 欧美色综合一区二区三区 | 成人免费视频 | 自拍偷拍亚洲一区 | 中文一级片 |