單片機(jī)項目之12864實現(xiàn)圓形模擬時鐘顯示_第1頁
單片機(jī)項目之12864實現(xiàn)圓形模擬時鐘顯示_第2頁
單片機(jī)項目之12864實現(xiàn)圓形模擬時鐘顯示_第3頁
單片機(jī)項目之12864實現(xiàn)圓形模擬時鐘顯示_第4頁
單片機(jī)項目之12864實現(xiàn)圓形模擬時鐘顯示_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

QQ 個圓形模擬時鐘,當(dāng)時感覺很炫,于屏幕12864來也來顯示一下呢?12864顯示的強(qiáng)者! 設(shè)計的簡介: LCD12864通常所說的12864LCD顯示塊是所說的點陣液晶顯示模塊,就是由128*64示點都對應(yīng)著有一位二進(jìn)制數(shù),0表示滅,1表示亮。這些點陣信息的RAM顯示點在液晶屏上的位置與其在器中的地址之間的關(guān)系。顯示點在64*64液 單元8個液晶點的顯示信息。和CS2選擇。(20,30)上的液晶點。這是為了使液晶點位置信息與地址的對應(yīng)關(guān)系更直RAM區(qū)稱為頁。即64*64液晶屏的點陣信息在8個頁 ,高低順序取決于制造商)寫入Xpage=2,Yaddress=29的。模的記載方式如圖1所示:1“A” 2你” 這是的取模方 妹子會愿意跟你滴!嘿嘿、

數(shù)字顯示式石英電子鐘表等。 組成。發(fā)條在自由狀態(tài)時是一個螺旋形或S形的彈簧,它的內(nèi)端有一個小孔,套在條軸的 柄頭時,離合輪帶動立輪,立輪又經(jīng)小鋼輪和大鋼輪,使條軸卷緊發(fā)條。棘爪則大鋼輪 **本講標(biāo)題 **功能描述 **作者 **日期 #include<reg51h>#include<intrinsh>#defineucharunsignedchar#defineuint unsignedint#definepi3.#defineCIRCLE_X031 /*************12864LCD引腳定義*************/#defineLCD_12864_DATAP0 sbitLCD_EN_OUT=P2^0;sbitLCD_RW_OUT=P2^1;sbitLCD_RS_OUT=P2^2;sbit sbit sbitWJY_K2_IN=P3^3;sbitWJY_K3_IN=P3^1;sbitWJY_K4_IN=P3^4;char ucharcodemaohao[]{/*- 文字 此字體下對應(yīng)的點陣為:寬x高=8x16 unsignedcharcodewuwu[]={/*- 文字 吳-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodejianjian[]={/*- 文字 鑒-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeyingY[]={/*- 文字 鷹-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeMOMO[]={/*- 文字 模-- 此字體下對應(yīng)的點陣為:寬x高 unsignedcharcodeMINNIN[]={/*- 文字 擬-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeSHISHI[]={/*- 文字 時-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeZHONG[]={/*- 文字 鐘-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeDIAN[]={/*- 文字 電-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeZIZI[]={/*- 文字 子-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeHUAN[]={/*- 文字 歡-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeLELE[]={/*- 文字 樂-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeWUWUL[]={/*- 文字 無-- 此字體下對應(yīng)的點陣為:寬x高=16x16 unsignedcharcodeQIONG[]={/*- 文字 窮-- 此字體下對應(yīng)的點陣為:寬x高=16x16 ucharcode unsigned dis_flag=sbitDQ=P2^0; uchara,b,c,count,num;uintuchartabbjsj[]="時間";uchartabsswd[]="實時溫度";uchartab[]="01:00:00"; 寬度x高度=128x64--*/ **函數(shù)名稱 voiddelay(int**功能描述 **輸入**輸出**全局變量**調(diào)用模塊 **作者 **日期 {{uchari;{}}}**函數(shù)名稱 void //延時1s誤差**功能描述 **輸入**輸出 **作者 **日期 void {unsignedchara,b,c; //ifKeil,requireuse} **輸入 **輸出**作者 **日期 switch {case0:LCD_CS1_OUT=0;LCD_CS2_OUT=1;break;//比如此處如果要在電運行則應(yīng)該改為CS=1;LCD_CS2_OUT=0;case1:default:break;}} bit **輸入**輸出 **全局變量**調(diào)用模塊**作者 **日期 /*bit{ result= LCD_EN= }/*12864**函數(shù)名稱 void**功能描述 **輸入**輸出**全局變量**調(diào)用模塊 **作者 **日期 void{uchar//bit//LCD_RS=//LCD_EN=1;{}**函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量**調(diào)用模塊**作者 **日期 {}

