|
發布時間: 2022-7-11 00:42
正文摘要:LCD12864無字庫 論壇有很多相關的例程 本小白利用空余時間,按照自己的重新寫了一個小白都能看懂的驅動 大佬勿噴,僅供學習交流 下列是部分驅動程序靚照,請查閱 仿真原理圖如下(proteus仿真工程文件可到本 ... |
|
/***************************************************************************** 函數功能:獲取數值長度 入口參數:num 說 明:獲取數值數據的長度 版 本:V1.0 修改時間:2023年3月20日 新 增:無 *****************************************************************************/ unsigned char Get_Num_Len(unsigned long num) { unsigned int len = 0; //初始長度為0 for(; num > 0; ++len) //判斷num是否大于0,否則長度+1 num /= 10; //使用除法進行運算,直到num小于1 return len; //返回長度的值 } /***************************************************************************** 函數功能:變量顯示函數 入口參數:X,Y,num,len 說 明:在第X行的第Y個位置顯示len個num數值 版 本:V1.2 修改時間:2022年7月10日 新 增:自動計算變量長度 最大計數99999 *****************************************************************************/ void LCD12864_Num(unsigned char X,unsigned char Y,unsigned long num) { unsigned char i; unsigned char Len; unsigned char Dis[5]; Len=Get_Num_Len(num); if(Len>4)Dis[Len-5]=num/10000 ; //若數據更大 按照規律寫即可 if(Len>3)Dis[Len-4]=num%10000/1000; if(Len>2)Dis[Len-3]=num%1000/100 ; if(Len>1)Dis[Len-2]=num%100/10 ; if(Len>0)Dis[Len-1]=num%10 ; for(i=0;i<Len;i++) LCD12864_Write_Number(X,Y+(i*6),Dis[i],Num); } |
| 謝謝樓主 我先收藏 慢慢來學習 |
謝謝樓主 我先收藏 慢慢來學習![]() |
shenqiwei 發表于 2023-3-21 03:16 我求求你下載附件后再來評論吧 ![]() |
模塊化編程,少了很多代碼!是故意還是忘記了?![]() 大家都懂的. |
aktuan007 發表于 2022-7-12 22:22 你下載附件 |
陳潤源home 發表于 2022-7-11 13:35 謝謝 請教一下為啥我的編譯有錯誤啊 |
|
本帖最后由 陳潤源home 于 2022-7-11 14:16 編輯 發現一個Bug /************************************* 函數功能:變量顯示函數 入口參數:X,Y,num *************************************/ 這個函數最大只能顯示32767 我暫時沒找到是什么問題 望各路大佬指導一下 先謝謝各位大佬了 ![]() |
aktuan007 發表于 2022-7-11 12:52 因為 部分頭文件在 12864.h 中引用 |
|
為什么沒有reg。h頭文件 |