12864控制forMSP430
- /*****************************************************************
- //文件名:12864.c
- //描述:該文件定義與12864有關(guān)的各種接口、函數(shù),適用于MSP430F149
- //編寫人:小邪@清水
- //版本號(hào):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的一些宏定義
- //注意:各項(xiàng)數(shù)據(jù)都要根據(jù)實(shí)際使用IO口更改
- *****************************************************************/
- #defineCS0//CS=P3.0
- #defineSID1//SID=P3.1
- #defineCLK2//CLK=P3.2
- #definePORTP3OUT
- #defineDIRP3DIR
- /*************************************************************************
- //名稱:delay_Nus
- //參數(shù):延時(shí)的時(shí)間n
- //返回值:無
- //功能:延時(shí)nNs的時(shí)間
- *************************************************************************/
- voiddelay_Nus(uintn)
- {
- uchari;
- for(i=n;i>0;i--)
- _NOP();
- }
- /*************************************************************************
- //名稱:delay_1ms
- //參數(shù):無
- //返回值:無
- //功能:延時(shí)1ms的時(shí)間
- *************************************************************************/
- voiddelay_1ms(void)
- {
- uchari;
- for(i=150;i>0;i--)_NOP();
- }
- /*************************************************************************
- //名稱:delay_Nms
- //參數(shù):延時(shí)的時(shí)間n
- //返回值:無
- //功能:延時(shí)1ms的時(shí)間
- *************************************************************************/
- voiddelay_Nms(uintn)
- {
- uinti=0;
- for(i=n;i>0;i--)
- delay_1ms();
- }
- /*************************************************************************
- //名稱:LcdInit
- //參數(shù):無
- //返回值:無
- //功能:初始化12864
- *************************************************************************/
- voidLcdInit(void)
- {
- DIR|=BIT(CLK)+BIT(SID)+BIT(CS);//相應(yīng)的位端口設(shè)置為輸出
- delay_Nms(100);//延時(shí)等待液晶完成復(fù)位
- Send(0,0x30);//功能設(shè)置:一次送8位數(shù)據(jù),基本指令集
- delay_Nus(72);
- Send(0,0x02);//DDRAM地址歸位
- delay_Nus(72);
- Send(0,0x0c);//顯示設(shè)定:開顯示,不顯示光標(biāo),不做當(dāng)前顯示位反白閃動(dòng)
- delay_Nus(72);
- Send(0,0x01);//清屏,將DDRAM的位址計(jì)數(shù)器調(diào)整為“00H”
- delay_Nus(72);
- Send(0,0x06);//功能設(shè)置,點(diǎn)設(shè)定:顯示字符/光標(biāo)從左到右移位,DDRAM地址加1
- delay_Nus(72);
- }
- /*************************************************************************
- //名稱:Send
- //參數(shù):數(shù)據(jù)類型type:0--控制命令,1--顯示數(shù)據(jù),transdata--發(fā)送的數(shù)據(jù)
- //返回值:無
- //功能:向12864發(fā)送一個(gè)字節(jié)的數(shù)據(jù),可用于控制可用于顯示
- *************************************************************************/
- 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è)字節(jié)之間一定要有足夠的延時(shí),否則易出現(xiàn)時(shí)序問題
- if(j==3)delay_Nus(600);
- elsedelay_Nus(200);
- j--;
- }
- PORT&=~BIT(SID);
- PORT&=~BIT(CS);
- }
- /*************************************************************************
- //名稱:Clear_GDRAM
- //參數(shù):數(shù)據(jù)類型type:0--控制命令,1--顯示數(shù)據(jù),transdata--發(fā)送的數(shù)據(jù)
- //返回值:無
- //功能:向12864發(fā)送一個(gè)字節(jié)的數(shù)據(jù),可用于控制可用于顯示
- *************************************************************************/
- voidClear_GDRAM(void)
- {
- uchari,j,k;
- Send(0,0x34);//打開擴(kuò)展指令集
- 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ù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論