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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:73477 發(fā)表于 2015-2-10 17:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /***********************************************************************************************************
  2.                       實現(xiàn)漢字向上滾動顯示
  3. P5用于譯碼器LM138實現(xiàn)靜態(tài)掃描(低四位驅動),P4用于LM595串行轉并行。
  4. LM595采用級聯(lián),可輸入多個字節(jié)。DS為LM595的數(shù)據(jù)口,SH上升沿保存串口數(shù)據(jù)
  5. ,ST上升沿推DS數(shù)據(jù)到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];   //用于存放其它數(shù)組

  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)      //         發(fā)送一個字節(jié)
  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級聯(lián),故一次寫入兩個字節(jié)
  64.   {
  65.     WriteByte(*data_wl++);
  66.     WriteByte(*data_wl++);
  67.     ST_H;                               //            ST上升沿推送數(shù)據(jù)
  68.     DATAOUT = i_wl-1;           //           掃描第幾行
  69.     ST_L;                                //          ST下降沿鎖存
  70.   }
  71. }

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

  78. void arrcat(char *arr1,char *arr2)  //     將數(shù)組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;                            //          設定數(shù)據(jù)為低四位輸出
  123.   CTLDIR  = 0X07;                             //           設定控制為低三位輸出
  124.   while(1)
  125.   {
  126.     display();
  127.   }  
  128.   
  129. }
復制代碼


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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩午夜精品 | 99pao成人国产永久免费视频 | 日本精品在线一区 | 天天操操操操操 | 亚洲网站在线观看 | 中文字幕在线观看第一页 | 伊人网99 | 亚洲国产一区二区在线 | 日韩亚洲欧美一区 | 三级特黄特色视频 | 亚洲国产日韩欧美 | 在线观看中文字幕 | 欧美在线视频一区二区 | 国产在线色 | 亚洲一区二区视频在线播放 | 视频一区二区在线观看 | 精品久久久久久久 | 狠狠亚洲| 天天干天天操天天射 | 男女羞羞免费视频 | 综合久| 一区二区三区av | 免费a v网站| 国产一区视频在线 | 久久大| 国产一区二区三区网站 | 国产在线一区二区三区 | 日本国产一区二区 | 久久草视频 | 欧美另类视频在线 | 欧美一区二区三区 | 亚洲丝袜天堂 | 国产日韩精品在线 | 欧美日韩成人影院 | 久久精品中文 | 岛国av免费看 | 国产精品国产精品 | 欧美综合国产精品久久丁香 | 久久777 | 黄色国产 | 一区二区三区四区在线 |