上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
殿上欢,小说阅读网站

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁 設為首頁 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠聘英才       大學計劃        關于我們       技術(shù)論壇
  您的當前位置:ADSP開源社區(qū) >> 技術(shù)中心 >> Blackfin 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導航
ADI DSP仿真器
SigmaDSP開發(fā)板
ADI A2B總線開發(fā)板
SHARC DSP開發(fā)板
銷售網(wǎng)絡
Blackfin  
bf533通過SPI 設置Nokia 5110(普通方式)
[ 作者: ] [ 來源:ADSP開源社區(qū) ] [ 發(fā)布時間:2011-11-22 ]

最近閑來無事 把bf533的外圍接口學習一下,通過SPI的總線設置一下Nokia 5110,這款液晶是我買430時帶的 自己寫下底層驅(qū)動 BF533上有SPI接口 這就省了很多麻煩事。這里先用一般的方式寫下驅(qū)動。一會再用DMA的方式寫一下。因為主要是學習DSP的外設,所以液晶只是配置好,并沒有設置漢字 圖片的讀寫,這些東西不值得我浪費時間了。本著LINUX的開放源碼原則,所有函數(shù)如下,保證沒有BUG.

現(xiàn)在開始:

//==============================================

//

//Init.c 文件

//接口方式 RST<->PF3 CE<->PF4 DC<->PF1

//DIN<->MOSI CLK<->SPI_C 其他的vcc gnd就不用我說了吧

//

//==============================================

#include <head.h>

void Init_EBIU(void)
{
*pEBIU_AMBCTL0 = 0x7bb07bb0;
*pEBIU_AMBCTL1 = 0x7bb07bb0;
*pEBIU_AMGCTL = 0x000f;
}

void SPI_lcd_Init(void)
{
    int j;
    *pFIO_FLAG_C =0x0008;    //rst
   
    *pFIO_FLAG_S =0x0008;    //rst
for (j=0; j<0xaff0; j++) asm("nop;");  
   
    *pSPI_FLG = FLS4;               //ce信號
    *pSPI_BAUD = 16; // 5MHz
    *pSPI_CTL = 0x01 | SIZE | MSTR;
    *pSPI_CTL = (*pSPI_CTL | SPE);
   
    for (j=0; j<0xaff0; j++) asm("nop;");

SPI_send_data(0x21,0);
SPI_send_data(0xc8,0);
SPI_send_data(0x06,0);
SPI_send_data(0x13,0);
SPI_send_data(0x20,0);    //功能指令
LCD_clear();
SPI_send_data(0x0c,0);
  
    for (j=0; j<0xaff0; j++) asm("nop;");

}
//SPI send a word function
void SPI_send_data(unsigned short data,unsigned short command)
{
    if (command==0) *pFIO_FLAG_C=0x02;
    else     *pFIO_FLAG_S=0x02;
*pSPI_TDBR = data;
while ((*pSPI_STAT & 0x0001) == 0) ;
}

//=====================================================
//
//LCD.C文件
//
//=====================================================

#include <head.h>

void LCD_clear(void)
{
    unsigned int i;

    SPI_send_data(0x0c, 0);   
    SPI_send_data(0x80, 0);   

    for (i=0; i<504; i++)
     SPI_send_data(0,1);   
}

void LCD_set_XY(unsigned char X, unsigned char Y)
{
    SPI_send_data(0x40 | Y, 0);   // column
    SPI_send_data(0x80 | X, 0);          // row
}

void LCD_write_char(unsigned char c)
{
    unsigned char line;

    c -=32;                //english_6*8_pixel 中所列的ASCII碼少了第一列

    for (line=0; line<8; line++)
      SPI_send_data(font6x8[c][line], 1);
}

void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
{
    LCD_set_XY(X,Y);
    while (*s)
      {
LCD_write_char(*s);
s++;
      }
}

void LCD_write_chinese_string(unsigned char X, unsigned char Y,
                   unsigned char ch_with,unsigned char num,
                   unsigned char line,unsigned char row)
{
    unsigned char i,n;
   
    LCD_set_XY(X,Y);                             //設置初始位置
   
    for (i=0;i<num;)   //注意FOR 語句的 i 值在什么時候開始加1
      {
      for (n=0; n<ch_with*2; n++)              //寫一個漢字,ch_with=1
         {
           if (n==ch_with)                      //寫漢字的下半部分
             {
               if (i==0) LCD_set_XY(X,Y+1);
               else
                  LCD_set_XY((X+(ch_with+row)*i),Y+1);
              }
           SPI_send_data(write_chinese[line+i][n],1);
         }
      i++;
      LCD_set_XY((X+(ch_with+row)*i),Y);
      }
}

