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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

利用8*8點陣實現0-9的顯示的單片機仿真與源程序

[復制鏈接]
跳轉到指定樓層
樓主
附上實驗結果的截圖,完整電路圖和程序在壓縮包內

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /*8x8LED顯示從0到9數據 */
  2. #include <reg51.h>
  3. #define        uint        unsigned int
  4. #define        uchar        unsigned char

  5. //74HC595 行選
  6. sbit     LOCK  = P2^3;  //禁止輸出
  7. sbit     SCLK  = P2^4;  //時鐘引腳
  8. sbit     DATA  = P2^5;  //數據

  9. //74HC138  列選
  10. sbit    hc138_A   = P2^0;
  11. sbit    hc138_B   = P2^1;
  12. sbit    hc138_C   = P2^2;

  13. //數字字模,10個數字0~9,每個數字8個字節(縱向,正序)
  14. uchar code shuzi[10][8]=
  15.                                                   {
  16.                                                         {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},          //0
  17.                                                     {0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},         //1
  18.                                                         {0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},         //2
  19.                                                         {0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},         //3
  20.                                                         {0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},         //4
  21.                                                         {0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},         //5
  22.                                                         {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},         //6
  23.                                                         {0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},         //7
  24.                                                         {0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},         //8
  25.                                                         {0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00},         //9
  26.                                                   };


  27. //數字字模指針                                                                                                                                                                
  28. uchar col=0;

  29. //第幾個字符           
  30. uchar count=0;

  31. //定時器定時次數               
  32. uchar time = 0;                                                                

  33. //595串行輸入的行數據
  34. uchar d=0;

  35. //8位數據從74HC595的串行輸入,并行輸出
  36. void   dat74595(unsigned char d)
  37. {
  38.    unsigned char i;
  39.    for (i=0;i<8;i++)        //8位數據串行輸入
  40.    {
  41.     SCLK = 0;
  42.     DATA = (bit)(d&0x80);
  43.     SCLK = 1;                 
  44.     d=d<<1;
  45.    }
  46.    DATA = 1;
  47.    LOCK=0;LOCK=1;                //8位數據并行輸出
  48. }

  49. void main(void)
  50. {         
  51.         TMOD=0x01;                                                     //定時器0方式1
  52.         TH0=(65536-5000)/256;                                     //設置定時計數初值,5ms
  53.         TL0=(65536-5000)%256;
  54.           TR0=1;
  55.           ET0=1;                                                  //打開定時器0中斷
  56.           EA=1;

  57.           while(1);
  58. }


  59. /*定時器0中斷服務程序,5ms中斷一次,掃描一列*/
  60. void Timer0Int(void) interrupt 1
  61. {       
  62.         TH0=(65536-5000)/256;      
  63.           TL0=(65536-5000)%256;
  64.   
  65.           switch(col)  //列選通
  66.    {
  67.       case 0:  hc138_C =0;  hc138_B=0;  hc138_A=0;  // 選擇第0列顯示
  68.                break;                              
  69.       case 1:  hc138_C =0;  hc138_B=0;  hc138_A=1;  // 選擇第1列顯示
  70.                       break;
  71.       case 2:  hc138_C =0;  hc138_B=1;  hc138_A=0;   // 選擇第2列顯示
  72.                    break;
  73.       case 3:  hc138_C =0;  hc138_B=1;  hc138_A=1;   // 選擇第3列顯示
  74.                          break;
  75.       case 4:  hc138_C =1;  hc138_B=0;  hc138_A=0;   // 選擇第4列顯示
  76.                          break;
  77.       case 5:  hc138_C =1;  hc138_B=0;  hc138_A=1;   // 選擇第5列顯示
  78.                          break;
  79.       case 6:  hc138_C =1;  hc138_B=1;  hc138_A=0;   // 選擇第6列顯示
  80.                          break;
  81.       case 7:  hc138_C =1;  hc138_B=1;  hc138_A=1;   // 選擇第7列顯示

  82.       default:   break;
  83.         }

  84.         d=shuzi[count][col];           //行,送數字字模
  85.     dat74595(d);                       //把數一位一位的傳給74HC595
  86.           col++;
  87.           if(col==8)
  88.         {
  89.                 col=0;
  90.         }
  91.          
  92.         time++;
  93.         if (time >= 200)                                        //定時200次,1s,每個數字顯示1s
  94.         {
  95.                 time = 0;

  96.                 count++;                                                //準備顯示下一個數字
  97.                 if (count >= 10)
  98.                 {
  99.                         count = 0;
  100.                 }
  101.         }
  102. }
復制代碼


所有資料51hei提供下載:
點陣.zip (61.44 KB, 下載次數: 108)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情一区二区三区 | 爱综合| 国产精品久久久久久久久久久久久 | 亚洲永久精品国产 | 欧美一二三 | 精品av | 国产草草视频 | 在线播放中文字幕 | 特黄色一级毛片 | 国产一级一级毛片 | 成人h视频在线 | 国产精品视频www | 国产无套一区二区三区久久 | 91av在线免费| 久久精品视频91 | 亚洲精品久久久一区二区三区 | 自拍视频一区二区三区 | 欧美一级大片 | 国产日韩一区二区 | 91国内精精品久久久久久婷婷 | 激情综合五月天 | 北条麻妃一区二区三区在线观看 | 91精品国产综合久久福利软件 | 乱码av午夜噜噜噜噜动漫 | 亚洲成人中文字幕 | 亚洲欧美国产一区二区三区 | 精品毛片| 国产视频一二三区 | 日韩一区二区在线观看视频 | 天天躁日日躁狠狠很躁 | 国产成人一区二区 | 午夜视频精品 | 午夜影院在线观看版 | 久热免费在线 | 国产高清在线精品一区二区三区 | 综合久久久久久久 | 中文一区二区 | 久久精品这里精品 | www.欧美.com | 九九热在线视频观看这里只有精品 | 日韩av一区二区在线观看 |