久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4830|回復: 22
打印 上一主題 下一主題
收起左側

單片機12864不帶字庫顯示問題(漢字上半部分和下半部分錯開了)

  [復制鏈接]
跳轉到指定樓層
#
ID:379492 發表于 2018-9-13 10:53 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
我的顯示為什么不正常,錯在了哪里啊?程序如下
  1. #include <reg52.h>
  2. #include <string.h>
  3. #include "zf.h"
  4. #include "io.h"
  5. #define  uchar  unsigned char                  
  6. #define  uint   unsigned int
  7. uchar ye=0,lie=0;
  8. #define DB P0
  9. #define chr_width 7
  10. #define chn_width 15
  11. unsigned char disp_no;
  12. unsigned char position,which;


  13. /*****************************延時*************************/
  14. void delay(uint i)
  15. {
  16.   while(--i);
  17. }  
  18. /****************12864液晶寫數據命令地址函數*****************/
  19. void writedacm(uchar dat,uchar log)        //寫數據 RS=1數據,RS=0命令
  20. {  
  21.         delay(8);      
  22.       
  23.         RW = 0;
  24.         if(log)         RS=1;
  25.         else     RS=0;
  26.         E = 1;
  27.         DB = dat;   
  28.         E = 0;
  29. }
  30. /************************頁列設置*************************/
  31. void set_YL( uchar y, uchar x)  //ye -> 0 : 7 頁 lie -> 0 :63 列
  32. {
  33.    y= y&0x07|0xb8;
  34.    writedacm(y,0);         
  35.    x= x&0x3f|0x40;
  36.    writedacm(x,0);         
  37. }
  38. /*************************12864液晶屏幕選擇函數************/
  39. void setPM(uchar PX) //選擇屏幕( 0-左屏,1-右屏,2-全屏  )
  40. {
  41.    switch(PX){
  42.     case 0 :        CS1 = 0;        CS2 = 1;   break;
  43.     case 1 :        CS1 = 1;    CS2 = 0;   break;
  44.     case 2 :    CS1 = 0;    CS2 = 0;
  45.   }
  46. }
  47. /******************左右屏設置*************************/
  48. void chear()  //清屏(0-清左屏1-清右屏,2-清全屏 ),
  49. {    uchar i,j;
  50.          setPM(2);
  51.          for(i = 0;i <8;i++)
  52.          { set_YL(i,0);   
  53.            for(j = 0;j <64 ; j++)
  54.            writedacm(0x00,1);
  55.          }                                         
  56. }
  57. //****************************************
  58. void SetOnOff(uchar onoff) //1-開顯示 0-關
  59. {
  60. if(onoff == 1){ setPM(2); writedacm(0x3f,0);}  
  61. if(onoff == 0){ setPM(2); writedacm(0x3e,0);}
  62. }

  63. /******************** 12864液晶復位函數******************/
  64. void init_lcd()
  65. {
  66.         Reset = 0; delay(2);  
  67.     Reset = 1; delay(2);      
  68.     chear();           //清屏
  69.     SetOnOff(1) ;
  70.         delay(100);      
  71.         CS1=1;               //剛開始關閉兩屏
  72.         CS2=1;
  73.         delay(100);
  74.         writedacm(0x3e,0);         //顯示關
  75.         writedacm(0xb8,0);         //定義Y坐標
  76.         writedacm(0xC0,0);
  77.         writedacm(0x40,0);   //設定X坐標
  78.         writedacm(0x3f,0);   //顯示開
  79. }  


  80. void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
  81. {
  82.         uchar x,i=0,j=16; //RAMadr表示顯存的物理地址
  83.         uchar page=0;        
  84.         delay(10);
  85.         if (layer) page=2;

  86.         delay(10);
  87.         for (x=x0;x<(x0+width);x++)
  88.         {
  89.             delay(10);
  90.                 setPM(0);//顯示左半屏
  91.             writedacm(0xb8,0);//從第一行開始顯示
  92.                 writedacm(bmp,1);//寫第一行字上半部分
  93.                 i=i+1;        
  94.         }


  95.         for (x=x0;x<(x0+width);x++)
  96.         {
  97.                 delay(10);
  98.                 setPM(0);
  99.                 writedacm(0xb8+1,0);//從第一行開始顯示
  100.                 writedacm(bmp[j],1);//寫第一行字下半部分
  101.                 j=j+1;
  102.         }
  103. }

  104. #define welcome_hanzi 6
  105. void disp_welcome(void)
  106. {
  107.         unsigned char cyc_counter;
  108.         delay(10);
  109.         for(cyc_counter=0; cyc_counter<6; cyc_counter++)
  110.         {
  111.                 delay(10);
  112.                 DrawBmp(16+cyc_counter*chn_width,0,chn_width,chn_font+(cyc_counter+welcome_hanzi)*chn_width*2);
  113.         delay(10);
  114.         };
  115. disp_no = 0x00;
  116. }

  117. /**********************主函數*****************************/
  118. main()
  119. {        
  120.             init_lcd();
  121.                 chear();
  122.                 disp_welcome();
  123.                 while(1);
  124. }                                                           
  125. /***********************************************************/

  126. /*******************下面是字庫摸******************************/

  127. //漢字用的字號是五號字
  128. unsigned char code chn_font[]={
  129. /*
  130. 無(0)  池(1)  流(2)  壓(3)  容(4)  量(5)
  131. 新(6)  鄉(7)  安(8)  科(9)  電(10) 子(11)  ----這里的6個漢字必須是連續的,給顯示公司用
  132. 型(12) 號(13) 異(14) 充(15) 放(16) 次(17)
  133. 數(18) 生(19) 產(20) 額(21) 定(22) 編(23)
  134. 常(24) 滿(25) 低(26) 溫(27) 度(28) 非(29)
  135. 字(30) 日(31) 期(32) 鎘(33) 鎳(34) 鋰(35)

  136. */

  137. /*--  文字:  無0  --*/
  138. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  139. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  140. 0x00,0x22,0x22,0x22,0x22,0x22,0xFE,0x22,0xE2,0x22,0x22,0x23,0x32,0x20,0x00,0x00,
  141. 0x20,0x20,0x10,0x08,0x06,0x01,0x00,0x1F,0x20,0x20,0x20,0x20,0x3C,0x00,

  142. /*--  文字:  池1  --*/
  143. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  144. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  145. 0x10,0x61,0x86,0x60,0x40,0xFC,0x20,0x20,0xFF,0x10,0x10,0xF8,0x10,0x00,0x00,0x02,
  146. 0x3E,0x01,0x00,0x00,0x1F,0x20,0x20,0x27,0x20,0x22,0x23,0x20,0x38,0x00,

  147. /*--  文字:  流2  --*/
  148. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  149. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  150. 0x10,0x61,0x02,0xC6,0x00,0xA4,0x34,0x2D,0xA6,0x24,0xA4,0x34,0x66,0x04,0x00,0x04,
  151. 0x3C,0x03,0x20,0x10,0x0F,0x00,0x00,0x3F,0x00,0x1F,0x20,0x20,0x38,0x00,

  152. /*--  文字:  壓3  --*/
  153. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  154. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  155. 0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x42,0x03,0x02,0x00,0x20,
  156. 0x18,0x07,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x11,0x16,0x10,0x10,0x00,

  157. /*--  文字:  容4  --*/
  158. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  159. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  160. 0x10,0x4C,0x44,0x24,0x94,0x44,0x25,0x26,0x44,0x84,0x14,0x24,0x4C,0x04,0x00,0x04,
  161. 0x04,0x02,0x01,0x3E,0x22,0x22,0x22,0x22,0x22,0x3F,0x01,0x02,0x02,0x00,

  162. /*--  文字:  量5  --*/
  163. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  164. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  165. 0x00,0x20,0x20,0xBE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBF,0x22,0x20,0x00,0x00,
  166. 0x20,0x28,0x2F,0x2A,0x2A,0x2A,0x3F,0x2A,0x2A,0x2A,0x2F,0x28,0x20,0x00,

  167. /*--  文字:  新6  --*/
  168. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  169. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  170. 0x20,0x24,0x2C,0x35,0xE6,0x34,0x2C,0x00,0xFE,0x24,0x24,0xE2,0x33,0x22,0x00,0x10,
  171. 0x09,0x15,0x21,0x1F,0x05,0x29,0x10,0x0F,0x00,0x00,0x3F,0x00,0x00,0x00,

  172. /*--  文字:  鄉7  --*/
  173. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  174. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  175. 0x00,0x00,0x00,0x10,0x18,0x94,0x52,0x31,0x10,0x08,0x04,0xC0,0x00,0x00,0x00,0x00,
  176. 0x20,0x20,0x21,0x21,0x11,0x11,0x09,0x05,0x03,0x01,0x00,0x00,0x00,0x00,

  177. /*--  文字:  安8  --*/
  178. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  179. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  180. 0x40,0x50,0x4C,0x44,0x44,0xC4,0x75,0x46,0x44,0xC4,0x44,0x54,0x4C,0x40,0x00,0x00,
  181. 0x20,0x20,0x20,0x13,0x12,0x0C,0x04,0x06,0x09,0x08,0x10,0x30,0x00,0x00,

  182. /*--  文字:  科9  --*/
  183. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  184. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  185. 0x14,0x14,0x94,0xFE,0x93,0x12,0x00,0x20,0xC4,0x18,0x00,0xFF,0x00,0x00,0x00,0x04,
  186. 0x03,0x00,0x3F,0x00,0x01,0x02,0x02,0x02,0x02,0x02,0x3F,0x01,0x01,0x00,

  187. /*--  文字:  電10  --*/
  188. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  189. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  190. 0x00,0x00,0xF8,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xFC,0x08,0x00,0x00,0x00,
  191. 0x00,0x07,0x02,0x02,0x02,0x1F,0x22,0x22,0x22,0x22,0x23,0x20,0x38,0x00,

  192. /*--  文字:  子11  --*/
  193. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  194. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  195. 0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xF2,0x52,0x4A,0x46,0x43,0x62,0x40,0x00,0x00,
  196. 0x00,0x00,0x00,0x00,0x10,0x20,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  197. /*--  文字:  型12  --*/
  198. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  199. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  200. 0x00,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x00,0x7E,0x80,0x00,0xFF,0x00,0x00,0x00,
  201. 0x21,0x24,0x24,0x24,0x24,0x25,0x3E,0x24,0x24,0x24,0x25,0x30,0x20,0x00,

  202. /*--  文字:  號13  --*/
  203. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  204. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  205. 0x40,0x40,0x40,0x5E,0xD2,0x52,0x52,0x52,0x52,0x52,0x5F,0x42,0x40,0x40,0x00,0x00,
  206. 0x00,0x00,0x02,0x03,0x01,0x11,0x21,0x21,0x11,0x0F,0x00,0x00,0x00,0x00,

  207. /*--  文字:  異14  --*/
  208. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  209. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  210. 0x00,0x00,0x00,0x3E,0xD2,0x52,0x52,0x52,0x52,0xD2,0x5F,0x42,0x70,0x00,0x00,0x22,
  211. 0x22,0x12,0x0A,0x07,0x02,0x02,0x02,0x02,0x3F,0x02,0x02,0x02,0x02,0x00,

  212. /*--  文字:  充15  --*/
  213. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  214. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  215. 0x00,0x04,0x44,0x44,0x64,0xD4,0x4D,0x46,0xC4,0x54,0x64,0xC4,0x06,0x04,0x00,0x00,
  216. 0x20,0x10,0x08,0x04,0x03,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x38,0x00,

  217. /*--  文字:  放16  --*/
  218. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  219. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  220. 0x08,0x08,0xF9,0x4E,0x48,0xC8,0x08,0x20,0xF8,0x0F,0x08,0xF8,0x0C,0x08,0x00,0x20,
  221. 0x18,0x07,0x10,0x10,0x0F,0x20,0x20,0x10,0x09,0x06,0x09,0x10,0x20,0x00,

  222. /*--  文字:  次17  --*/
  223. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  224. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  225. 0x00,0x02,0x8C,0x60,0x98,0x40,0x30,0x0F,0xE8,0x08,0x08,0x28,0x18,0x00,0x00,0x01,
  226. 0x01,0x1F,0x20,0x20,0x10,0x0C,0x03,0x00,0x03,0x04,0x08,0x30,0x10,0x00,

  227. /*--  文字:  數18  --*/
  228. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  229. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  230. 0x08,0x4A,0x2C,0x18,0xFF,0x2C,0x4A,0x28,0xF0,0x0F,0x08,0x88,0x7C,0x08,0x00,0x21,
  231. 0x21,0x15,0x17,0x09,0x0D,0x13,0x20,0x10,0x0B,0x04,0x0B,0x10,0x20,0x00,

  232. /*--  文字:  生19  --*/
  233. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  234. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  235. 0x80,0x40,0x30,0x1E,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x18,0x10,0x00,0x00,0x20,
  236. 0x20,0x20,0x21,0x21,0x21,0x21,0x3F,0x21,0x21,0x21,0x21,0x30,0x20,0x00,

  237. /*--  文字:  產20  --*/
  238. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  239. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  240. 0x00,0x04,0xC4,0x44,0x4C,0x74,0x45,0x46,0x64,0x5C,0x44,0x44,0x44,0x44,0x00,0x20,
  241. 0x18,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  242. /*--  文字:  額21  --*/
  243. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  244. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  245. 0x4C,0x24,0xBC,0x55,0x56,0xB4,0x0C,0xFA,0x0A,0x0E,0xEA,0x0A,0xFB,0x02,0x00,0x02,
  246. 0x01,0x3E,0x12,0x12,0x1E,0x21,0x27,0x10,0x08,0x07,0x08,0x17,0x20,0x00,

  247. /*--  文字:  定22  --*/
  248. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  249. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  250. 0x00,0x10,0x2C,0xA4,0x24,0x24,0x25,0xE6,0x24,0x24,0x24,0x24,0x14,0x0C,0x00,0x20,
  251. 0x10,0x08,0x07,0x08,0x10,0x10,0x3F,0x22,0x22,0x22,0x22,0x20,0x20,0x00,

  252. /*--  文字:  編23  --*/
  253. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  254. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  255. 0x20,0xB8,0x67,0x30,0x00,0xFC,0xD4,0x54,0xD5,0x56,0xD4,0x54,0xDC,0x00,0x00,0x09,
  256. 0x1B,0x09,0x25,0x18,0x07,0x3F,0x02,0x1F,0x02,0x1F,0x22,0x3F,0x00,0x00,

  257. /*--  文字:  常24  --*/
  258. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  259. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  260. 0x20,0x18,0x08,0x0A,0xEC,0xA8,0xA8,0xAF,0xA8,0xA8,0xEC,0x0A,0x28,0x18,0x00,0x00,
  261. 0x00,0x00,0x1E,0x02,0x02,0x02,0x3F,0x02,0x02,0x12,0x1E,0x00,0x00,0x00,

  262. /*--  文字:  滿25  --*/
  263. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  264. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  265. 0x10,0x61,0x86,0x60,0xA4,0xA4,0xA4,0xEF,0xA4,0xE4,0xAF,0xA4,0xB6,0x24,0x00,0x02,
  266. 0x3E,0x01,0x00,0x3F,0x08,0x04,0x03,0x0A,0x07,0x12,0x24,0x1F,0x00,0x00,

  267. /*--  文字:  低26  --*/
  268. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  269. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  270. 0x40,0x20,0xF8,0x07,0x00,0xFC,0x44,0x44,0x44,0xFC,0x42,0x43,0x62,0x40,0x00,0x00,
  271. 0x00,0x3F,0x00,0x00,0x1F,0x10,0x08,0x14,0x21,0x06,0x08,0x10,0x3C,0x00,

  272. /*--  文字:  溫27  --*/
  273. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  274. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  275. 0x10,0x61,0x86,0x60,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7F,0x02,0x00,0x00,0x02,
  276. 0x3E,0x01,0x20,0x3F,0x21,0x21,0x3F,0x21,0x3F,0x21,0x21,0x3F,0x20,0x00,

  277. /*--  文字:  度28  --*/
  278. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  279. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  280. 0x00,0x00,0xFC,0x04,0x14,0x14,0x7C,0x55,0x56,0x54,0x7C,0x14,0x16,0x04,0x00,0x20,
  281. 0x18,0x07,0x20,0x21,0x21,0x13,0x15,0x09,0x15,0x13,0x21,0x20,0x20,0x00,

  282. /*--  文字:  非29  --*/
  283. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  284. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  285. 0x08,0x48,0x48,0x48,0x48,0xFF,0x00,0x00,0xFF,0x48,0x48,0x48,0x4C,0x08,0x00,0x04,
  286. 0x04,0x04,0x04,0x04,0x3F,0x00,0x00,0x3F,0x04,0x04,0x04,0x06,0x04,0x00,

  287. /*--  文字:  字30  --*/
  288. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  289. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  290. 0x00,0x10,0x0C,0x14,0x14,0x14,0x15,0xD6,0x54,0x34,0x14,0x14,0x8C,0x00,0x00,0x01,
  291. 0x01,0x01,0x01,0x01,0x11,0x21,0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,

  292. /*--  文字:  日31  --*/
  293. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  294. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  295. 0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x02,0x00,0x00,0x00,
  296. 0x00,0x00,0x3F,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3F,0x00,0x00,0x00,

  297. /*--  文字:  期32  --*/
  298. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  299. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  300. 0x00,0x04,0xFF,0x94,0x94,0xFF,0x04,0x00,0xFE,0x12,0x12,0x12,0xFF,0x02,0x00,0x22,
  301. 0x12,0x0B,0x06,0x02,0x07,0x2A,0x10,0x0F,0x01,0x11,0x21,0x1F,0x00,0x00,

  302. /*--  文字:  鎘33  --*/
  303. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  304. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  305. 0x60,0x38,0xE7,0x24,0x24,0x00,0x82,0xBA,0xAA,0xAA,0xAA,0xBA,0x83,0x02,0x00,0x01,
  306. 0x01,0x3F,0x11,0x09,0x01,0x3F,0x04,0x06,0x1C,0x06,0x24,0x3F,0x00,0x00,

  307. /*--  文字:  鎳34  --*/
  308. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  309. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  310. 0x60,0x38,0xE7,0x24,0x24,0x00,0xFE,0xAA,0xAB,0xAA,0xAA,0xFE,0x00,0x00,0x00,0x01,
  311. 0x01,0x1F,0x11,0x29,0x12,0x0A,0x06,0x02,0x3F,0x06,0x0A,0x12,0x22,0x00,

  312. /*--  文字:  鋰35  --*/
  313. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  314. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  315. 0x60,0x38,0xE7,0x24,0x24,0x00,0xFE,0x92,0x92,0xFE,0x92,0x92,0xFF,0x02,0x00,0x01,
  316. 0x01,0x3F,0x11,0x09,0x21,0x24,0x24,0x24,0x3F,0x24,0x24,0x24,0x20,0x00,


  317. /*--  文字:  記36  --*/
  318. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  319. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  320. 0x20,0x20,0x21,0xE6,0x00,0x00,0xC4,0x44,0x44,0x44,0x44,0x44,0x7E,0x04,0x00,0x00,
  321. 0x00,0x00,0x1F,0x08,0x04,0x1F,0x20,0x20,0x20,0x20,0x20,0x20,0x3C,0x00,

  322. /*--  文字:  錄37  --*/
  323. /*--  宋體11;  此字體下對應的點陣為:寬x高=15x15   --*/
  324. /*--  高度不是8的倍數,現調整為:寬度x高度=15x16  --*/
  325. 0x20,0x20,0xA2,0xAA,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x3F,0xA2,0x20,0x20,0x00,0x10,
  326. 0x10,0x08,0x08,0x05,0x12,0x22,0x1F,0x01,0x02,0x05,0x08,0x18,0x08,0x00
  327. };
