?? lcd.c
字號:
/* 本例介紹如何Turn ON 及Turn OFF LCD 全部位元組。程式流程如下:
系統初始化→1622 啟動→點亮LCD 全部位元元→關閉HT1622。
電路圖:參照HT1622 的規格書。 */
#include "p33FJ64GP206.h"
#define uchar unsigned char
#define BIAS 0x52
#define SYSEN 0x02
#define LCDON 0x06
#define LCDOFF 0x04
#define cs PORTBbits.RB7
#define wr PORTBbits.RB9
#define dat PORTBbits.RB10
uchar a[32];
void SendBit_1622(uchar data,uchar cnt) //data 的高cnt 位元寫入HT1622,高位在前
{
uchar i;
for(i =0; i <cnt; i ++)
{
if((data&0x80)==0) dat=1;
else dat=0;
wr=0;
Nop();
wr=1;
data<<=1;
}
}
void SendDataBit_1622(uchar data,uchar cnt) //data 的低cnt 位寫入HT1622,低位在前
{
uchar i;
for(i =0; i <cnt; i ++)
{
if((data&0x01)==0) dat=1;
else dat=0;
wr=0;
Nop();
wr=1;
data>>=1;
}
}
void SendCmd(uchar command)
{
cs=0;
SendBit_1622(0x80,4); //寫入旗標碼”100”和9 位command 命令,由於
SendBit_1622(command,8); //沒有使有到更改時鐘輸出等命令,為了編程方便
cs=1; //直接將command 的最高位寫”0”
}
void Write_1622(uchar addr,uchar data)
{
cs=0;
SendBit_1622(0xa0,3); //寫入旗標碼”101”
SendBit_1622(addr,6); //寫入addr 的高6 位元
SendDataBit_1622(data,4); //寫入data 的低4 位元
cs=1;
}
void WriteAll_1622(uchar addr,uchar *p,uchar cnt)
{
uchar i;
cs=0;
SendBit_1622(0xa0,3); //寫入旗標碼”101”
SendBit_1622(addr,6); //寫入addr 的高6 位元
for(i =0; i <cnt; i ++,p++) //連續寫入資料
{
SendDataBit_1622(*p,8);
}
cs=1;
}
void LCD_int(void)
{
AD1PCFGH=0xffff;
AD1PCFGL=0xffff;
TRISBbits.TRISB7=0;
TRISBbits.TRISB9=0;
TRISBbits.TRISB10=0;
// SendCmd(BIAS); //設置偏壓和工作週期
// SendCmd(SYSEN); //打開系統振盪器
SendCmd(LCDON); //打開LCD 偏壓發生器
}
void main (void)
{
SRbits.IPL = 1; //CPU interrupt priority level is 1
CORCONbits.IPL3 = 0; //CPU interrupt priority level is 7 or less
INTCON1bits.NSTDIS = 0; //Interrupt nesting is enabled
SendCmd(LCDON);
uchar i;
for (i=0;i<32;i++)
a[i]=0x80;
LCD_int(); //將口設為輸出
//Write_1622(0x16,0x08); //0x24: (位址)的高6 位有效,
while (1)
{ SendCmd(LCDON); //0x01: (資料)的低4 位元有效
WriteAll_1622(0,a,32); //0:(起始位址)高6 位有效,
//SendCmd(LCDOFF);
} //a:(寫入資料的起始位址)8 位元都有效,
} //6:為寫入的位元組數。連續寫入”123456789a”
// SendCmd(LCDOFF); //關閉LCD 顯示
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -