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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機小白求助74HC595時鐘顯示程序,不知道怎修改才能顯示出來

[復制鏈接]
跳轉到指定樓層
樓主
本人用的STC89C52RC芯片,4位共陽595兩片模塊數碼管
#include <REG52.H>
#define uint unsigned int
#define uchar unsigned char

sbit sda=P2^0;
sbit sclk=P2^2;
sbit rclk=P2^1;


uchar hou,min,sec;


uchar code table[]=        { 0x84, 0xF5, 0x4C, 0x64, 0x35, 0x26, 0x06, 0xF4, 0x04, 0x24, 0x14, 0x07, 0x8E, 0x45, 0x0E, 0x1E, 0x7F, 0xFB, 0xFF };

void rck(void)
{
        rclk=0;
        rclk=1;
        rclk=0;
}

void shift(uchar dat)
{
        uchar i;
        rclk=0;
        dat=table[dat];
        for(i=0;i<8;i++)
        {
                sclk=0;
                sda=(dat<<i)&0x80;
                sclk=1;        
        }
}


void init(void)
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=1;
        ET0=1;
        EA=1;
}
void main(void)                                
{        uchar sec1=255;
    init();
        while(1)
        {
                if(sec1!=sec)
                {
                        shift(sec%10);
                        shift(sec/10);
                        shift(16);
                        shift(min%10);
                        shift(min/10);
                        shift(16);
                        shift(hou%10);
                        shift(hou/10);
                        rck();
                        sec1=sec;
                }
        
        }        
}
void time0(void) interrupt 1
{        
    static uchar tcount;
    TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        tcount++;
        if(tcount==20)
        {
                tcount=0;
                sec++;
                if(sec==60)
                {
                        sec=0;
                        min++;
                        if(min==60)
                        {
                                min=0;
                                hou++;
                                if(hou==24)
                                {
                                        hou=0;
                                }
                        }
                }
        }
}

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

使用道具 舉報

沙發
ID:390416 發表于 2021-5-8 00:05 | 只看該作者
LED16x16點陣 89單片機+四個74HC595的 程序源碼原理圖 http://www.zg4o1577.cn/bbs/dpj-200961-1.html
回復

使用道具 舉報

