亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
點陣向上滾動顯示(IAR環(huán)境、MSP430)
[打印本頁]
作者:
hutians
時間:
2015-2-10 17:46
標題:
點陣向上滾動顯示(IAR環(huán)境、MSP430)
/***********************************************************************************************************
實現(xiàn)漢字向上滾動顯示
P5用于譯碼器LM138實現(xiàn)靜態(tài)掃描(低四位驅(qū)動),P4用于LM595串行轉(zhuǎn)并行。
LM595采用級聯(lián),可輸入多個字節(jié)。DS為LM595的數(shù)據(jù)口,SH上升沿保存串口數(shù)據(jù)
,ST上升沿推DS數(shù)據(jù)到LM595輸出端,ST下降沿將輸出端鎖存。
運行時顯示小組標志和“黑客電子小組”向上滾動輸出。
硬件資源:
MSP430F155、LM595(兩個)、LM138(兩個)、8*8LED點陣(四個)
************************************************************************************************************/
#include "msp430x15x.h"
#define DATADIR P5DIR // 譯碼器控制設定輸出
#define CTLDIR P4DIR // 串行轉(zhuǎn)并行芯片控制設定輸出
#define DATAOUT P5OUT
#define CTLOUT P4OUT
#define SH_L CTLOUT &= ~BIT0; // SH為低電位
#define ST_L CTLOUT &= ~BIT1; // ST為低電位
#define DS_L CTLOUT &= ~BIT2; // DS為低電位
#define SH_H CTLOUT |= BIT0; // SH為高電位
#define ST_H CTLOUT |= BIT1; // ST為高電位
#define DS_H CTLOUT |= BIT2; // DS為高電位
typedef unsigned int uint16;
char table[64]; //用于存放其它數(shù)組
char tab_0[]={0x00,0x00,0xE0,0x07,0x38,0x1E,0x20,0x04,0x38,0x1C,0x20,0x04,0x38,0x1C,0x20,0x04,
0x38,0x1C,0x20,0x04,0x38,0x1C,0x20,0x04,0x38,0x1C,0xE0,0x07,0x00,0x00,0x00,0x00};
// 小組標志
char tab_1[]={0x08,0x00,0xFC,0x3F,0x08,0x21,0x28,0x31,0x38,0x2D,0x48,0x25,0x08,0x21,0xF8,0x3F,
0x00,0x01,0xFC,0x7F,0x00,0x01,0xFE,0xFF,0x00,0x00,0x90,0x28,0x4C,0x24,0x44,0x44};
// *黑*
char tab_2[]={0x00,0x02,0x00,0x01,0xFE,0x7F,0x02,0x48,0xF4,0x8F,0x20,0x08,0x40,0x14,0x80,0x23,
0x60,0x0C,0x1E,0x30,0xE4,0xCF,0x20,0x08,0x20,0x08,0x20,0x08,0xE0,0x0F,0x20,0x08};
// *客*
char tab_3[]={0x00,0x02,0x00,0x02,0x10,0x02,0xF8,0x7F,0x10,0x42,0x10,0x42,0xF0,0x7F,0x10,0x42,
0x10,0x42,0xF0,0x7F,0x10,0x42,0x00,0x02,0x04,0x02,0x04,0x02,0xFC,0x01,0x00,0x00};
// *電*
char tab_4[]={0x00,0x00,0xF0,0x3F,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x04,0x01,0xFE,0xFF,
0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02};
// *子*
char tab_5[]={0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x40,0x05,0x20,0x05,0x10,0x09,
0x08,0x09,0x04,0x11,0x04,0x21,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02};
// *小*
char tab_6[]={0x00,0x10,0x08,0x10,0xFC,0x21,0x08,0x21,0x08,0x45,0x08,0xF9,0xF8,0x11,0x08,0x21,
0x08,0x41,0x08,0xFD,0xF8,0x41,0x08,0x01,0x08,0x1D,0x08,0xE1,0xFE,0x47,0x00,0x00};
// *組*
void WriteByte(char send) // 發(fā)送一個字節(jié)
{
char temp_wb,i_wb;
SH_L;
for(i_wb=0;i_wb<8;i_wb++)
{
temp_wb = send & 0X80;
if(temp_wb==0) DS_L;
if(temp_wb!=0) DS_H;
SH_H;
send <<= 1;
_NOP(); // 延時一個機器周期
SH_L;
}
}
void WriteLine(char *data_wl)
{
char i_wl;
ST_L;
for(i_wl=16;i_wl>0;i_wl--) // 由于兩個595級聯(lián),故一次寫入兩個字節(jié)
{
WriteByte(*data_wl++);
WriteByte(*data_wl++);
ST_H; // ST上升沿推送數(shù)據(jù)
DATAOUT = i_wl-1; // 掃描第幾行
ST_L; // ST下降沿鎖存
}
}
void arrcpy(char *arr1,char *arr2) // 將數(shù)組arr2復制到arr1
{
char i;
for(i=0;i<32;i++)
*arr1++ = *arr2++;
}
void arrcat(char *arr1,char *arr2) // 將數(shù)組arr2連接到arr1后面
{
char i;
for(arr1+=32,i=0;i<32;i++)
*arr1++ = *arr2++;
}
void dis_move(char *p_dis) // 移動掃描
{
char i1,i2;
for(i1=0;i1<17;i1++)
{
p_dis = &table[i1*2];
for(i2=0;i2<10;i2++)
WriteLine(p_dis);
}
}
void display() // 移動顯示
{
arrcpy(table,tab_0); // 將tab_0復制到table
arrcat(table,tab_1); // 將tab_1連接到table
dis_move(table); // 將table移動顯示
arrcpy(table,tab_1);
arrcat(table,tab_2);
dis_move(table);
arrcpy(table,tab_2);
arrcat(table,tab_3);
dis_move(table);
arrcpy(table,tab_3);
arrcat(table,tab_4);
dis_move(table);
arrcpy(table,tab_4);
arrcat(table,tab_5);
dis_move(table);
arrcpy(table,tab_5);
arrcat(table,tab_6);
dis_move(table);
arrcpy(table,tab_6);
arrcat(table,tab_0);
dis_move(table);
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
DATADIR = 0X0F; // 設定數(shù)據(jù)為低四位輸出
CTLDIR = 0X07; // 設定控制為低三位輸出
while(1)
{
display();
}
}
復制代碼
作者:
傻傻噠
時間:
2016-5-9 21:41
請問有proteus的仿真圖嗎
作者:
復印件腹黑攻
時間:
2016-11-7 18:24
1554132135bxvc3541x1432
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1