復制代碼








分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

22#
ID:537530 發表于 2024-1-13 17:45 | 只看該作者

漂亮!
回復

使用道具 舉報

21#
ID:379492 發表于 2018-9-25 08:44 | 只看該作者

里面只有HEX文件,沒有看到程序代碼?發錯了?XZF老師
回復

使用道具 舉報

20#
ID:379492 發表于 2018-9-25 08:42 | 只看該作者

謝謝,萬分感謝
回復

使用道具 舉報

19#
ID:135253 發表于 2018-9-21 10:36 | 只看該作者
850787641@qq.co 發表于 2018-9-20 18:06
哇塞,這幾天有點忙,沒有進論壇看這個帖子,沒想到你給我搞好了,實在是太感謝你了,論壇里高手真多,并 ...

拿去不謝!

12864 顯示非標準15X16字符.rar

46.62 KB, 下載次數: 10

回復

使用道具 舉報

18#
ID:303383 發表于 2018-9-21 09:17 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

17#
ID:7485 發表于 2018-9-21 07:48 | 只看該作者
這種屏沒有字庫,每一個點的位置都是由程序的地址所決定。這種情況肯定是地址發送錯誤。
回復

使用道具 舉報

16#
ID:379492 發表于 2018-9-20 18:08 | 只看該作者
xzf586 發表于 2018-9-15 10:32
1:程序有點亂,2:字符不是標準的16X16,請注意修改,這個效果是按照你的15X16的字符寫的

