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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

點陣向上滾動顯示(IAR環境、MSP430)

[復制鏈接]
跳轉到指定樓層
樓主
ID:73477 發表于 2015-2-10 17:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /***********************************************************************************************************
  2.                       實現漢字向上滾動顯示
  3. P5用于譯碼器LM138實現靜態掃描(低四位驅動),P4用于LM595串行轉并行。
  4. LM595采用級聯,可輸入多個字節。DS為LM595的數據口,SH上升沿保存串口數據
  5. ,ST上升沿推DS數據到LM595輸出端,ST下降沿將輸出端鎖存。
  6. 運行時顯示小組標志和“黑客電子小組”向上滾動輸出。
  7. 硬件資源:
  8.   MSP430F155、LM595(兩個)、LM138(兩個)、8*8LED點陣(四個)
  9. ************************************************************************************************************/

  10. #include "msp430x15x.h"

  11. #define    DATADIR     P5DIR                     //                              譯碼器控制設定輸出
  12. #define    CTLDIR      P4DIR                      //                              串行轉并行芯片控制設定輸出
  13. #define    DATAOUT     P5OUT
  14. #define    CTLOUT      P4OUT

  15. #define    SH_L        CTLOUT &= ~BIT0;      //                            SH為低電位
  16. #define    ST_L        CTLOUT &= ~BIT1;      //                            ST為低電位
  17. #define    DS_L        CTLOUT &= ~BIT2;      //                            DS為低電位

  18. #define    SH_H        CTLOUT |= BIT0;       //                               SH為高電位
  19. #define    ST_H        CTLOUT |= BIT1;       //                               ST為高電位
  20. #define    DS_H        CTLOUT |= BIT2;       //                               DS為高電位

  21. typedef unsigned int uint16;

  22. char table[64];   //用于存放其它數組

  23. char tab_0[]={0x00,0x00,0xE0,0x07,0x38,0x1E,0x20,0x04,0x38,0x1C,0x20,0x04,0x38,0x1C,0x20,0x04,
  24. 0x38,0x1C,0x20,0x04,0x38,0x1C,0x20,0x04,0x38,0x1C,0xE0,0x07,0x00,0x00,0x00,0x00};
  25.    //  小組標志
  26. char tab_1[]={0x08,0x00,0xFC,0x3F,0x08,0x21,0x28,0x31,0x38,0x2D,0x48,0x25,0x08,0x21,0xF8,0x3F,
  27. 0x00,0x01,0xFC,0x7F,0x00,0x01,0xFE,0xFF,0x00,0x00,0x90,0x28,0x4C,0x24,0x44,0x44};
  28.    //  *黑*
  29. char tab_2[]={0x00,0x02,0x00,0x01,0xFE,0x7F,0x02,0x48,0xF4,0x8F,0x20,0x08,0x40,0x14,0x80,0x23,
  30. 0x60,0x0C,0x1E,0x30,0xE4,0xCF,0x20,0x08,0x20,0x08,0x20,0x08,0xE0,0x0F,0x20,0x08};
  31.    //  *客*
  32. char tab_3[]={0x00,0x02,0x00,0x02,0x10,0x02,0xF8,0x7F,0x10,0x42,0x10,0x42,0xF0,0x7F,0x10,0x42,
  33. 0x10,0x42,0xF0,0x7F,0x10,0x42,0x00,0x02,0x04,0x02,0x04,0x02,0xFC,0x01,0x00,0x00};
  34.    //  *電*
  35. char tab_4[]={0x00,0x00,0xF0,0x3F,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x04,0x01,0xFE,0xFF,
  36. 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02};
  37.    //  *子*
  38. char tab_5[]={0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x05,0x20,0x05,0x10,0x09,
  39. 0x08,0x09,0x04,0x11,0x04,0x21,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02};
  40.    //  *小*
  41. char tab_6[]={0x00,0x10,0x08,0x10,0xFC,0x21,0x08,0x21,0x08,0x45,0x08,0xF9,0xF8,0x11,0x08,0x21,
  42. 0x08,0x41,0x08,0xFD,0xF8,0x41,0x08,0x01,0x08,0x1D,0x08,0xE1,0xFE,0x47,0x00,0x00};
  43.    //  *組*

  44. void WriteByte(char send)      //         發送一個字節
  45. {
  46.   char temp_wb,i_wb;
  47.   SH_L;
  48.   for(i_wb=0;i_wb<8;i_wb++)
  49.   {
  50.      temp_wb = send & 0X80;
  51.      if(temp_wb==0)   DS_L;
  52.      if(temp_wb!=0)   DS_H;
  53.      SH_H;
  54.      send <<= 1;
  55.      _NOP();                           //            延時一個機器周期
  56.      SH_L;
  57.   }
  58. }

  59. void WriteLine(char *data_wl)
  60. {
  61.   char i_wl;
  62.   ST_L;
  63.   for(i_wl=16;i_wl>0;i_wl--)      //          由于兩個595級聯,故一次寫入兩個字節
  64.   {
  65.     WriteByte(*data_wl++);
  66.     WriteByte(*data_wl++);
  67.     ST_H;                               //            ST上升沿推送數據
  68.     DATAOUT = i_wl-1;           //           掃描第幾行
  69.     ST_L;                                //          ST下降沿鎖存
  70.   }
  71. }

  72. void arrcpy(char *arr1,char *arr2)  //  將數組arr2復制到arr1
  73. {
  74.   char i;
  75.   for(i=0;i<32;i++)
  76.     *arr1++ = *arr2++;
  77. }

  78. void arrcat(char *arr1,char *arr2)  //     將數組arr2連接到arr1后面
  79. {
  80.   char i;
  81.   for(arr1+=32,i=0;i<32;i++)
  82.     *arr1++ = *arr2++;
  83. }

  84. void dis_move(char *p_dis)         //        移動掃描
  85. {
  86.   char i1,i2;
  87.   for(i1=0;i1<17;i1++)
  88.   {
  89.     p_dis = &table[i1*2];
  90.     for(i2=0;i2<10;i2++)
  91.       WriteLine(p_dis);
  92.   }

  93. }

  94. void display()                          //             移動顯示
  95. {
  96.   arrcpy(table,tab_0);           //                將tab_0復制到table
  97.   arrcat(table,tab_1);          //                  將tab_1連接到table
  98.   dis_move(table);                //                將table移動顯示
  99.   arrcpy(table,tab_1);
  100.   arrcat(table,tab_2);
  101.   dis_move(table);  
  102.   arrcpy(table,tab_2);
  103.   arrcat(table,tab_3);
  104.   dis_move(table);   
  105.   arrcpy(table,tab_3);
  106.   arrcat(table,tab_4);
  107.   dis_move(table);      
  108.   arrcpy(table,tab_4);
  109.   arrcat(table,tab_5);
  110.   dis_move(table);      
  111.   arrcpy(table,tab_5);
  112.   arrcat(table,tab_6);
  113.   dis_move(table);  
  114.   arrcpy(table,tab_6);
  115.   arrcat(table,tab_0);
  116.   dis_move(table);  
  117. }

  118. void main( void )
  119. {
  120.   // Stop watchdog timer to prevent time out reset
  121.   WDTCTL = WDTPW + WDTHOLD;
  122.   DATADIR = 0X0F;                            //          設定數據為低四位輸出
  123.   CTLDIR  = 0X07;                             //           設定控制為低三位輸出
  124.   while(1)
  125.   {
  126.     display();
  127.   }  
  128.   
  129. }
