標題:
ILI9325怎么去顯示數(shù)字,用的是C程序
[打印本頁]
作者:
849849849
時間:
2023-4-27 16:05
標題:
ILI9325怎么去顯示數(shù)字,用的是C程序
如題
作者:
heicad
時間:
2023-4-27 17:25
這種情況最好是說你做了什么,會什么,不然給人感覺就像伸手黨,有誰愿意犧牲時間呢? 而且論壇已經(jīng)明令禁止伸手黨,大家都是來51hei學習的,電子工程師愛好者也都反感伸手黨,所以還是重新編輯一下帖子吧,至少說明一下你做了什么,到了什么進度,遇到哪一行具體的代碼或者電路不明白,讓大家?guī)湍惴治?可以先看下大家的帖子都是怎么發(fā)的,問題是怎么解決的:
http://www.torrancerestoration.com/bbs/mcu-h24-1.html
參考:
http://www.torrancerestoration.com/bbs/dpj-78604-1.html
作者:
yzwzfyz
時間:
2023-4-28 10:53
ILI9325顯示數(shù)字,與用不用C語言無關(guān)。
取總決于你將數(shù)碼管的哪些段位點量。
作者:
849849849
時間:
2023-5-1 15:42
#include<reg52.h> #include"LCD_driver.h" unsigned char kp,ti,td; unsigned char rx=102; //2V int y,y1,u; int e0,e1,ei; unsigned int ts; int ri[8]={0,0,0,0,0,0,0,0}; uchar sitx; uchar nump=0,numi=0,numd=0; uchar numsit,numc[9],cnt=0; uchar keyv; void dis8(uchar x, uchar sitx ) { LCD_KeilDrawLine(20+sitx, 200, 27+sitx, 200); LCD_KeilDrawLine(20+sitx, 210, 27+sitx, 210); LCD_KeilDrawLine(20+sitx, 220, 27+sitx, 220); LCD_KeilDrawLine(20+sitx, 200, 20+sitx, 210); LCD_KeilDrawLine(20+sitx, 210, 20+sitx, 220); LCD_KeilDrawLine(27+sitx, 200, 27+sitx, 210); LCD_KeilDrawLine(27+sitx, 210, 27+sitx, 220); if (x==2||x==3||x==5||x==6||x==8||x==0) LCD_DrawLine(20+sitx, 200, 27+sitx, 200); if (x==2||x==3||x==4||x==5||x==6||x==8) LCD_DrawLine(20+sitx, 210, 27+sitx, 210); if (x==2||x==3||x==5||x==6||x==7||x==8||x==0) LCD_DrawLine(20+sitx, 220, 27+sitx, 220); if (x==2||x==6||x==8||x==0) LCD_DrawLine(20+sitx, 200, 20+sitx, 210); if (x==4||x==5||x==6||x==8||x==9||x==0) LCD_DrawLine(20+sitx, 210, 20+sitx, 220); if (x==1||x==3||x==4||x==5||x==6||x==7||x==8||x==9||x==0) LCD_DrawLine(27+sitx, 200, 27+sitx, 210); if (x==1||x==2||x==3||x==7||x==8||x==9||x==0) LCD_DrawLine(27+sitx, 210, 27+sitx, 220); } uchar keyscan() { uchar hsm, ljc, keyvalue; P1=0xf0; // | 1111 - 0000 ljc=P1&0xf0; if(ljc!=0xf0) { delayms(10); ljc=P1&0xf0; if(ljc!=0xf0) { hsm=0xfe; while((hsm&0x10)!=0) { P1=hsm; ljc=P1&0xf0; if(ljc!=0xf0) { keyvalue=(~hsm)+((~(ljc|0x0f))); return(keyvalue); } else hsm=(hsm<<1)|0x01; } } } return(0x00); } void main() { LCD_Init(); Pant(colors[4]>>8 , colors[4]); LCD_CS =0; LCD_DrawLine(10, 10, 310, 10); LCD_DrawLine(10, 10, 10, 230); LCD_DrawLine(10, 230, 310, 230); LCD_DrawLine(310, 10, 310, 230); u=0; ei=0; y=0; y1=0; ts=10; // kp=7;ti=12;td=6; while(cnt!=10) { delayms(100); if(keyscan()!=0x00 ) { keyv=keyscan(); switch(keyv) { case 0x11: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=1;cnt++; } break; case 0x21: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=2; cnt++;} break; case 0x41: if (cnt==2) {cnt=0 ;} if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=3;cnt++; } break; case 0x81: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=4; cnt++; } break; case 0x12: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=5;cnt++; } break; case 0x22: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=6; cnt++;} break; case 0x42: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=7; cnt++; } break; case 0x82: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=8; cnt++;} break; case 0x14: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=9;cnt++; } break; case 0x24: if (cnt==2) {cnt=0; } if (cnt==5) {cnt=3; } if (cnt==8) {cnt=6; } else {numc[cnt]=0; cnt++;} break; case 0x84: cnt=9; break; case 0x18: cnt=0; break; case 0x28: cnt=3; break; case 0x48: cnt=6; break; case 0x88: cnt=10; } nump=numc[0]*10+numc[1]; numi=numc[3]*10+numc[4]; numd=numc[6]*10+numc[7]; dis8(numc[0],0) ; dis8(numc[1],10); dis8(numc[3],30); dis8(numc[4],40); dis8(numc[6],60); dis8(numc[7],70); kp=nump; ti=numi; td=numd; } } while (cnt==10) { e0=rx-y; ei=ei+e0; u=0.18*kp*(e0+ei/ti+td*(e0-e1)/4); // if (u>230) u=230; e1=e0; ri[0]=ri[1]; ri[1]=ri[2]; ri[2]=ri[3]; ri[3]=ri[4]; ri[4]=ri[5]; ri[5]=ri[6]; ri[6]=ri[7]; ri[7]=u; y=0.9*y1+0.1*ri[0]; LCD_DrawLine(ts-4,y1+10 , ts,y+10); y1=y; LCD_DrawPoint(112,ts); // LCD_DrawPoint(y+10,ts); //LCD_DrawPoint(u,ts); if(ts<=306) ts=ts+4; delayms(50); } }
作者:
rayin
時間:
2023-5-2 09:57
ILI9325是點陣型的LCD控制ic, 顯示數(shù)字, 先做一個0-9的字庫, 什么大小, 字型自己挑選. 然后把字庫讀取出來, 通過寫屏函數(shù)(確定要現(xiàn)實的x,y位置)在LCD上顯示出來.
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1