能給我分享你的源程序嗎?大佬
回復

使用道具 舉報

15#
ID:379492 發表于 2018-9-20 18:06 | 只看該作者
xzf586 發表于 2018-9-15 10:32
1:程序有點亂,2:字符不是標準的16X16,請注意修改,這個效果是按照你的15X16的字符寫的

哇塞,這幾天有點忙,沒有進論壇看這個帖子,沒想到你給我搞好了,實在是太感謝你了,論壇里高手真多,并且很熱心,謝謝啊
回復

使用道具 舉報

14#
ID:135253 發表于 2018-9-15 10:32 | 只看該作者
1:程序有點亂,2:字符不是標準的16X16,請注意修改,這個效果是按照你的15X16的字符寫的

QQ截圖20180915102935.png (12.15 KB, 下載次數: 94)

QQ截圖20180915102935.png

新建文件夾.rar

14.13 KB, 下載次數: 13

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

13#
ID:111634 發表于 2018-9-14 21:54 | 只看該作者
本帖最后由 zl2168 于 2018-9-15 21:36 編輯

LCD12864顯示屏顯示漢字
Proteus仿真一下,確認有效。
實驗25 LCD12864顯示屏顯示.rar (60.48 KB, 下載次數: 10)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,電路與程序真實可靠可信可行,可演示,可觀測,程序語句條條有注解。
回復

