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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5510|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

本人淘了max7219點(diǎn)陣,經(jīng)過幾天的努力,終于完成了這個(gè)時(shí)鐘程序,共享給大家,不足...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:577423 發(fā)表于 2020-1-1 11:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
   //單片機(jī)晶振12M
//顯示0-9中國(guó)
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int

#define count 16           //級(jí)聯(lián)個(gè)數(shù)
unsigned char s, f,j,k,c5,c4,c3,c2,c1,c0,m,n=1;
unsigned char pp;
//定義Max7219端口
sbit Max7219_pinCLK = P2^2;
sbit Max7219_pinCS  = P2^1;
sbit Max7219_pinDIN = P2^0;
sbit k1=P3^4;
sbit k2=P3^5;
  sbit k3=P3^6;
sbit k4=P3^7;

uchar code disp1[10][8]=
{     
{0x18,0x24,0x24,0x24,0x24,0x24,0x24,0x18},//0
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x38},//1
{0x0,0x1C,0x24,0x4,0x8,0x10,0x20,0x3C},//2
{ 0x18,0x24,0x4,0x8,0x18,0x4,0x24,0x18},//3

//{0x0,0x3e,0x2,0x2,0x3e,0x2,0x02,0x3e},//3
//{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x00},//4
{        0x0,0x4,0xC,0x14,0x24,0x3E,0x4,0x4 },//4
{ 0x0,0x3C,0x20,0x38,0x4,0x4,0x24,0x38},//5
//{0x0,0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C},//5
{        0x18,0x24,0x20 ,0x38,0x24,0x24,0x24,0x18},//6

//{0x0,0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C},//6
{0x0,0x3E,0x22,0x4, 0x8, 0x8, 0x8, 0x8},//7
{ 0x0,0x18,0x24,0x24,0x18,0x24,0x24,0x18},//8
//{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{ 0x18,0x24,0x24,0x24,0x1C,0x4,0x24,0x18}//9
//{0x0,0x3e,0x22,0x22,0x3e,0x2,0x2,0x3e},//9
/*{0x0,0x8,0x14,0x22,0x3E,0x22,0x22,0x22},//A
{0x0,0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C},//B
{0x0,0x3C,0x40,0x40,0x40,0x40,0x40,0x3C},//C
{0x0,0x7C,0x42,0x42,0x42,0x42,0x42,0x7C},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x7c,0x00},//E
{0x00,0x7C,0x40,0x40,0x7C,0x40,0x40,0x40},//F
{0x00,0x3C,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44},//H
{0x00,0x10,0xFE,0x92,0x92,0xFE,0x10,0x10},//中
{0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE},//國(guó)*/
};
uchar code disp2[10][8]=
{   
{  0x60,0x93,0x93,0x90,0x90,0x90,0x93,0x63},//0
{0x20,0x63,0xA3,0x20,0x20,0x20,0x23,0x73 },//1
{ 0x0,0xE3,0x93,0x10,0x20,0x40,0x83,0xF3},//2
{ 0x60,0x93,0x13,0x20,0x60,0x10,0x93,0x63},//3
{ 0x0,0x13,0x33,0x50,0x90,0xF8,0x13,0x13},//4
{ 0x0,0xF3,0x83,0xE0,0x10,0x10,0x93,0xE3},//5
{0x63,0x93,0x80,0xE0,0x90,0x90,0x93,0x63},//6
{ 0x0,0xF3,0x93,0x20,0x40,0x40,0x43,0x43},//7
{0x0,0x63,0x93,0x90,0x60,0x90,0x93,0x62},//8
{ 0x63,0x93,0x90,0x90,0x70,0x10,0x93,0x63},//9
};