LCD_RS=0;LCD_EN= **函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量**調(diào)用模塊**作者 **日期 { } **函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量**調(diào)用模塊**作者 **日期 {LCD_RS=1;LCD_EN=0; {} /*LCD_RS_OUT=H,LCD_RW_OUT=L,E=高脈沖,D0-D7=數(shù)據(jù)。 /*uchar{uchardat;LCD_RS=1;LCD_EN=LCD_EN=LCD_EN=0; {uchardat; } /*void{LCD_PSB LCD_RST=0; LCD_RST= **函數(shù)名稱void**功能描述 **輸入**輸出**全局變量 **作者 **日期 { } **輸入 **輸出**作者 **日期 {unsignedcharrow,collum,cbite,dat;unsignedchartempH,tempL;{}{}

{}

if{dat|=(1<<y%8){}{

}{

dat&=~(1<<y%8)/*{}{ }}**函數(shù)名稱voiddot(ucharx,uchar**功能描述 **輸入 ucharx,uchary點的位**輸出**全局變量**調(diào)用模塊**作者 **日期 /*voiddot(ucharx,uchar {{}{}**函數(shù)名稱voidDRAW_line_HS(unsignedcharx0,unsignedchary0,unsignedcharx1,unsignedchary1,unsignedcharcolor)**功能描述 **輸入 **輸出**全局變量 **調(diào)用模塊**作者 **日期 voidDRAW_line_HS(unsignedcharx0,unsignedchary0,unsignedcharx1,unsignedchary1,unsignedcharcolor){ /*x軸差值變量 /*y 值方向*/ 值方向*//*決策變量if(x0== /*畫垂直 {if(y0>{dx=y0;y0=y1;y1=}for(dx=y0;dx<y1+1;{ }}if(y0== /*畫水平 {if(x0>{dy=x0;x0=x1;x1=}for(dy=x0;dy<x1+1;{}}dx=x1-/*dy=y1-if(dx>/*x{dx_sym=}{

if(dx<{dx_sym=- } }if(dy> /*判斷y軸方 {}{

dy_sym= if(dy<{dy_sym=- }}dx=dx_sym*/*dx、dydy=dy_sym*dx_x2=dy_x2=/*2dxdy/*使用Bresenham法進(jìn)行畫直 ifdx /*dx>=dyx軸為基準(zhǔn){di=dy_x2-dx;{x0+=dx_sym;if(di<{ di+= /*計算出下一步的決策 }{}}

di+=dy_x2-dx_x2;y0+=dy_sym; /*顯示最后一 } /*對于dx<dy,則使用y軸為基 {di=dx_x2-dy;{y0+=dy_sym;if(di<{}{}}

di+=di+=dx_x2-dy_x2;x0+=dx_sym; /*顯示最后一 }} **函數(shù)名稱voidcircle(intx1,inty1unsignedint**功能描述 **輸入 (,1**輸出**全局變量**調(diào)用模塊**作者 **日期 voidcircle(intx1,inty1,unsignedint{ x=0;y=d= 1- 計算初始值while(x<={/*繪制點(x,y)及其在八分圓中的另外7個對稱 DrawPoint(x1+x,y1+y,1);DrawPoint(x1+y,y1+x,1);DrawPoint(x1-y,y1+x,1);DrawPoint(x1-x,y1+y,1);DrawPoint(x1-x,y1-y,1);DrawPoint(x1-y,y1-x,1);DrawPoint(x1+y,y1-x,1);DrawPoint(x1+x,y1-y,1);if(d<{ }{

d+= /*d的判斷,d+=2*(x-}}**函數(shù)名稱voidDrawHand(charx0,chary0,chara,charb,charc,char**功能描述 **輸入 color指針顏色**輸出**全局變量**調(diào)用模塊**作者 **日期 {char}**函數(shù)名稱**功能描述 **輸出**全局變量**調(diào)用模塊**作者 **日期 {uchari,j;{{}}}**函數(shù)名稱void**功能描述 **輸出**全局變量**調(diào)用模塊**作者 **日期 {ucharpage,row;{{ }}}* * 標(biāo)準(zhǔn)字庫液晶演 數(shù)據(jù)p0,控制**函數(shù)名稱void**功能描述 **輸入**輸出**全局變量**調(diào)用模塊**作者 **日期 { circle(8,8,8);//耳朵左circle(8,8,7);//circle(8,8,5);//耳朵左circle(8,8,4);// );//circle(54,8,8耳朵右);//circle(54,8,5耳朵右);// DRAW_line_HS(45,2,55,12,1);//1點到二點的連線 //10點到11點的連線DRAW_line_HS(8,51,15,58,1);//10點到11點的連線DRAW_line_HS(45,60,56,49,1);//10點到11點的連線 }/*voidsfm(ucharadd,uchar{ucharsfm1,sfm2; }void{ucharfen1,fen2;}**函數(shù)名稱void**功能描述 **輸入**輸出**全局變量**調(diào)用模塊**作者 **日期 voidkeyscan(){ET0=0;{//ET0=DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,0);//消除秒針位置DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1);//顯示新的分針位置 //ET0=}{ DrawHand(CIRCLE_X0,CIRCLE_Y0,25,a,6,1);//顯示秒針位置DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1顯示新的分針位置//ET0=}{ET0=0; DrawHand(CIRCLE_X0,CIRCLE_Y0,20,b,6,1顯示新的分針位置ET0=1; }ET0=}{ uchar

}voiddelay18b20(unsignedchari){}void {DQ DQ=0; DQ=1; }**函數(shù)名稱uchar**功能描述 一個字節(jié)的數(shù)據(jù)readabyte**輸入**輸出**全局變量**調(diào)用模塊**作者 **日期 uchar {uchari =0;uchardat=0;{DQ dat>>= DQ 15us {dat|=0x80; 行處理,保持為0} }return}**函數(shù)名稱voidWrite_One_Byte(uchar**功能描述 **輸入**輸出**全局變量**調(diào)用模塊**作者 **日期 {uchari=0;{DQ DQ //dat的最低位賦予給總線,15us內(nèi) DQ=1; dat>>=1;}}uint {floattt; a= b=Read_One_Byte(); temp=b; //先把高八位有效數(shù)據(jù)賦于temptemp temp tt temp 字return}

**函數(shù)名稱 voidDisy(uint **功能描述 **輸入**輸出**全局變量**調(diào)用模塊**作者 **日期 voidDisy(uint {A1=temp/100; A2=temp%100/10; A3=temp%10; lcd_wdat('');}**函數(shù)名稱 **功能描述 **輸入**輸出 **全局變量**調(diào)用模塊**作者 **日期 {uchari;{}{}}**函數(shù)名稱 void **功能描述 **輸入**輸出**全局變量**調(diào)用模塊**作者 **日期 voidCHECK_busy()//讀“忙”函數(shù)數(shù)據(jù)線的最DB71則{while(P0&0x80);}**函數(shù)名稱 **功能描述 **輸入 ucharscreen(選擇屏幕0:全屏1:左半屏2:右半屏 **輸出**全局變量**調(diào)用模塊**作者 **日期 voidSEL_SCREN(ucharscreen)//{{case0:LCD_CS1_OUT=0;LCD_CS2_OUT=0;break;//全屏}}**函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量 **調(diào)用模塊**作者 **日期 { 0鎖存有效數(shù)}**函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量**調(diào)用模塊 **作者 **日期 //LCD128648頁,一頁是8{ }**函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量**調(diào)用模塊**作者 **日期 { column= }**函數(shù)名稱 **功能描述 **輸入 **輸出**全局變量**調(diào)用模塊**作者 **日期 { 0鎖存有效數(shù) }**函數(shù)名稱 **功能描述 **輸入: **輸出**全局變量**調(diào)

溫馨提示

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

評論

0/150

提交評論