使用道具 舉報

12#
ID:397477 發表于 2018-9-14 17:32 | 只看該作者
跪求個多功能萬年日歷
回復

使用道具 舉報

11#
ID:379492 發表于 2018-9-14 16:40 | 只看該作者
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
{
        uchar i=0,j=0, g=0;
        delay(10);
    hang=layer;
        lie=x0;
   
        if(lie < 63)       
         {
                setPM(0);
               
                set_YL( hang, lie);
            for(g = 0;g < width ; g++)
                        {
                          writedacm(bmp[g],1);
                        }
                
                set_YL( hang+1, lie+1);
                for(g = 16;g < 30;g++)
                        {
                          writedacm( bmp[g],1);
                        }
         }       



else               
{       

   for(i=0;i<2*width;i++)
    {
        set_YL( hang, i);
        }
       
        setPM(1);
        for(g = 0;g < width ; g++)
                {
                  writedacm(bmp[g],1);
                }
          
         set_YL( hang+1, i);
         for(g = 16;g < 30;g++)
                {
                  writedacm( bmp[g],1);
                }
  }       
       
       
}       
       
#define welcome_hanzi 6
void disp_welcome(void)
{
        unsigned char cyc_counter;
        delay(10);
        for(cyc_counter=0; cyc_counter<5; cyc_counter++)
        {
                delay(10);
                DrawBmp(18+cyc_counter*chn_width,0,chn_width,chn_font+(cyc_counter+welcome_hanzi)*chn_width*2);
        delay(10);
        };

        disp_no = 0x00;
}