復制代碼


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

使用道具 舉報

沙發
ID:119654 發表于 2016-5-9 21:41 | 只看該作者
請問有proteus的仿真圖嗎
回復

使用道具 舉報

板凳
ID:107115 發表于 2016-11-7 18:24 | 只看該作者
1554132135bxvc3541x1432
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜影院在线观看免费 | 久久亚洲精品视频 | 亚洲国产激情 | 亚洲免费在线观看视频 | 久久91| 天堂素人约啪 | 欧美在线一区二区三区四区 | 亚洲国产成人精品女人久久久 | 久久精品国产一区老色匹 | 精品亚洲一区二区三区 | 在线观看久草 | 精品电影 | 国产亚洲成av人片在线观看桃 | 在线欧美视频 | 91成人在线视频 | 涩涩视频在线观看 | 天天天操 | 中国美女一级黄色片 | 伊人中文字幕 | 亚洲精品区 | 国产高清免费在线 | 亚洲国内精品 | 999久久久| 91精品国产一区二区在线观看 | 国产一级视频在线播放 | 久久久久久久综合色一本 | 欧美 日韩 国产 在线 | 欧美一区二区三区大片 | 国产视频黄色 | 亚洲精品久久区二区三区蜜桃臀 | 婷婷综合 | 黄色亚洲 | 久草精品视频 | 亚洲国产成人在线 | 91一区二区三区在线观看 | 亚洲福利 | 欧美一二区 | 久久在线视频 | 日韩欧美一区二区三区在线播放 | 日日摸天天添天天添破 | 日韩综合在线 |