//===========================================

//

//main.c 文件

//

//==========================================

//** file: spi.c
//** target: ADSP-BF533
//** creat time: 2008-8-19

#include <head.h>


//SPI interface funtion

const unsigned char font6x8[][6] =
{
    { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },   // sp
    { 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },   // !
    { 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },   // "
    { 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },   // #
    { 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },   // $
    { 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },   // %
    { 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },   // &
    { 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },   // '
    { 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },   // (
    { 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },   // )
    { 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },   // *
    { 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },   // +
    { 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },   // ,
    { 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },   // -
    { 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },   // .
    { 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },   // /
    { 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },   // 0
    { 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },   // 1
    { 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },   // 2
    { 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },   // 3
    { 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },   // 4
    { 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },   // 5
    { 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },   // 6
    { 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },   // 7
    { 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },   // 8
    { 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },   // 9
    { 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },   // :
    { 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },   // ;
    { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },   // <
    { 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },   // =
    { 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },   // >
    { 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },   // ?
    { 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },   // @
    { 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },   // A
    { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },   // B
    { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },   // C
    { 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },   // D
    { 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },   // E
    { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },   // F
    { 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },   // G
    { 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },   // H
    { 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },   // I
    { 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },   // J
    { 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },   // K
    { 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },   // L
    { 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },   // M
    { 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },   // N
    { 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },   // O
    { 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },   // P
    { 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },   // Q
    { 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },   // R
    { 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },   // S
    { 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },   // T
    { 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },   // U
    { 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },   // V
    { 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },   // W
    { 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },   // X
    { 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },   // Y
    { 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },   // Z
    { 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },   // [
    { 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },   // 55
    { 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },   // ]
    { 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },   // ^
    { 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },   // _
    { 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },   // '
    { 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },   // a
    { 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },   // b
    { 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },   // c
    { 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },   // d
    { 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },   // e
    { 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },   // f
    { 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },   // g
    { 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },   // h
    { 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },   // i
    { 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },   // j
    { 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },   // k
    { 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },   // l
    { 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },   // m
    { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },   // n
    { 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },   // o
    { 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },   // p
    { 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },   // q
    { 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },   // r
    { 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },   // s
    { 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },   // t
    { 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },   // u
    { 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },   // v
    { 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },   // w
    { 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },   // x
    { 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },   // y
    { 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },   // z
    { 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }    // horiz lines
};

char write_chinese[][24]={

//徐
{0x28,0xF4,0x0B,0x50,0x58,0x54,0xF3,0x52,0x54,0x48,0x50,0x00,0x00,0x07,0x00,0x04,0x03,0x04,0x07,0x00,0x01,0x06,0x00,0x00},
//海
{0x99,0x62,0x58,0xC4,0x7B,0x4A,0xEA,0x4A,0xCA,0x7A,0x42,0x00,0x07,0x00,0x00,0x01,0x01,0x01,0x05,0x05,0x07,0x01,0x01,0x00},
//洋
{0x09,0xD2,0x00,0x84,0xA5,0xA6,0xFC,0xA6,0xA5,0xA4,0x84,0x00,0x01,0x07,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00},
};


//=====================================================
//
//ce<->pf4 dc<->pf1 rst<-pf3>
//
//=====================================================

void main(void)
{
    *pFIO_DIR = 0x0f;
    Init_EBIU();
    SPI_lcd_Init();
    LCD_write_english_string(12,3,"NOIt"); //okia 5110 LCD
//   LCD_write_chinese_string(5,0,12,4,0,5);
}

//=================================================

//

//頭文件 HEAD.H

//

//==================================================

#ifndef _HEAD_H
#define _HEAD_H

#include <ccblkfn.h>
#include <cdefBF533.h>
#include <stdio.h>
#include <sys\exception.h>


void Init_EBIU(void);
void SPI_lcd_Init(void);
void SPI_send_data(unsigned short data,unsigned short command);
void LCD_clear(void);
void LCD_set_XY(unsigned char X, unsigned char Y);
void LCD_write_char(unsigned char c);
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s);
void LCD_write_chinese_string(unsigned char X, unsigned char Y,
                   unsigned char ch_with,unsigned char num,
                   unsigned char line,unsigned char row);
extern const unsigned char font6x8[][6];
extern char write_chinese[][24];

#endif

聯(lián)系我們 | 關于我們 | 免責聲明 | 誠征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁版權(quán)屬Open ADSP所有
北京海淀區(qū)中關村大街32號新中發(fā)市場3659 郵編100100
電話 18611096839 
粵ICP備14035876號-1