void Delay_xms(uint x);
void delay1(unsigned char i);
void Write_Max7219_byte(uchar DATA);//寫入一字節(jié)
void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2);
void Init_MAX7219(void);
                      // 鎖存進(jìn)相應(yīng)寄存器

  void  keyscan()
{
        if(k1==0)
        {
                delay1(10);
                if(k1==0)
                {
                        f++;
                        if(f>=60)
                                f=0;        
                        while(k1==0);
                }
        }
        if(k2==0)
        {
                delay1(10);
                if(k2==0)
                {
                        f--;
                        if(f==1)
                                f=60;
                        while(k2==0);
                }
        }
                if(k3==0)
        {
                delay1(10);
                if(k3==0)
                {
                        s++;
                        if(s>=24)
                                s=0;        
                        while(k3==0);
                }
        }
        if(k4==0)
        {
                delay1(10);
                if(k4==0)
                {
                        s--;
                        if(s==1)
                                s=24;
                        while(k4==0);
                }
        }
}
    //開總中斷   

void main(void)
{
uchar i,j;
Delay_xms(50);
Init_MAX7219();
  TMOD=0x01;                 //模式設(shè)置,00000001,可見采用的是定時(shí)器0,工作與模式1(M1=0,M0=1)。
        TR0=1;                         //打開定時(shí)器
        TH0=(65536-46080)/256;// 由于晶振為11.0592,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。
        TL0=(65536-46080)%256;//46080的來歷,為50000*11.0592/12
        //ET0=1;                         //開定時(shí)器0中斷
//        EA=1;               


while(1)
{
         
         keyscan();
           if(TF0==1)                        //單片機(jī)一直在查詢定時(shí)器0的溢出標(biāo)志位TF0狀態(tài)
                {
                        TF0=0;
                        pp++;
                        TH0=(65536-65080)/256;
                        TL0=(65536-65080)%256;
                }
                if(pp==8)
                {        pp=0;
                        m++;
                        n++;
                        P1=n;//閃爍燈
                        if(m==60)
                           {
                                m=0;
                                f++;
                                if(f==60)
                                {
                                f=0;
                                s++;
                                if(s==24)
                                {
                                s=0;           //若到了60s,則歸零
                         }
                        }
                         }
                       
                            }
               
                c0=m%10;                  //取出當(dāng)前描述的個(gè)位與十位
                c1=m/10;
                 c2=f%10;                  //取出當(dāng)前描述的個(gè)位與十位
                c3=f/10;
                c4=s%10;
                c5=s/10;
               
               
          
  // for(i=1;i<9;i++)
//   Write_Max7219(i,disp1[1][i-1],i,disp1[0][i-1]);

   for(i=1;i<9;i++)
   {

//  Write_Max7219(i,disp1[1][i-1],i,disp1[0][i-1]);

    Max7219_pinCS=0;
    for(j=0;j<count;j++)
    {
        Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號(hào)
        Write_Max7219_byte(disp1[c5][i-1]);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
                  Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號(hào)
        Write_Max7219_byte(disp2[c4][i-1]);
                           Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號(hào)
        Write_Max7219_byte(disp1[c3][i-1]);
                                 Write_Max7219_byte(i);           //寫入地址,即數(shù)碼管編號(hào)
        Write_Max7219_byte(disp1[c2][i-1]);
                _nop_();
     }
     Max7219_pinCS=1;   

   }
   Delay_xms(2);

}
}

void Init_MAX7219(void)
{
/*   Write_Max7219(0x09, 0x00,0x09, 0x00);       //譯碼方式:BCD碼
  Write_Max7219(0x0a, 0x03,0x0a, 0x03);       //亮度
  Write_Max7219(0x0b, 0x07,0x0b, 0x07);       //掃描界限;8個(gè)數(shù)碼管顯示
  Write_Max7219(0x0c, 0x01,0x0c, 0x01);       //掉電模式:0,普通模式:1
  Write_Max7219(0x0f, 0x00,0x0f, 0x00);       //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0
  */
uchar  i;
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x09); //譯碼方式:BCD碼      
    Write_Max7219_byte(0x00);   
  }
  Max7219_pinCS=1;
  _nop_();
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0a); //亮度   
    Write_Max7219_byte(0x03);   
  }
  Max7219_pinCS=1;
