實(shí)驗(yàn) mega16 12864串行驅(qū)動(dòng).doc_第1頁(yè)
實(shí)驗(yàn) mega16 12864串行驅(qū)動(dòng).doc_第2頁(yè)
實(shí)驗(yàn) mega16 12864串行驅(qū)動(dòng).doc_第3頁(yè)
實(shí)驗(yàn) mega16 12864串行驅(qū)動(dòng).doc_第4頁(yè)
實(shí)驗(yàn) mega16 12864串行驅(qū)動(dòng).doc_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

/ICC-AVR application builder : 2015-7-3 10:21:56/ Target : M128/ Crystal: 1.0000Mhz/* 目 的: 建立液晶4x8c使用示例目標(biāo)系統(tǒng): 基于AVR單片機(jī) 應(yīng)用軟件: ICCAVR 版本更新記錄:-實(shí)驗(yàn)內(nèi)容:通過(guò)串行控制使液晶OCM4X8C顯示字符圖像-硬件連接:PD.0-CS / RSPD.1-SID / R/WPD.2-SCLK / EPD.3-PSBPD.4-RST-注意事項(xiàng): 詳見(jiàn)說(shuō)明書(shū)-*/#include #include #define uint unsigned int#define uchar unsigned char#define x1 0x80#define x2 0x88#define y 0x80#define comm 0#define dat 1#define CS_ON setb(PORTD,0)#define CS_OFF clr(PORTD,0)#define STD_ON setb(PORTD,1)#define STD_OFF clr(PORTD,1)#define SCLK_ON setb(PORTD,2)#define SCLK_OFF clr(PORTD,2)/H=并口; L=串口;#define PSB_ON setb(PORTD,3)#define PSB_OFF clr(PORTD,3)/Reset Signal 低電平有效#define RST_ON setb(PORTD,4)#define RST_OFF clr(PORTD,4)#define TURE 1extern char buffer107;void wr_lcd (uchar dat_comm,uchar content);void delay (uint us); #pragma data:datauchar table_1 = 鋤禾日當(dāng)午 汗滴禾下土 誰(shuí)知盤中餐 粒粒皆辛苦 ;uchar table_0 = 鵝鵝鵝 曲項(xiàng)向天歌 白毛浮綠水 紅掌撥青波 ; uchar const table_212 = 0123456789: ;uchar Year_=年;uchar Week_=星;uchar Week1_=期; uchar Month_=月;uchar Day_=日;uchar Hour_=時(shí);uchar Minute_=分;uchar Second_=秒;uchar Regulate_=調(diào);/調(diào)節(jié)uchar ding_=定;uchar shi_=時(shí);uchar kai_=開(kāi);uchar guan_=關(guān);uchar over_=完;uchar one_=一;uchar two_=二;uchar three_=三;uchar fore_=四;uchar five_=五;uchar six_=六;uchar seven_=日;uchar wen_=溫;uchar du_=度;uchar dian_=.;uchar shes_=;uchar maohao_=:;/*-*/void delay (uint us) /delay time while(us-);void delay1 (uint ms) uint i,j; for(i=0;ims;i+) for(j=0;j15;j+) delay(1);/*-初始化-*/void init_lcd (void) RST_ON;/rst=1; PSB_OFF;/psb=0; wr_lcd (comm,0x30); /*30-基本指令動(dòng)作*/ wr_lcd (comm,0x01); /*清屏,地址指針指向00H*/ delay (100); wr_lcd (comm,0x06); /*光標(biāo)的移動(dòng)方向*/ wr_lcd (comm,0x0c); /*開(kāi)顯示,關(guān)游標(biāo)*/*-顯示漢字或字符-*/void chn_disp (uchar *chn) uchar i,j; wr_lcd (comm,0x30); wr_lcd (comm,0x80); for (j=0;j4;j+) for (i=0;i16;i+) wr_lcd (dat,chnj*16+i); /*-上半屏顯示漢字或字符-*/*void chn_disp1 (uchar *chn) uchar i,j; wr_lcd (comm,0x30); wr_lcd (comm,0x80); j=0; for (i=0;i16;i+) wr_lcd (dat,chnj*16+i); wr_lcd (comm,0x90); j=1; for (i=0;i16;i+) wr_lcd (dat,chnj*16+i);/-顯示圖形-void img_disp (uchar *img) uchar i,j; for(j=0;j32;j+) for(i=0;i8;i+) wr_lcd (comm,0x34); wr_lcd (comm,y+j); wr_lcd (comm,x1+i); wr_lcd (comm,0x30); wr_lcd (dat,imgj*16+i*2); wr_lcd (dat,imgj*16+i*2+1); for(j=32;j64;j+) for(i=0;i8;i+) wr_lcd (comm,0x34); wr_lcd (comm,y+j-32); wr_lcd (comm,x2+i); wr_lcd (comm,0x30); wr_lcd (dat,imgj*16+i*2); wr_lcd (dat,imgj*16+i*2+1); wr_lcd (comm,0x36);/-下半屏顯示圖形-void img_disp1 (uchar *img) uchar i,j; for(j=0;j32;j+) for(i=0;i8;i+) wr_lcd (comm,0x34); wr_lcd (comm,y+j); wr_lcd (comm,x2+i); wr_lcd (comm,0x30); wr_lcd (dat,imgj*16+i*2); wr_lcd (dat,imgj*16+i*2+1); wr_lcd (comm,0x36);*/-顯示點(diǎn)陣-void lat_disp (uchar data1,uchar data2) uchar i,j,k,x; x=x1; for(k=0;k2;k+) for(j=0;j16;j+) for(i=0;i8;i+) wr_lcd (comm,0x34); wr_lcd (comm,y+j*2); wr_lcd (comm,x+i); wr_lcd (comm,0x30); wr_lcd (dat,data1); wr_lcd (dat,data1); for(i=0;i8;i+) wr_lcd (comm,0x34); wr_lcd (comm,y+j*2+1); wr_lcd (comm,x+i); wr_lcd (comm,0x30); wr_lcd (dat,data2); wr_lcd (dat,data2); x=x2; wr_lcd (comm,0x36);/*-*/當(dāng)data1=0xff,data2=0xff時(shí),在x0,y0處反白顯示16xl*yl.void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl) uchar i,j; for(j=0;jyl;j+) for(i=0;ixl;i+) wr_lcd (comm,0x34); wr_lcd (comm,y0+j); wr_lcd (comm,x0+i); wr_lcd (comm,0x30); wr_lcd (dat,data1); wr_lcd (dat,data2); wr_lcd (comm,0x36);/-任意位置顯示漢字;或顯示字符(只能在雙數(shù)列)/ 說(shuō)明:顯示漢字或字符/ 入口參數(shù):*chn帶顯示字符數(shù)組/ HANG1顯示的位置/ MOUNT1顯示字符的個(gè)數(shù)void chn_disp_RY (char *chn,uchar HANG1,uchar MOUNT1) uchar i,j; wr_lcd (comm,0x30); wr_lcd (comm,HANG1); j=0; for (i=0;i=4; BCD0=BCD0+0x30; BCD1&=0x0f; BCD1=BCD1+0x30; /寫入顯示數(shù)據(jù)地址 wr_lcd (comm,0x30); wr_lcd (comm,WZ); /如果FH不等于0,先顯示前導(dǎo)符號(hào) if(FH!=0) wr_lcd (dat,FH); /顯示數(shù)據(jù) wr_lcd (dat,BCD0); wr_lcd (dat,BCD1); /-任意位置顯示2位數(shù)字、符號(hào)或1個(gè)漢字/ 說(shuō)明:顯示2位的數(shù)據(jù)/ 入口參數(shù):FH如果FH=0,則說(shuō)明顯示的位置是16的整數(shù)倍/ 如果FH不等于0,則說(shuō)明顯示的位置不是16的整數(shù)倍,需要在前加入半位的符號(hào),F(xiàn)H代表將要加入符號(hào)的編碼/ WZ待顯示數(shù)據(jù)位置/ SZ待顯示的數(shù)據(jù)void fh2_disp(uchar WZ,uchar SZ0,uchar SZ1)/寫入顯示數(shù)據(jù)地址wr_lcd (comm,0x30);wr_lcd (comm,WZ);/顯示數(shù)據(jù)wr_lcd (dat,SZ0);wr_lcd (dat,SZ1);/*-清DDRAM-*/void clrram (void) wr_lcd (comm,0x30); wr_lcd (comm,0x01); delay (180);/*-*/void wr_lcd (uchar dat_comm,uchar content) uchar a,i,j; delay (50); a=content; CS_ON;/cs=1; SCLK_OFF;/sclk=0; STD_ON;/std=1; for(i=0;i5;i+) SCLK_ON;/sclk=1; SCLK_OFF;/sclk=0; STD_OFF;/std=0; SCLK_ON;/sclk=1; SCLK_OFF;/sclk=0; if(dat_comm) STD_ON;/ std=1; /data else STD_OFF;/ std=0; /command SCLK_ON;/sclk=1; SCLK_OFF;/sclk=0; STD_OFF;/std=0; SCLK_ON;/sclk=1; SCLK_OFF;/sclk=0; for(j=0;j2;j+) for(i=0;i4;i+) if(a&0x80)=0x80) STD_ON;/ std=1; /data else STD_OFF;/ std=0; /commanda=a1; /std=CY; SCLK_ON;/sclk=1; SCLK_OFF;/sclk=0; STD_OFF;/std=0; for(i=0;i4)&0x00ff;r=(p&= 0x000f)*625; lat_disp (0x00,0x00); wr_lcd (comm,0x30); wr_lcd (comm,0x98);/第四行顯示 chn_disp_RY(wen_,0x98,2); chn_disp_RY(du_,0x99,2); chn_disp_RY(maohao_,0x9a,1); /wr_lcd (dat,table_2v/1000); /wr_lcd (dat,table_2v/100); wr_lcd (dat,table_2q/10%10 ); wr_lcd (dat,table_2q%10); /chn_disp_RY(dian_,0x9e,2); chn_disp_RY(shes_,0x9c,2); /wr_lcd (dat,table_2(v/10)%10); /wr_lcd (dat,table_2v%10);/時(shí)間設(shè)定/void Tiaozi(char v) / clrram(); lat_disp (0x00,0x00); wr_lcd (comm,0x30); delay1 (800); wr_lcd (comm,0x80);/第一行顯示 秒,分,時(shí),日,月,星期,年 chn_disp_RY(Regulate_,0x80,2);/顯示調(diào)_ :_ _ fh2_disp(0x82,table_210,table_211); delay1 (800); if(v=0x00) chn_disp_RY(Second_,0x81,2);/單獨(dú)顯示漢字 if(v=0x01) chn_disp_RY(Minute_,0x81,2);if(v=0x02) chn_disp_RY(Hour_,0x81,2); if(v=0x03) chn_disp_RY(Day_,0x81,2); if(v=0x04) chn_disp_RY(Month_,0x81,2);if(v=0x05) chn_disp_RY(Week_,0x81,2); if(v=0x06) chn_disp_RY(Year_,0x81,2); if(v=0x07) chn_disp_RY(over_,0x81,2); delay1 (8000);void Tiaoshu(int v) fh2_disp(0x83,table_2v/10,table_2v%10);/定時(shí)設(shè)定/void Dingshi(char v) /clrram(); lat_disp (0x00,0x00); wr_lcd (comm,0x30); delay1 (8000); wr_lcd (comm,0x80);/第一行顯示 秒,分,時(shí),日,月,星期,年 chn_disp_RY(Regulate_,0x80,2);/顯示調(diào)_ :_ _

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論