/**********************主函數*****************************/
main()
{       
            init_lcd();
                chear();
                disp_welcome();
                while(1);
}

顯示不正常,本來是顯示“新鄉安科電子”,“科少了下半部分”,“電”和“科”隔了一個字符,然后“子”顯示不出來,是咋回事?

12864仿真畫面.jpg (37 KB, 下載次數: 97)

12864仿真畫面.jpg
回復

使用道具 舉報

10#
ID:397874 發表于 2018-9-14 12:07 | 只看該作者
應該是這個模件有問題,換個元件試試看
回復

使用道具 舉報

9#
ID:379492 發表于 2018-9-14 10:44 | 只看該作者
jiangkeqin_sy 發表于 2018-9-14 09:24
這個模塊有問題,X0參數沒起作用,在setPM();后面還應加上set_YL(),給行、列定位。另外,當列超過63以后, ...

雖然你和sxhwdz說的一字不差,但是還是謝謝你的回復
回復

使用道具 舉報

8#
ID:379492 發表于 2018-9-14 10:16 | 只看該作者
本帖最后由 850787641@qq.co 于 2018-9-14 10:59 編輯
lie=x0;ye=layer;
set_YL( ye, lie);                  
           for(g = 0;g < 16;g++)
        {
                if(lie==63)
                        {
                        setPM(1);
                        set_YL( ye,0);
                        }         
                writedacm(bmp,1);
        }
      
           
           
           
           set_YL( ye+1, lie);
           for(g = 16;g < 32;g++)
        {
               if(lie==63)
                   {
                   setPM(1);
                   set_YL(ye+1, 0);
                   }
               
            writedacm( bmp,1);
        }

