AMPIRE12864驅(qū)動程序
寫數(shù)據(jù)驅(qū)動函數(shù)代碼如下:
void write_data(uchar Data)
{
check_busy();
RSRW=2; //R/W=0,RS=1,E=0寫控數(shù)據(jù)準(zhǔn)備
DB=Data; //送出數(shù)據(jù)
RSRW=6; //R/W=0,RS=1,E=1寫數(shù)據(jù)
_nop_();
_nop_();
RSRW=2;
}
1)設(shè)定顯示字符行列地址
在AMPIRE12864上顯示一個字符是必須先設(shè)定其行列地址,設(shè)定行列地址的操作指令見表2-11。
設(shè)定顯示字符行列地址驅(qū)動函數(shù)代碼如下:
void set_xy(uchar x,uchar y)//x為行,y為列
{
if(y>=64)//列地址大于等于64時右屏顯示
{
CS=1;
y=y-64;
}
else//列地址小于64時左屏顯示
{
CS=2;
}
write_cm(0x40|y);寫列地址
_nop_();
write_cm(0xb8|x);寫行地址
}
2)AMPIRE12864的初始化
在對AMPIRE12864操作前須初始化,對其做一些必要的設(shè)置。這些設(shè)置包括:基本指令操作設(shè)置;開顯示,關(guān)光標(biāo),不閃爍;清除顯示;光標(biāo)的移動方向,DDRAM的地址計數(shù)器加1。設(shè)置的操作指令詳見表2-11。
AMPIRE12864初始化驅(qū)動函數(shù)代碼如下:
void LCD_Init()
{
write_cm (0x30);//30H--基本指令操作delayus(4);write_cm (0x0c);//開顯示,關(guān)光標(biāo),不閃爍。delayus(10);write_cm (0x01);//清除顯示delayms(10);
write_cm (0x06);//光標(biāo)的移動方向左,DDRAM的地址計數(shù)器(AC)加1。
delayus(10);
}
3)AMPIRE12864顯示功能模塊
AMPIRE12864顯示功能通過函數(shù)void disp(ucharindex[4][16])實現(xiàn)。入口參數(shù)uchar index[4][16]為字庫索引數(shù)組,給出在指定位置顯示的字符的圖形點(diǎn)陣在uchar code zk[][16]中的索引地址,本系統(tǒng)中所有字符的圖形點(diǎn)陣都由字模提取軟件提取并存儲在圖形點(diǎn)陣數(shù)組ucharcode zk[][16]中。
在voiddisp(uchar index[4][16])調(diào)用了兩個函數(shù):void Disp_hz(uchar R,ucharL,uchar *p)用來顯示漢字,其程序代碼如下:
void Disp_hz(uchar R,uchar L,uchar *p)
{
uchar i;
for(i=0;i<16;i++)
{
set_xy(2*R,16*L+i);//設(shè)定顯示位置
write_data(p[i]);//寫入DDRAM
set_xy(2*R+1,16*L+i);
write_data(p[i+16]);
}
}
入口參數(shù)uchar R,uchar L分別指明字符或漢字的顯示位置的行號和列號,uchar *p為圖形點(diǎn)陣數(shù)組的首地址指針。
voidDisp_zf(uchar R,uchar L,uchar *p)用來顯示ASCII字符,其程序代碼如下:
voidDisp_zf(uchar R,uchar L,uchar *p)
{
uchari;
for(i=0;i<8;i++)
{
set_xy(2*R,8*L+i);
write_data(p[i]);
set_xy(2*R+1,8*L+i);
write_data(p[i+8]);
}
}
入口參數(shù)uchar R,uchar L分別指明字符或漢字的顯示位置的行號和列號,uchar *p為圖形點(diǎn)陣數(shù)組的首地址指針。
AMPIRE12864顯示功能模塊程序代碼如下:
void disp(uchar index[4][16])
{
uchar i,j;
for(i=0;i<4;i++)
for(j=0;j<16;j++)
if(index[i][j]>14)
{
Disp_hz(i,j/2,&zk[index[i][j]][0]);//顯示漢字
j++;
}
else
Disp_zf(i,j,&zk[index[i][j]][0]);//顯示ASCII字符
}
顯示以一整屏為單位,在顯示之前應(yīng)先給index[4][16]賦值以確定液晶顯示器的顯示內(nèi)容。如給index[4][16]以下賦值:
index[0][2]=131;index[0][4]=133;
index[0][6]=135;index[0][8]=137;
index[0][10]=139;index[0][12]=139;
顯示的內(nèi)容如圖3-6所示。
圖3-6液晶顯示器顯示示例
看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
圖3-6液晶顯示器顯示示例
關(guān)鍵詞:
AMPIRE12864驅(qū)動程
相關(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)換器
- 電源管理
- 信號放大器
評論