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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5248|回復(fù): 2
收起左側(cè)

點(diǎn)陣向上滾動(dòng)顯示(IAR環(huán)境、MSP430)

[復(fù)制鏈接]
ID:73477 發(fā)表于 2015-2-10 17:46 | 顯示全部樓層 |閱讀模式
  1. /***********************************************************************************************************
  2.                       實(shí)現(xiàn)漢字向上滾動(dòng)顯示
  3. P5用于譯碼器LM138實(shí)現(xiàn)靜態(tài)掃描(低四位驅(qū)動(dòng)),P4用于LM595串行轉(zhuǎn)并行。
  4. LM595采用級(jí)聯(lián),可輸入多個(gè)字節(jié)。DS為LM595的數(shù)據(jù)口,SH上升沿保存串口數(shù)據(jù)
  5. ,ST上升沿推DS數(shù)據(jù)到LM595輸出端,ST下降沿將輸出端鎖存。
  6. 運(yùn)行時(shí)顯示小組標(biāo)志和“黑客電子小組”向上滾動(dòng)輸出。
  7. 硬件資源:
  8.   MSP430F155、LM595(兩個(gè))、LM138(兩個(gè))、8*8LED點(diǎn)陣(四個(gè))
  9. ************************************************************************************************************/

  10. #include "msp430x15x.h"

  11. #define    DATADIR     P5DIR                     //                              譯碼器控制設(shè)定輸出
  12. #define    CTLDIR      P4DIR                      //                              串行轉(zhuǎn)并行芯片控制設(shè)定輸出
  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.    //  小組標(biāo)志
  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ā)送一個(gè)字節(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();                           //            延時(shí)一個(gè)機(jī)器周期
  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--)      //          由于兩個(gè)595級(jí)聯(lián),故一次寫入兩個(gè)字節(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復(fù)制到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)         //        移動(dòng)掃描
  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()                          //             移動(dòng)顯示
  95. {
  96.   arrcpy(table,tab_0);           //                將tab_0復(fù)制到table
  97.   arrcat(table,tab_1);          //                  將tab_1連接到table
  98.   dis_move(table);                //                將table移動(dòng)顯示
  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è)定數(shù)據(jù)為低四位輸出
  123.   CTLDIR  = 0X07;                             //           設(shè)定控制為低三位輸出
  124.   while(1)
  125.   {
  126.     display();
  127.   }  
  128.   
  129. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:119654 發(fā)表于 2016-5-9 21:41 | 顯示全部樓層
請(qǐng)問有proteus的仿真圖嗎
回復(fù)

使用道具 舉報(bào)

ID:107115 發(fā)表于 2016-11-7 18:24 | 顯示全部樓層
1554132135bxvc3541x1432
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久电影 | 国产精品 亚洲一区 | 国产美女一区二区 | 日韩一三区 | 久久精品亚洲精品国产欧美kt∨ | 国产亚洲网站 | 欧美中文在线 | 国产精品爱久久久久久久 | 久久一日本道色综合久久 | 在线观看特色大片免费网站 | 我想看一级黄色毛片 | 天天干天天干 | 中文字幕精品一区二区三区精品 | 久久99精品久久久久久国产越南 | 日本不卡一二三 | 亚洲一区二区三区 | av网站免费看 | 91视频一88av | 99久久久国产精品 | 中文字幕日韩欧美一区二区三区 | 亚洲欧美日韩精品 | 国产精品一区在线 | 三级在线免费 | 久久久久久久久中文字幕 | a级在线观看 | www.久久99| 一区欧美| 亚洲精选一区 | 久久视频免费看 | 精品亚洲一区二区 | 日韩av最新网址 | 中文字幕在线一 | 国产精品久久久久久久7电影 | 国产成人高清 | 日韩伦理一区二区 | 一级做受毛片免费大片 | 在线观看一区 | 人人干在线视频 | 久久蜜桃av一区二区天堂 | 国产精品免费看 | 亚洲视频免费观看 |