板凳
ID:213173 發表于 2021-5-8 06:52 | 只看該作者


  1. #include <REG52.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit sda =P2^0;
  5. sbit sclk=P2^2;
  6. sbit rclk=P2^1;

  7. uchar hou=12,min,sec;
  8. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x7f};//共陽數碼管段碼"0~f-."
  9. uchar code wela[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//共陽數碼管位碼
  10. uchar dis_buf[]={0,0,0xbf,0,0,0xbf,0,0};//顯示緩存

  11. void rck(void)
  12. {
  13.         rclk=1;
  14.         rclk=0;
  15. }

  16. void shift(uchar dat)
  17. {
  18.         uchar i;
  19.         for(i=0;i<8;i++)
  20.         {
  21.                 sda=dat&0x80;//提取最高位
  22.                 sclk=1;        
  23.                 sclk=0;
  24.                 dat<<=1;
  25.         }
  26. }
  27. void DisplayScan()
  28. {
  29.         static uchar i=0;
  30.         shift(wela[i]);//送位碼
  31.         shift(dis_buf[i]);//送段碼
  32.         rck();//鎖存
  33.         i=++i%8;//循環掃描計數
  34. }

  35. void init(void)
  36. {
  37.         TMOD=0x01;
  38.         TH0=(65536-50000)/256;
  39.         TL0=(65536-50000)%256;
  40.         TR0=1;
  41.         ET0=1;
  42.         EA=1;
  43. }
  44. void main(void)                                
  45. {
  46.         uchar sec1=255;
  47.         init();
  48.         while(1)
  49.         {
  50.                 if(sec1!=sec)
  51.                 {
  52.                         dis_buf[7]=table[sec%10];
  53.                         dis_buf[6]=table[sec/10];
  54.                         dis_buf[4]=table[min%10];
  55.                         dis_buf[3]=table[min/10];
  56.                         dis_buf[1]=table[hou%10];
  57.                         dis_buf[0]=table[hou/10];
  58.                         sec1=sec;
  59.                 }
  60.                 DisplayScan();
  61.         }
  62. }
  63. void time0(void) interrupt 1
  64. {        
  65.         static uchar tcount;
  66.         TH0=(65536-50000)/256;
  67.         TL0=(65536-50000)%256;
  68.         tcount++;
  69.         if(tcount==20)
  70.         {
  71.                 tcount=0;
  72.                 sec++;
  73.                 if(sec==60)
  74.                 {
  75.                         sec=0;
  76.                         min++;
  77.                         if(min==60)
  78.                         {
  79.                                 min=0;
  80.                                 hou++;
  81.                                 if(hou==24)
  82.                                 {
  83.                                         hou=0;
  84.                                 }
  85.                         }
  86.                 }
  87.         }
  88. }

復制代碼



回復

使用道具 舉報

地板
ID:332444 發表于 2021-5-8 08:19 | 只看該作者
回復

使用道具 舉報

5#
ID:155507 發表于 2021-5-8 15:41 | 只看該作者

4位共陽595兩片模塊數碼管


  1. #include <REG52.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit sda =P2^0;
  5. sbit sclk=P2^2;
  6. sbit rclk=P2^1;

  7. uchar hou=12,min=32,sec=40;
  8. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x7f};//共陽數碼管段碼"0~f-."
  9. uchar code wela[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//共陽數碼管位碼
  10. uchar dis_buf[]={0,0,0xbf,0,0,0xbf,0,0};//顯示緩存

  11. void rck(void)
  12. {
  13.         rclk=1;
  14.         rclk=0;
  15. }

  16. void shift(uchar dat)
  17. {
  18.         uchar i;
  19.         for(i=0;i<8;i++)
  20.         {
  21.                 sda=dat&0x80;//提取最高位
  22.                 sclk=1;        
  23.                 sclk=0;
  24.                 dat<<=1;
  25.         }
  26. }
  27. void DisplayScan()
  28. {
  29.         static uchar i=0;
  30.         shift(wela[i]);//送位碼
  31.         shift(dis_buf[i]);//送段碼
  32.         shift(wela[i]);//送位碼
  33.         shift(dis_buf[i+4]);//送段碼

  34.         rck();//鎖存
  35.         i=++i%4;//循環掃描計數
  36. }

  37. void init(void)
  38. {
  39.         TMOD=0x01;
  40.         TH0=(65536-50000)/256;
  41.         TL0=(65536-50000)%256;
  42.         TR0=1;
  43.         ET0=1;
  44.         EA=1;
  45. }
  46. void main(void)                                
  47. {
  48.         uchar sec1=255;
  49.         init();
  50.         while(1)
  51.         {
  52.                 if(sec1!=sec)
  53.                 {
  54.                         dis_buf[7]=table[sec%10];
  55.                         dis_buf[6]=table[sec/10];
  56.                         dis_buf[4]=table[min%10];
  57.                         dis_buf[3]=table[min/10];
  58.                         dis_buf[1]=table[hou%10];
  59.                         dis_buf[0]=table[hou/10];
  60.                         sec1=sec;
  61.                 }
  62.                 DisplayScan();
  63.         }
  64. }
  65. void time0(void) interrupt 1
  66. {        
  67.         static uchar tcount;
  68.         TH0=(65536-50000)/256;
  69.         TL0=(65536-50000)%256;
  70.         tcount++;
  71.         if(tcount==20)
  72.         {
  73.                 tcount=0;
  74.                 sec++;
  75.                 if(sec==60)
  76.                 {
  77.                         sec=0;
  78.                         min++;
  79.                         if(min==60)
  80.                         {
  81.                                 min=0;
  82.                                 hou++;
  83.                                 if(hou==24)
  84.                                 {
  85.                                         hou=0;
  86.                                 }
  87.                         }
  88.                 }
  89.         }
  90. }


復制代碼





回復

使用道具 舉報

6#
ID:917199 發表于 2021-5-8 18:48 | 只看該作者
同小白;  是不是應該加個P2=dat?
回復

使用道具 舉報

7#
ID:917199 發表于 2021-5-8 18:55 | 只看該作者
o,我搞錯了,麻煩管理刪掉
回復

使用道具 舉報

8#
ID:57657 發表于 2021-5-8 20:35 | 只看該作者
timerzero 發表于 2021-5-8 18:55
o,我搞錯了,麻煩管理刪掉

點編輯,可以自己刪除
回復

使用道具 舉報

9#
ID:917238 發表于 2021-5-15 21:14 來自手機 | 只看該作者
angmall 發表于 2021-5-8 15:41
4位共陽595兩片模塊數碼管

大神!這個代碼顯示8和6,但數字會跳動,請問哪里還需要修改一下,謝謝
回復

使用道具 舉報

10#
ID:600695 發表于 2021-10-25 03:27 | 只看該作者
復制過去顯示亂碼,6688,找不到原因
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕亚洲欧美 | 青青草免费在线视频 | 午夜免费网站 | av中文在线播放 | 日韩国产在线 | 羞羞视频网站在线观看 | 久久91| 国产精品美女久久久 | 久久久久久九九九九 | 成人一区av偷拍 | 久久久久亚洲av毛片大全 | 久久久做 | 自拍中文字幕 | 国产精品亚洲精品日韩已方 | 97caoporn国产免费人人 | 日韩在线视频一区 | 男女啪啪高潮无遮挡免费动态 | 男女精品网站 | 亚洲淫视频 | 51ⅴ精品国产91久久久久久 | 久久久久中文字幕 | 日本一道本视频 | 免费日本视频 | 青青草这里只有精品 | 国产精品视频二区三区 | 国产欧美精品一区 | 黄视频免费观看 | 亚洲情综合五月天 | 四虎在线观看 | 成人妇女免费播放久久久 | www.久| 久久久婷婷 | 亚洲三区在线观看 | 在线一区视频 | 欧美一级片| 欧美专区在线 | 黄色网页在线观看 | 中文字幕在线第一页 | 碰碰视频| 亚洲精品久久久久中文字幕欢迎你 | 中文字幕在线二区 |