_nop_();
   Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0b); // //掃描界限;8個(gè)數(shù)碼管顯示  
    Write_Max7219_byte(0x07);   
  }
  Max7219_pinCS=1;
  _nop_();
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0c); //   //掉電模式:0,普通模式:1
    Write_Max7219_byte(0x01);   
  }
  Max7219_pinCS=1;
  Max7219_pinCS=0;
  for(i=0;i<count;i++)
  {
    Write_Max7219_byte(0x0f); //顯示測(cè)試:1;測(cè)試結(jié)束,正常顯示:0
    Write_Max7219_byte(0x00);   
  }
  Max7219_pinCS=1;
  _nop_();
}
void Write_Max7219(uchar address1,uchar dat1,uchar address2,uchar dat2)
{

     Max7219_pinCS=0;
     Write_Max7219_byte(address1);           //寫入地址,即數(shù)碼管編號(hào)
     Write_Max7219_byte(dat1);              //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
     Write_Max7219_byte(address2);           //寫入地址,即數(shù)碼管編號(hào)
     Write_Max7219_byte(dat2);      //寫入數(shù)據(jù),即數(shù)碼管顯示數(shù)字
              _nop_();

     Max7219_pinCS=1;                        
}
//--------------------------------------------
//功能:向MAX7219(U3)寫入字節(jié)
//入口參數(shù):DATA
//出口參數(shù):無(wú)
//說明:
void Write_Max7219_byte(uchar DATA)         
{
            uchar i;   
            for(i=8;i>=1;i--)
          {                  
            Max7219_pinCLK=0;
            Max7219_pinDIN=DATA&0x80;
            DATA=DATA<<1;
            Max7219_pinCLK=1;
           }                                 
}
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i<x;i++)
  for(j=0;j<112;j++);
}
   void delay1(unsigned char i)
{
  for(j=i;j>0;j--)
    for(k=125;k>0;k--);
}
       

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

使用道具 舉報(bào)

沙發(fā)
ID:22618 發(fā)表于 2020-1-1 14:25 | 只看該作者
樓主,把電路圖發(fā)出來,會(huì)更香
回復(fù)

使用道具 舉報(bào)

板凳
ID:929737 發(fā)表于 2021-11-21 13:58 | 只看該作者
樓主 能用max7219實(shí)現(xiàn)左右移嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:57657 發(fā)表于 2021-11-21 22:37 | 只看該作者
fengyin123 發(fā)表于 2021-11-21 13:58
樓主 能用max7219實(shí)現(xiàn)左右移嗎

左右移 屬于 圖像算法 與max7219沒有任何關(guān)系
回復(fù)

使用道具 舉報(bào)

5#
ID:1008225 發(fā)表于 2022-3-4 16:36 | 只看該作者
怎么用按鍵調(diào)整時(shí)間
回復(fù)

使用道具 舉報(bào)

6#
ID:1008207 發(fā)表于 2022-3-4 22:10 來自手機(jī) | 只看該作者
能把電路圖分享一下嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线视频一区 | 久久免费香蕉视频 | 国产精品久久久久9999鸭 | 亚洲国产情侣 | 亚洲国产成人精品女人久久久 | 国产精品91久久久久久 | 欧美激情在线精品一区二区三区 | 视频一区二区在线 | 国产探花在线观看视频 | 国产精品99久久久久久久vr | 韩国理论电影在线 | 国产视频一区二区 | 日韩中文字幕在线视频 | 亚洲精品国产电影 | 亚洲一级在线 | 91深夜福利视频 | 国产清纯白嫩初高生在线播放视频 | 玖玖综合网| 国产国拍亚洲精品av | 日韩淫片免费看 | 国产精品99久久久久久动医院 | 久久久久久久久久影视 | 精品国模一区二区三区欧美 | 亚洲不卡在线视频 | 色视频www在线播放国产人成 | 欧美日本韩国一区二区 | 日韩第一页 | 亚洲伊人久久综合 | 亚洲精品久久久久久一区二区 | 免费av在线网站 | 久久99精品久久久久久 | 99久久久久国产精品免费 | 国产一区在线看 | 中文天堂在线一区 | 麻豆毛片| 欧美中文在线 | av官网在线| 国产一区二区三区 | 中文字幕一区二区三区不卡 | 美女一级a毛片免费观看97 | 一区二区三区在线免费观看视频 |