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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

四個16X16點陣拼接成16X64漢字靜態顯示源碼 單片機配12M晶振

[復制鏈接]
跳轉到指定樓層
樓主
ID:341254 發表于 2018-5-30 11:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. //====================================================================================
  2. //1、本程序適用于:由個595驅動的16*16點陣。先發16位陽極列選信號。再發送陰極字節模數據。
  3. //2、本程序,并未使用WQX-51編程技巧,為方便公開,使用傳統編程思路編寫。
  4. //3、 可以直接使用傳統51配12M晶振。
  5. //====================================================================================
  6. #include<STC12C5A60S2.H>
  7. #include<intrins.h>
  8. #define uchar unsigned char
  9. #define uint unsigned int   
  10. sbit HC595_DS=P0^3;                                                                        //74HC595的數據
  11. sbit HC595_SCLK=P0^1;                                                                //74HC595的時鐘
  12. sbit HC595_LCLK=P0^0;                                                                //74HC595的鎖存
  13. uchar code hanzi[10][32]=
  14. {
  15. //五角星
  16.         {        0x00,0x00,0x04,0x00,0x06,0x02,0x07,0x0C,0x07,0xBC,0x07,0xF8,0x0F,0xF8,0x3F,0xF0,0xFF,0xE0,0x3F,0xF0,0x0F,0xF8,0x07,0xF8,0x07,0xBC,0x07,0x0C,0x06,0x02,0x04,0x00                },
  17. //祁
  18.         {        0x10,0x20,0x10,0x40,0x10,0x80,0x91,0x00,0x73,0xFF,0x15,0x00,0x18,0x80,0x00,0x00,0x7F,0xFF,0x40,0x10,0x42,0x08,0x4D,0x04,0x70,0x88,0x00,0x70,0x00,0x00,0x00,0x00                },
  19. //緒
  20.         {        0x04,0x44,0x0C,0xC6,0x35,0x44,0xC6,0x48,0x0C,0x68,0x02,0x48,0x22,0x80,0x23,0xFF,0x22,0x92,0xFE,0x92,0x2A,0x92,0x32,0x92,0x23,0xFF,0x46,0x80,0x02,0x00,0x00,0x00                },
  21. //電
  22.         {        0x00,0x00,0x1F,0xE0,0x12,0x40,0x12,0x40,0x12,0x40,0x12,0x40,0xFF,0xFC,0x12,0x42,0x12,0x42,0x12,0x42,0x12,0x42,0x3F,0xE2,0x10,0x02,0x00,0x0E,0x00,0x00,0x00,0x00                },
  23. //子
  24.         {        0x01,0x00,0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x47,0xFE,0x45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x00,0x00                },
  25. //黑桃
  26.         {         0x00,0x00,0x03,0xC0,0x07,0xE0,0x0F,0xF0,0x1F,0xF0,0x3F,0xE1,0x7F,0xC3,0xFF,0xFF,0xFF,0xFF,0x7F,0xC3,0x3F,0xE1,0x1F,0xF0,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x00,0x00                },
  27. //紅心
  28.         {        0x00,0x00,0x07,0x80,0x0F,0xC0,0x1F,0xE0,0x1F,0xF0,0x1F,0xF8,0x0F,0xFC,0x07,0xFE,0x07,0xFE,0x0F,0xFC,0x1F,0xF8,0x1F,0xF0,0x1F,0xE0,0x0F,0xC0,0x07,0x80,0x00,0x00                },
  29. //梅花
  30.         {         0x00,0x00,0x00,0xE0,0x01,0xF0,0x03,0xF8,0x33,0xF8,0x79,0xF1,0xFD,0xE3,0xFF,0xFF,0xFF,0xFF,0xFD,0xE3,0x79,0xF1,0x33,0xF8,0x03,0xF8,0x01,0xF0,0x00,0xE0,0x00,0x00                },
  31. //方片
  32.         {        0x00,0x00,0x01,0x00,0x03,0x80,0x07,0xC0,0x0F,0xE0,0x1F,0xF0,0x3F,0xF8,0x7F,0xFC,0xFF,0xFE,0x7F,0xFC,0x3F,0xF8,0x1F,0xF0,0x0F,0xE0,0x07,0xC0,0x03,0x80,0x01,0x00                },
  33. //花點               
  34.         {        0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55,0xAA,0xAA,0x55,0x55                }
  35.         };
  36. uchar xdata Mould[8];                                                                  //控制該列的取模值,低電平亮燈,每個模組16行,占2字節
  37. uchar xdata upright[8];                                                                //控制某一列,高電平亮燈,每個模組16列,占2字節
  38. uchar xdata LED2X64[130];                                                        //開辟緩存空間,被定時器隨時調用。每列兩個字節,開發板總共64列。加2個移位。

  39. void Timer0_Init()                                                                        //定時器配置:16位定時器,1.25ms顯示1列,幀率50幀。
  40. {
  41.         TMOD&=0Xf0;
  42.         TMOD|=0X01;
  43.         //TL0=0xfb;                                                                                //???????1.25ms,STC??1T???51????
  44.         //TH0=0xf2;                                                                                //???????1.25ms,STC??1T???51????
  45.         TL0=0x1E;                                                                                //???????1.25ms,??12T?????8951????
  46.         TH0=0xFB;                                                                                //???????1.25ms,??12T?????8951????               
  47.         ET0=1;
  48.         TR0=1;
  49.         EA=1;
  50. }
  51. void HC595_Write()                                                                        //74HC595發送數據。
  52. {
  53.         uchar i,j;
  54.         HC595_DS=1;
  55.         HC595_SCLK=1;
  56.         HC595_LCLK=0;
  57.         for(j=4;j>0;j--)                                                                //4塊點陣模組,每個模組有4片595芯片。
  58.         {
  59.                 for(i=0;i<8;i++)                                                         //發送給每個模組的 U4 ,高電平整列可以亮,低電平整列滅。
  60.                 {
  61.                         HC595_SCLK=0;                                                        //時鐘拉低
  62.                         HC595_DS=(upright[j*2-1]&0x80);                  //從最后一個字節開始,先高位后低位。
  63.                         upright[j*2-1]<<=1;                                                //字節左移
  64.                         HC595_SCLK=1;                                                        //時鐘上升沿拷貝
  65.                 }
  66.                 for(i=0;i<8;i++)                                                        //發送給每個模組的 U3 ,高電平整列可以亮,低電平整列滅。
  67.                 {
  68.                         HC595_SCLK=0;
  69.                         HC595_DS=(upright[j*2-2]&0x80);  
  70.                         upright[j*2-2]<<=1;
  71.                         HC595_SCLK=1;
  72.                 }
  73.                 for(i=0;i<8;i++)                                                        //發送給每個模組的 U2 ,低電平整行可以亮,高電平整行全滅。
  74.                 {
  75.                         HC595_SCLK=0;
  76.                         HC595_DS=(Mould[j*2-1]&0x80);  
  77.                         Mould[j*2-1]<<=1;
  78.                         HC595_SCLK=1;
  79.                 }
  80.                 for(i=0;i<8;i++)                                                        //發送給每個模組的 U1 ,低電平整行可以亮,高電平整行全滅。
  81.                 {
  82.                         HC595_SCLK=0;
  83.                         HC595_DS=(Mould[j*2-2]&0x80);  
  84.                         Mould[j*2-2]<<=1;
  85.                         HC595_SCLK=1;
  86.                 }
  87.         }
  88.         HC595_LCLK=1;                                                                        //鎖存脈沖信號,上升沿。
  89.         HC595_DS=1;                                                                                //延時
  90.         HC595_LCLK=0;                                                                        //鎖存脈沖信號復位。
  91. }
  92. void Timer0_Routnie (void) interrupt 1                                //定時器中斷處理,1.25ms一次。
  93. {
  94.         uchar i;       
  95.         static uint kkk=0x0001;                                                        //用于16列輪流控制
  96.         //TL0=0xfb;                                                                                //???????1.25ms,STC??1T???51????
  97.         //TH0=0xf2;                                                                                //???????1.25ms,STC??1T???51????
  98.         TL0=0x1E;                                                                                //???????1.25ms,??12T?????8951????
  99.         TH0=0xFB;                                                                                //???????1.25ms,??12T?????8951????
  100.        
  101.         Mould[7]=~LED2X64[i+97];                                                //i=0,把緩存的第97號字節發送到第四個模組的最左邊的下8位。
  102.         Mould[6]=~LED2X64[i+96];                                                //i=0,把緩存的第96號字節發送到第四個模組的最左邊的上8位。
  103.         Mould[5]=~LED2X64[i+65];                                                //i=0,把緩存的第65號字節發送到第三個模組的最左邊的下8位。       
  104.         Mould[4]=~LED2X64[i+64];                                                //i=0,把緩存的第64號字節發送到第三個模組的最左邊的上8位。
  105.         Mould[3]=~LED2X64[i+33];                                                //i=0,把緩存的第33號字節發送到第二個模組的最左邊的下8位。
  106.         Mould[2]=~LED2X64[i+32];                                                //i=0,把緩存的第32號字節發送到第二個模組的最左邊的上8位。
  107.         Mould[1]=~LED2X64[i+1];                                                        //i=0,把緩存的第01號字節發送到第一個模組的最左邊的下8位。
  108.         Mould[0]=~LED2X64[i+0];                                                        //i=0,把緩存的第00號字節發送到第一個模組的最左邊的上8位。
  109.        
  110.         upright[7]=kkk/256;                                                                //16位變量KKK,取高8位?刂频谒膫模組的0~7列。
  111.         upright[6]=kkk%256;                                                                //16位變量KKK,取低8位?刂频谒膫模組的8~15列。
  112.         upright[5]=kkk/256;                                                                //16位變量KKK,取高8位?刂频谌齻模組的0~7列。
  113.         upright[4]=kkk%256;                                                                //16位變量KKK,取低8位?刂频谌齻模組的8~15列。
  114.         upright[3]=kkk/256;                                                                //16位變量KKK,取高8位?刂频诙䝼模組的0~7列。
  115.         upright[2]=kkk%256;                                                                //16位變量KKK,取低8位?刂频诙䝼模組的8~15列。
  116.         upright[1]=kkk/256;                                                                //16位變量KKK,取高8位。控制第一個模組的0~7列。
  117.         upright[0]=kkk%256;                                                                //16位變量KKK,取低8位?刂频谝粋模組的8~15列。
  118.        
  119.         kkk=_irol_(kkk,1);                                                                //循環控制0~16列
  120.         i++;i++;
  121.         i=i%32;
  122.         HC595_Write();                                                                        //595的緩存Mould[8]、upright[8],得到數據后,立馬發送到芯片
  123. }

  124. void main()                                                                                           //主函數
  125. {
  126.         uchar k=0,num=0,ww=0;
  127.         uint timer=50000;
  128.         Timer0_Init();
  129.         for(k=0;k<128;k++)
  130.         {
  131.                 LED2X64[k]=hanzi[k/32+1][k%32];                         //把要顯示的內容寫入緩存
  132.         }
  133.         while(1)                                                                                   //大循環
  134.         {
  135.                
  136.         }
  137. }