我的思維只能到這里了,但是不知道怎么銜接我的程序,你能幫我指點一下嗎?求你了
回復

使用道具 舉報

7#
ID:267330 發表于 2018-9-14 09:24 | 只看該作者
這個模塊有問題,X0參數沒起作用,在setPM();后面還應加上set_YL(),給行、列定位。另外,當列超過63以后,還需要切換到右半屏。
回復

使用道具 舉報

6#
ID:379492 發表于 2018-9-14 09:01 | 只看該作者
sxhwdz 發表于 2018-9-14 07:28
這個模塊有問題,X0參數沒起作用,在setPM();后面還應加上set_YL(),給行、列定位。另外,當列超過63以后 ...

行家一眼看到問題所在,是的,X0沒有起作用,說實話也不知道怎么弄,剛上手單片機,一遍學習一遍調程序,理論和實踐結合,然后跟在你們大師級別的屁股后面這樣進步快點
回復

使用道具 舉報

5#
ID:387733 發表于 2018-9-14 07:28 | 只看該作者
850787641@qq.co 發表于 2018-9-13 11:02
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
X0代表離開左邊起始位置的位數
layer代表頁

這個模塊有問題,X0參數沒起作用,在setPM();后面還應加上set_YL(),給行、列定位。另外,當列超過63以后,還需要切換到右半屏。
回復

