12864控制forMSP430
- /*****************************************************************
- //文件名:12864.c
- //描述:該文件定義與12864有關(guān)的各種接口、函數,適用于MSP430F149
- //編寫(xiě)人:小邪@清水
- //版本號:2.01
- *****************************************************************/
- #include
- #include"12864.h"
- #defineucharunsignedchar
- #defineuintunsignedint
- #defineBIT(x)(1<<(x))
- unsignedcharNUM[]={"0123456789."};
- ucharAddress[4][8]={
- {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87},
- {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97},
- {0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f},
- {0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f}
- };
- /*****************************************************************
- //關(guān)于12864的一些宏定義
- //注意:各項數據都要根據實(shí)際使用IO口更改
- *****************************************************************/
- #defineCS0//CS=P3.0
- #defineSID1//SID=P3.1
- #defineCLK2//CLK=P3.2
- #definePORTP3OUT
- #defineDIRP3DIR
- /*************************************************************************
- //名稱(chēng):delay_Nus
- //參數:延時(shí)的時(shí)間n
- //返回值:無(wú)
- //功能:延時(shí)nNs的時(shí)間
- *************************************************************************/
- voiddelay_Nus(uintn)
- {
- uchari;
- for(i=n;i>0;i--)
- _NOP();
- }
- /*************************************************************************
- //名稱(chēng):delay_1ms
- //參數:無(wú)
- //返回值:無(wú)
- //功能:延時(shí)1ms的時(shí)間
- *************************************************************************/
- voiddelay_1ms(void)
- {
- uchari;
- for(i=150;i>0;i--)_NOP();
- }
- /*************************************************************************
- //名稱(chēng):delay_Nms
- //參數:延時(shí)的時(shí)間n
- //返回值:無(wú)
- //功能:延時(shí)1ms的時(shí)間
- *************************************************************************/
- voiddelay_Nms(uintn)
- {
- uinti=0;
- for(i=n;i>0;i--)
- delay_1ms();
- }
- /*************************************************************************
- //名稱(chēng):LcdInit
- //參數:無(wú)
- //返回值:無(wú)
- //功能:初始化12864
- *************************************************************************/
- voidLcdInit(void)
- {
- DIR|=BIT(CLK)+BIT(SID)+BIT(CS);//相應的位端口設置為輸出
- delay_Nms(100);//延時(shí)等待液晶完成復位
- Send(0,0x30);//功能設置:一次送8位數據,基本指令集
- delay_Nus(72);
- Send(0,0x02);//DDRAM地址歸位
- delay_Nus(72);
- Send(0,0x0c);//顯示設定:開(kāi)顯示,不顯示光標,不做當前顯示位反白閃動(dòng)
- delay_Nus(72);
- Send(0,0x01);//清屏,將DDRAM的位址計數器調整為“00H”
- delay_Nus(72);
- Send(0,0x06);//功能設置,點(diǎn)設定:顯示字符/光標從左到右移位,DDRAM地址加1
- delay_Nus(72);
- }
- /*************************************************************************
- //名稱(chēng):Send
- //參數:數據類(lèi)型type:0--控制命令,1--顯示數據,transdata--發(fā)送的數據
- //返回值:無(wú)
- //功能:向12864發(fā)送一個(gè)字節的數據,可用于控制可用于顯示
- *************************************************************************/
- voidSend(uchartype,uchartransdata)
- {
- ucharfirstbyte=0xf8;
- uchartemp;
- uchari,j=3;
- if(type)firstbyte|=0x02;
- PORT|=BIT(CS);
- PORT&=~BIT(CLK);
- while(j>0)
- {
- if(j==3)temp=firstbyte;
- elseif(j==2)temp=transdata&0xf0;
- elsetemp=(transdata<<4)&0xf0;
- for(i=8;i>0;i--)
- {
- if(temp&0x80)PORT|=BIT(SID);
- elsePORT&=~BIT(SID);
- PORT|=BIT(CLK);
- temp<<=1;
- PORT&=~BIT(CLK);
- }//三個(gè)字節之間一定要有足夠的延時(shí),否則易出現時(shí)序問(wèn)題
- if(j==3)delay_Nus(600);
- elsedelay_Nus(200);
- j--;
- }
- PORT&=~BIT(SID);
- PORT&=~BIT(CS);
- }
- /*************************************************************************
- //名稱(chēng):Clear_GDRAM
- //參數:數據類(lèi)型type:0--控制命令,1--顯示數據,transdata--發(fā)送的數據
- //返回值:無(wú)
- //功能:向12864發(fā)送一個(gè)字節的數據,可用于控制可用于顯示
- *************************************************************************/
- voidClear_GDRAM(void)
- {
- uchari,j,k;
- Send(0,0x34);//打開(kāi)擴展指令集
- i=0x80;
- for(j=0;j<32;j++)
- {
- Send(0,i++);
- Send(0,0x80);
- for(k=0;k<16;k++)
- {
- Send(1,0x00);
- }
- }
- i=0x80;
- for(j=0;j<32;j++)
- {
- Send(0,i++);
- Send(0,0x88);
- for(k=0;k<16;k++)
- {
- Send(1,0x00);
- }
- }
- Send(0,0x30);//回到基本指令集
- }
-
關(guān)鍵詞:
12864MSP43
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論