復制代碼

所有資料51hei提供下載:

點陣16X16 四個拼接成16X64 漢字靜態顯示 傳統低速單片機 配12M晶振.rar (42.91 KB, 下載次數: 53)


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

使用道具 舉報

沙發
ID:522724 發表于 2019-5-10 10:44 | 只看該作者
有仿真嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区亚洲 | 久久精品免费 | 久久久国产一区二区三区 | 色婷婷综合久久久中字幕精品久久 | 国精日本亚洲欧州国产中文久久 | 国产毛片毛片 | 91精品久久 | 国产国产精品久久久久 | 欧美成人精品激情在线观看 | 高清成人免费视频 | 欧美精品网站 | 精品国产一区二区在线 | 91国自产 | 国产做a爱片久久毛片 | 国产 日韩 欧美 中文 在线播放 | 九九伊人sl水蜜桃色推荐 | 天天操天天插天天干 | 女人天堂av| 国精产品一区二区三区 | 成人av鲁丝片一区二区小说 | 日韩精品视频在线 | 瑟瑟免费视频 | 久久久成人免费一区二区 | 欧美一级片a | 国产精品一二三区 | 国产精品视频一区二区三区不卡 | 欧美a在线 | 久久久久国产一区二区三区四区 | 欧美性生交大片免费 | 日本一卡精品视频免费 | 日韩1区2区 | 日韩在线中文字幕 | 综合精品| www.99热| 中文字幕电影在线观看 | 99久久精品视频免费 | 不卡欧美 | 在线观看免费高清av | 97国产一区二区精品久久呦 | 狠狠婷婷综合久久久久久妖精 | 免费精品 |