使用道具 舉報

地板
ID:379492 發表于 2018-9-13 13:14 | 只看該作者
我在
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
函數里面加了一個X坐標地址
writedacm(0x40,0),注:writedacm(0x40,0)0代表寫命令,1代表寫數據
以后,屏就變成白屏了,不再顯示字體
回復

使用道具 舉報

板凳
ID:379492 發表于 2018-9-13 11:02 | 只看該作者
void DrawBmp(uchar x0,bit layer,uchar width,uchar *bmp)
X0代表離開左邊起始位置的位數
layer代表頁
width代表字體的寬度
*bmp數組指針
回復

使用道具 舉報

沙發
ID:379492 發表于 2018-9-13 11:00 | 只看該作者
顯示目的是“新鄉”,但是漢字是上半部分和下半部分錯開了,不知道為啥
回復

使用道具 舉報

樓主
ID:379492 發表于 2018-9-13 10:58 | 只看該作者
12864仿真畫面

12864仿真畫面.jpg (33.81 KB, 下載次數: 101)

12864仿真畫面.jpg
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区欧美一区 | 黄色大全免费看 | 中文字幕一区在线观看视频 | av香蕉| 一区二区三区亚洲视频 | 国产精品久久精品 | www.色.com | 亚洲精品在线免费 | 91原创视频在线观看 | 精品欧美乱码久久久久久 | 欧美一区二区三区在线看 | 黑人性hd| 日本淫视频 | 在线观看视频h | 亚洲一区精品在线 | 亚洲欧美在线免费观看 | 亚洲精品乱码久久久久久按摩观 | www久久国产 | 久久伊人精品 | 一级欧美一级日韩片免费观看 | 国产在线中文 | 黄色在线免费观看视频 | 亚洲免费在线 | 国产一区免费 | 羞羞的视频免费在线观看 | 久久视频免费看 | 国产午夜精品视频 | 日韩欧美中文在线 | 一区二区在线 | 久久99精品久久久久久国产越南 | 欧美日韩一区二区在线观看 | 欧美一区二区综合 | 国产乱码久久久久久一区二区 | 久久99网 | 成人在线亚洲 | 日本一区二区在线视频 | 成人在线视频免费看 | 免费观看成人av | 在线观看国产www | 99精品欧美一区二区蜜桃免费 | 丝袜美腿av |