久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
AVR 12864 code
[打印本頁]
作者:
kaka_deng
時間:
2016-5-20 16:23
標題:
AVR 12864 code
最近研究的一些心得!
0.png
(78.75 KB, 下載次數: 129)
下載附件
2016-6-5 00:25 上傳
全部資料下載:
041 LCD12864顯示實驗.zip
(71.8 KB, 下載次數: 26)
2016-5-20 16:22 上傳
點擊文件名下載附件
5
下載積分: 黑幣 -5
/**********************HJ-2G V8.0 專業級AVR開發板例程************************
* 平臺:HJ-2G V8 AVR開發板 +ICC7.22 +ATMETA16
* 名稱:驅動開發板上的12864液晶
* 公司:慧凈電子
* 淘寶:http://shop37031453.taobao.com
* 網站:www.hjmcu.com
* 編寫:HJMCU
* 日期:2008-8-08
* QQ : 121350852 398115088
* 晶振:內部12M晶振
* 說明:免費開源,不提供源代碼分析,有問題直接到慧凈論壇交流
* 論壇:http://hjdz.5d6d.net
******************************************************************/
#include "iom16v.h" //包含型號頭文件
#include "macros.h" //包含"位"操作頭文件
#include "stdio.h" //標準輸入輸出頭文件
#include "AVR_PQ1A.h" //包含自定義常量頭文件
#pragma data:code //以下是字模工具取出的圖片數組
const uchar GDRAM[1024]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x7F,0xFF,0xC0,0xFF,0xFF,0x80,0xFF,0xFF,0x80,0xFF,0xFF,0x83,0xFF,0xFE,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
0x20,0x7F,0xFF,0xC0,0xFF,0xFF,0x80,0xFF,0xFF,0x80,0xFF,0xFF,0x83,0xFF,0xFE,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x2F,0xFF,0xFF,0xFF,0xC1,0xF8,0x7F,0xBF,0xC1,0xE3,0x9C,0x00,0x78,0x1E,0x3F,0xC4,
0x26,0xD9,0xB6,0x6D,0x80,0x60,0x33,0x1B,0x63,0x31,0x8C,0x00,0xCC,0x33,0x1B,0x64,
0x26,0xD9,0xB6,0x6D,0x80,0x60,0x1E,0x1B,0x66,0x31,0x8C,0x01,0x8C,0x61,0x9B,0x64,
0x27,0xF9,0xFE,0x7F,0x80,0x60,0x0C,0x1B,0x66,0x01,0x8C,0x01,0x80,0x61,0x9B,0x64,
0x27,0xF9,0xFE,0x7F,0x80,0x60,0x1E,0x1B,0x66,0x01,0x8C,0x01,0x80,0x61,0x9B,0x64,
0x23,0x30,0xCC,0x33,0x1C,0x6C,0x33,0x1B,0x63,0x31,0x9C,0x70,0xCC,0x33,0x1B,0x64,
0x23,0x30,0xCC,0x33,0x1C,0x78,0x7F,0xBF,0xF1,0xE0,0xFC,0x70,0x78,0x1E,0x3F,0xF4,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
#pragma data:data
/*******************************************
函數名稱: LCD12864_portini
功 能: 初始化12864液晶用到的IO口
參 數: 無
返回值 : 無
/********************************************/
void LCD12864_portini(void)
{
LCDb_CTRL_DDR |= BIT(LCDb_RS)|BIT(LCDb_RW)|BIT(LCDb_E)|BIT(LCDb_RST);//配置控制管腳為輸出
LCDb_DATA_DDR |= 0xFF; //配置數據管腳為輸出
LCDb_SET_RST; //不使能復位端
}
/*******************************************
函數名稱: LCD12864_readbyte
功 能: 從12864液晶讀出一個字節數據或者指令
參 數: DatCmd--為iDat時是數據,為iCmd時是指令
返回值 : dByte--讀回的數據或者指令
/********************************************/
uchar LCD12864_readbyte(uchar DatCmd)
{
uchar dByte;
if (DatCmd == iCmd) //指令操作
LCDb_CLR_RS;
else
LCDb_SET_RS;
LCDb_SET_RW; //讀操作
LCDb_SET_E;
LCDb_DATA_DDR=0x00; //數據總線定義為輸入
dByte=LCDb_DI; //讀數據或者指令
Delayms(1); //時序調整
LCDb_CLR_E;
LCDb_DATA_DDR|=0xff; //數據總線還原為輸出
return dByte;
}
/*******************************************
函數名稱: LCD12864_sendbyte
功 能: 向12864液晶寫入一個字節數據或者指令
參 數: DatCmd--為iDat時是數據,為iCmd時是指令
dByte--為寫入12864的數據或者指令
返回值 : 無
/********************************************/
void LCD12864_sendbyte(uchar DatCmd, uchar dByte)
{
if (DatCmd == iCmd) //指令操作
LCDb_CLR_RS;
else
LCDb_SET_RS;
LCDb_CLR_RW; //寫操作
LCDb_SET_E;
LCDb_DO = dByte; //寫入數據
Delayus(100);
LCDb_CLR_E;
}
/*******************************************
函數名稱: LCD12864_sendstr
功 能: 向12864液晶寫入一個字符串
參 數: ptString--字符串指針
返回值 : 無
/********************************************/
void LCD12864_sendstr(uchar *ptString)
{
while((*ptString)!='\0') //字符串未結束一直寫
{
LCD12864_sendbyte(iDat, *ptString++);
}
}
/*******************************************
函數名稱: LCD12864_clear
功 能: 12864液晶清屏
參 數: 無
返回值 : 無
/********************************************/
void LCD12864_clear(void)
{
LCD12864_sendbyte(iCmd,LCDb_CLS);
Delayms(2);// 清屏指令寫入后,2ms 的延時是很必要的!!!
}
/*******************************************
函數名稱: LCD12864_readBF
功 能: 12864液晶清屏
參 數: 無
返回值 : busy--為1時忙,為0時可以接收指令
/********************************************/
uchar LCD12864_readBF(void)
{
uchar busy;
busy=LCD12864_readbyte(iCmd); //讀回BF標志和地址
if(busy&0x80) //如果忙,返回忙狀態
busy=1;
else //不忙,可以寫入
busy=0;
return busy;
}
/*******************************************
函數名稱: LCD12864_gotoXY
功 能: 移動到指定位置
參 數: Row--指定的行
Col--指定的列
返回值 : 無
/********************************************/
void LCD12864_gotoXY(uchar Row, uchar Col)
{
switch (Row) //選擇行
{
case 2:
LCD12864_sendbyte(iCmd, LCDb_L2 + Col); break; //寫入第2行的指定列
case 3:
LCD12864_sendbyte(iCmd, LCDb_L3 + Col); break; //寫入第3行的指定列
case 4:
LCD12864_sendbyte(iCmd, LCDb_L4 + Col); break; //寫入第4行的指定列
default:
LCD12864_sendbyte(iCmd, LCDb_L1 + Col); break; //寫入第1行的指定列
}
}
/*******************************************
函數名稱: LCD12864_initial
功 能: 12864液晶初始化
參 數: 無
返回值 : 無
/********************************************/
void LCD12864_initial(void)
{
Delayms(100); // 等待內部復位
LCD12864_portini(); //端口初始化
LCD12864_sendbyte(iCmd, LCDb_FUNCTION); //功能、模式設定
while(LCD12864_readBF());
LCD12864_sendbyte(iCmd, LCDb_ON); //打開顯示
while(LCD12864_readBF());
LCD12864_clear(); //清屏
while(LCD12864_readBF());
LCD12864_sendbyte(iCmd, LCDb_ENTRY); // 輸入模式設定
}
/*******************************************
函數名稱: LCD12864_opGDRAM
功 能: 向GDRAM寫入數據,并顯示(完成繪圖功能)
參 數: ptGDRAM--GDRAM數據指針
返回值 : 無
/********************************************/
void LCD12864_opGDRAM(const uchar *ptGDRAM)
{
uchar i,j;
uint x=0;
while(LCD12864_readBF()); //讀忙標志
LCD12864_sendbyte(iCmd,LCDb_EXTCMD1); //擴充指令集,并關閉繪圖顯示
//寫入并顯示上半屏幕
for(i=0;i<32;i++) //行地址計數
{
for(j=0;j<8;j++) //列地址計數
{
LCD12864_sendbyte(iCmd,0x80|i);//輸入行地址
Delayus(10);
LCD12864_sendbyte(iCmd,0x80|j);//輸入列地址
Delayus(10);
LCD12864_sendbyte(iDat,ptGDRAM[x++]); //輸入高位字節數據
Delayus(10);
LCD12864_sendbyte(iDat,ptGDRAM[x++]); //輸入低位字節數據
Delayus(10);
}
}
//寫入并顯示下半屏幕
for(i=0;i<32;i++)
{
for(j=8;j<16;j++)
{
LCD12864_sendbyte(iCmd,0x80|i);//輸入行地址
Delayus(10);
LCD12864_sendbyte(iCmd,0x80|j);//輸入列地址
Delayus(10);
LCD12864_sendbyte(iDat,ptGDRAM[x++]); //輸入高位字節數據
Delayus(10);
LCD12864_sendbyte(iDat,ptGDRAM[x++]); //輸入低位字節數據
Delayus(10);
}
}
Delayus(10);
LCD12864_sendbyte(iCmd,LCDb_EXTCMD2); //打開繪圖顯示
LCD12864_sendbyte(iCmd,LCDb_BASCMD); //還原回基本指令集模式
}
/*******************************************
函數名稱: main
功 能: 12864液晶驅動主程序
參 數: 無
返回值 : 無
/********************************************/
void main(void)
{
uchar i;
Board_init( ); //初始化開發板
LCD12864_initial(); //初始化12864液晶
while(1)
{
LCD12864_clear();
while(LCD12864_readBF());
LCD12864_gotoXY(1,0); //第1行,第1列顯示
LCD12864_sendstr("HJ-2G AVR 開發板");
LCD12864_gotoXY(2,2); //第2行,第3列顯示
LCD12864_sendstr("慧凈制作");
LCD12864_gotoXY(3,0); //第3行,第1列顯示
LCD12864_sendstr("電話:18691419224");
LCD12864_gotoXY(4,1); //第4行,第2列顯示
LCD12864_sendstr("www.hjmcu.com ");
Delayms(2000); //延時等待
}
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91av免费在线观看
|
欧美一区二
|
操出白浆视频
|
精品国产999久久久免费
|
亚洲视频在线观看
|
一级片免费网站
|
午夜一级片
|
天天做天天爱
|
丁香av
|
黑人精品xxx一区一二区
|
国产一区二区在线免费
|
日韩黄色一级
|
欧美一区在线视频
|
精品一区av
|
三级a毛片
|
久久婷婷网
|
国产成人精品一区二区三区视频
|
午夜一级视频
|
99视频在线精品免费观看2
|
久久夜色精品国产欧美乱极品
|
av免费观看网站
|
高清乱码男女免费观看
|
久久久久性
|
国产一区二三区
|
国产亚洲一区二区三区
|
欧美成人一区二区三区片免费
|
精品国产aⅴ麻豆
|
极品新婚夜少妇真紧
|
精品欧美一区二区精品久久
|
婷婷伊人网
|
97在线免费视频
|
精品久久网站
|
av大片在线观看
|
成人在线国产
|
亚洲黄色三级
|
91成人精品一区在线播放
|
日韩一区二区中文字幕
|
欧美理伦
|
欧美日韩国产在线播放
|
青草福利视频
|
国产精品美女久久久
|