標(biāo)題: 山寨碼表.自行車碼表 [打印本頁(yè)]

作者: niujia    時(shí)間: 2015-7-18 15:53
標(biāo)題: 山寨碼表.自行車碼表
因缺乏鍛煉,加上之前上了2個(gè)月的"長(zhǎng)夜班",身體有米其林化的趨勢(shì).為了阻止這種不良的發(fā)展.決定在家騎自行車鍛煉鍛煉.

光騎車沒(méi)勁,做個(gè)碼表裝上看看能騎多少快,騎了多少路.

1月1日回家開(kāi)始正式制作.


單片機(jī)用stc89c52,因?yàn)橹百I了幾片還沒(méi)用掉,因?yàn)樗灰?塊多錢,因?yàn)槲抑灰獛讉(gè)IO加上外部中斷,定時(shí)器.
顯示用yleee的12232液晶,因?yàn)橐呀?jīng)放了快2年了.3片只用掉一片,而且做完之后依然壓箱底.  不用掉浪費(fèi).
電源用白菜模塊做單鋰升壓到5.2v來(lái)使用. 因?yàn)橘I了太多了,不用掉浪費(fèi).


電池暫時(shí)找了塊yleee的太陽(yáng)能移動(dòng)電源中的大肚子鋰聚合物電池. 當(dāng)時(shí)肚子很大,電壓很低.給它捅了一刀以后繼續(xù)充電,身材恢復(fù)苗條,就是有點(diǎn)皺紋. 500ma放電能有3,400 mah容量.
傳感器用了大家都說(shuō)好的干簧管,還是從中學(xué)勞技課的板子上拆下來(lái)的. 磁鋼安裝就盡顯山寨本色了.



既然畫了PCB,就順便加上了 1302, 18b20,萬(wàn)一沒(méi)事干又想加上去了.


板子繼續(xù)熱轉(zhuǎn)印,這次買了瓶新的三氯化鐵,放在新買的電磁爐里水浴加熱到80°,竟然還花了10幾分鐘. 期間還把三氯化鐵滴到了鍋?zhàn)永?以后吃火鍋能吃到正宗的化學(xué)鍋底了. 恩.



這是之前的試做版本.

話說(shuō)制作期間,一天都沒(méi)運(yùn)動(dòng)過(guò),終于在第六天倒下了,去醫(yī)院把我全新的醫(yī)保卡上寫上了歷史性的一頁(yè),而配的藥的紙殼,就成了這次的山寨碼表暫時(shí)蝸居的地方.

剛才完成基本功能,發(fā)現(xiàn)我的破車騎在20km/h已經(jīng)很吃力了. 全力只能跑到30km/h. 看來(lái)也就這水平了.


為了看得清, 用了四倍字體大小. 很給力.







界面就改成這樣了. 顯示這些東西也夠看了
按第一個(gè)鍵保存總行程. 第三個(gè)鍵背光開(kāi)關(guān).  開(kāi)機(jī)時(shí)摁住第一第二鍵 總行程清零.

今天風(fēng)大,還騎了10公里.  有點(diǎn)蛋疼的感覺(jué)..

程序,和電路圖在包里,  PCB因?yàn)橛袔讞l線沒(méi)連通,幾個(gè)設(shè)計(jì)bug沒(méi)修改,所以就沒(méi)放在里面. speed_meter_keil_51.rar (90.44 KB, 下載次數(shù): 281)




作者: niujia    時(shí)間: 2015-7-18 15:53
  1. #include "12232.h"
  2.   

  3. #define A0_0()  LCD_A0 = 0
  4. #define A0_1()  LCD_A0 = 1     
  5. #define E1_0()  LCD_E1 = 0
  6. #define E1_1()  LCD_E1 = 1
  7. #define E2_0()  LCD_E2 = 0
  8. #define E2_1()  LCD_E2 = 1


  9. #define LCD_DISPLAYON   0xaf      //af 開(kāi)顯示
  10. #define LCD_DISPLAYOFF  0xae      //ae 關(guān)顯示
  11. #define LCD_DRIVERON    0xa5      //a5 靜態(tài)顯示驅(qū)動(dòng)
  12. #define LCD_DRIVEROFF   0xa4      //a4 正常驅(qū)動(dòng)
  13. #define LCD_DUTY16      0xa8      //占空比1/16
  14. #define LCD_DUTY32      0xa9      //占空比1/32

  15. #define LCD_END         0xee  
  16. /*關(guān)閉“讀-修改-寫”模式,并把列地址指針
  17.                               恢復(fù)到打開(kāi)“讀-修改-寫”模式前的位置。*/

  18. #define LCD_RESET       0xe2  
  19. /*初始化。① 設(shè)置顯示初始行為第一行;
  20.                                         ②頁(yè)地址設(shè)置為第三頁(yè)。*/

  21. #define LCD_RWMODE      0xe0  
  22. /*“讀-修改-寫”模式 。執(zhí)行該指令以后,
  23.                               每執(zhí)行一次寫數(shù)據(jù),指令列地址自動(dòng)加1;
  24.                               但執(zhí)行讀數(shù)據(jù)指令時(shí)列地址不會(huì)改變。
  25.                               這個(gè)狀態(tài)一直持續(xù)到執(zhí)行“END”指令。
  26.                               注意:在“讀-修改-寫”模式下,
  27.                               除列地址設(shè)置指令之外,其他指令照常執(zhí)行。 */
  28.                               
  29. #define LCD_STARTLINE0  0xc0    //設(shè)置顯示起始行 可以加0-31
  30. #define LCD_PAGE0       0xb8    //頁(yè)地址設(shè)置     可以加0-3
  31. #define LCD_COLUMNADDR0 0x00    //列地址設(shè)置     可以加0-60

  32. #define LCD_ON()            LCD_Command(LCD_DISPLAYON)
  33. #define LCD_OFF()           LCD_Command(LCD_DISPLAYOFF)
  34. #define LCD_StaticON()      LCD_Command(LCD_DRIVERON)
  35. #define LCD_StaticOFF()     LCD_Command(LCD_DRIVEROFF)
  36. #define LCD_Select16()      LCD_Command(LCD_DUTY16)
  37. #define LCD_Select32()      LCD_Command(LCD_DUTY32)
  38. #define LCD_StartRW()       LCD_Command(LCD_RWMODE)
  39. #define LCD_EndRW()         LCD_Command(LCD_END)
  40. #define LCD_Reset()         LCD_Command(LCD_RESET)
  41. #define LCD_SetStartLine(i) LCD_Command(LCD_STARTLINE0|i)
  42. #define LCD_SetPage(i)      LCD_Command(LCD_PAGE0|i)
  43. #define LCD_SetColumn(i)    LCD_Command(LCD_COLUMNADDR0|i)


  44. unsigned char code ascii[][6]={
  45. {0x00,0x00,0x00,0x00,0x00,0x00},/*0 SPACE*/
  46. {0x00,0x00,0x00,0x4f,0x00,0x00},/*1 !*/  
  47. {0x00,0x00,0x00,0x07,0x00,0x07},/*2 "*/
  48. {0x00,0x14,0x7f,0x14,0x7f,0x14},/*3 #*/
  49. {0x00,0x24,0x2a,0x7f,0x2a,0x12},/*4 $*/
  50. {0x00,0x23,0x13,0x08,0x62,0x61},/*5 %*/
  51. {0x00,0x36,0x49,0x55,0x22,0x50},/*6 &*/
  52. {0x00,0x00,0x00,0x05,0x03,0x00},/*7 '*/
  53. {0x00,0x00,0x1c,0x22,0x41,0x00},/*8 (*/                              
  54. {0x00,0x00,0x41,0x22,0x1c,0x00},/*9 )*/
  55. {0x00,0x14,0x08,0x3e,0x08,0x14},/*10 **/
  56. {0x00,0x08,0x08,0x3e,0x08,0x08},/*11 +*/
  57. {0x00,0x00,0x00,0x28,0x18,0x00},/*12 ,*/
  58. {0x00,0x08,0x08,0x08,0x08,0x08},/*13 -*/
  59. {0x00,0x00,0x00,0x60,0x60,0x00},/*14 .*/
  60. {0x00,0x20,0x10,0x08,0x04,0x02},/*15 /*/
  61. {0x00,0x3e,0x51,0x49,0x45,0x3e},/*16 0*/
  62. {0x00,0x00,0x42,0x7f,0x40,0x40},/*17 1*/                           
  63. {0x00,0x62,0x51,0x51,0x49,0x46},/*18 2*/                              
  64. {0x00,0x21,0x41,0x45,0x4b,0x31},/*19 3*/                              
  65. {0x00,0x18,0x14,0x12,0x7f,0x10},/*20 4*/                              
  66. {0x00,0x27,0x45,0x45,0x45,0x39},/*21 5*/                              
  67. {0x00,0x3c,0x4a,0x49,0x49,0x30},/*22 6*/                              
  68. {0x00,0x01,0x71,0x09,0x05,0x03},/*23 7*/                              
  69. {0x00,0x36,0x49,0x49,0x49,0x36},/*24 8*/                              
  70. {0x00,0x06,0x49,0x49,0x29,0x1e},/*25 9*/
  71. {0x00,0x00,0x36,0x36,0x00,0x00},/*26 :*/
  72. {0x00,0x00,0x56,0x36,0x00,0x00},/*27 ;*/
  73. {0x00,0x08,0x14,0x22,0x41,0x00},/*28 <*/
  74. {0x00,0x14,0x14,0x14,0x14,0x14},/*29 =*/
  75. {0x00,0x00,0x41,0x22,0x14,0x08},/*30 >*/
  76. {0x00,0x02,0x01,0x51,0x09,0x06},/*31 ?*/
  77. {0x00,0x3e,0x59,0x55,0x79,0x3e},/*32 @*/                           
  78. {0x00,0x7e,0x21,0x21,0x21,0x7e},/*33 A*/                              
  79. {0x00,0x7f,0x49,0x49,0x49,0x36},/*34 B*/                              
  80. {0x00,0x3e,0x41,0x41,0x41,0x22},/*35 C*/                              
  81. {0x00,0x7f,0x41,0x41,0x22,0x1c},/*36 D*/                              
  82. {0x00,0x7f,0x49,0x49,0x49,0x49},/*37 E*/                              
  83. {0x00,0x7f,0x09,0x09,0x09,0x01},/*38 F*/                              
  84. {0x00,0x3e,0x41,0x49,0x49,0x7a},/*39 G*/                              
  85. {0x00,0x7f,0x08,0x08,0x08,0x7f},/*40 H*/                              
  86. {0x00,0x41,0x7f,0x41,0x00,0x00},/*41 I*/                              
  87. {0x00,0x20,0x40,0x41,0x3f,0x01},/*42 J*/                              
  88. {0x00,0x7f,0x08,0x14,0x22,0x41},/*43 K*/                              
  89. {0x00,0x7f,0x40,0x40,0x40,0x40},/*44 L*/                              
  90. {0x00,0x7f,0x02,0x0c,0x02,0x7f},/*45 M*/                              
  91. {0x00,0x7f,0x04,0x08,0x10,0x7f},/*46 N*/                              
  92. {0x00,0x3e,0x41,0x41,0x41,0x3e},/*47 O*/                              
  93. {0x00,0x7f,0x09,0x09,0x09,0x06},/*48 P*/                              
  94. {0x00,0x3E,0x41,0x51,0x21,0x5E},/*49 Q*/                              
  95. {0x00,0x7f,0x09,0x19,0x29,0x46},/*50 R*/                              
  96. {0x00,0x46,0x49,0x49,0x49,0x31},/*51 S*/                              
  97. {0x00,0x01,0x01,0x7f,0x01,0x01},/*52 T*/                              
  98. {0x00,0x3f,0x40,0x40,0x40,0x3f},/*53 U*/                              
  99. {0x00,0x1f,0x20,0x40,0x20,0x1f},/*54 V*/                              
  100. {0x00,0x3f,0x40,0x38,0x40,0x3f},/*55 W*/                              
  101. {0x00,0x63,0x14,0x08,0x14,0x63},/*56 X*/                              
  102. {0x00,0x07,0x08,0x70,0x08,0x07},/*57 Y*/                              
  103. {0x00,0x61,0x51,0x49,0x45,0x43},/*58 Z*/
  104. {0x00,0x00,0x7f,0x41,0x41,0x00},/*59 [*/
  105. {0x00,0x01,0x02,0x08,0x10,0x20},/*50 \*/                              
  106. {0x00,0x00,0x41,0x41,0x7f,0x00},/*61 ]*/
  107. {0x00,0x04,0x02,0x01,0x02,0x04},/*62 ^*/
  108. {0x00,0x40,0x40,0x40,0x40,0x40},/*63 _*/
  109. {0x00,0x00,0x01,0x02,0x04,0x00},/*64 `*/                              
  110. {0x00,0x20,0x54,0x54,0x54,0x7c},/*65 a*/                              
  111. {0x00,0x7f,0x48,0x44,0x44,0x38},/*66 b*/                              
  112. {0x00,0x38,0x44,0x44,0x44,0x20},/*67 c*/                              
  113. {0x00,0x38,0x44,0x44,0x48,0x7f},/*68 d*/                              
  114. {0x00,0x38,0x54,0x54,0x54,0x18},/*69 e*/                              
  115. {0x00,0x08,0x7e,0x09,0x01,0x02},/*70 f*/                              
  116. {0x00,0x0c,0x52,0x52,0x52,0x3e},/*71 g*/                              
  117. {0x00,0x7f,0x08,0x04,0x04,0x78},/*72 h*/                              
  118. {0x00,0x00,0x44,0x7d,0x40,0x00},/*73 i*/                              
  119. {0x00,0x40,0x40,0x44,0x3d,0x00},/*74 j*/                              
  120. {0x00,0x7f,0x10,0x28,0x44,0x00},/*75 k*/                                 
  121. {0x00,0x00,0x41,0x7e,0x40,0x00},/*76 l*/                              
  122. {0x00,0x7c,0x04,0x18,0x04,0x78},/*77 m*/                              
  123. {0x00,0x7c,0x08,0x04,0x04,0x78},/*78 n*/                              
  124. {0x00,0x38,0x44,0x44,0x44,0x38},/*79 o*/                              
  125. {0x00,0x7c,0x14,0x14,0x14,0x08},/*80 p*/                              
  126. {0x00,0x08,0x14,0x14,0x14,0x7c},/*81 q*/                              
  127. {0x00,0x7c,0x08,0x04,0x04,0x08},/*82 r*/                              
  128. {0x00,0x48,0x54,0x54,0x54,0x20},/*83 s*/                                
  129. {0x00,0x04,0x3f,0x44,0x44,0x24},/*84 t*/                              
  130. {0x00,0x3c,0x40,0x40,0x20,0x7c},/*85 u*/                              
  131. {0x00,0x1c,0x20,0x40,0x20,0x1c},/*86 v*/                              
  132. {0x00,0x3c,0x40,0x30,0x40,0x3c},/*87 w*/                              
  133. {0x00,0x44,0x28,0x10,0x28,0x44},/*88 x*/                              
  134. {0x00,0x06,0x48,0x48,0x48,0x3e},/*89 y*/                              
  135. {0x00,0x44,0x64,0x54,0x4c,0x44},/*80 z*/
  136. {0x00,0x00,0x08,0x36,0x41,0x00},/*91 {*/
  137. {0x00,0x00,0x00,0x7e,0x00,0x00},/*92 |*/                              
  138. {0x00,0x00,0x41,0x36,0x08,0x00},/*93 }*/                        
  139. {0x00,0x04,0x08,0x04,0x08,0x04},/*94 ~*/
  140. {0x10,0x20,0x40,0x20,0x10,0x08},//95對(duì)號(hào)一半
  141. {0x04,0x02,0x00,0x00,0x00,0x00},//96對(duì)號(hào)一半

  142. };

  143. unsigned char target1,target2,target3,target4;

  144. /******************************************************************************************
  145. * 函數(shù)名稱    :LCD_Command
  146. * 功能描述    :寫命令
  147. * 參數(shù)        :  參數(shù)名稱:        輸入/輸出?        類型                描述
  148. *
  149. * 返回值      :
  150. * 作者        :
  151. * 創(chuàng)建日期    :2006-12-19
  152. * 全局變量    :
  153. * 全局靜態(tài)變量:
  154. * 局部靜態(tài)變量:
  155. *----------------------------------------修改歷史------------------------------------------
  156. * 當(dāng)前版本    :                          修改人:                  修改日期:
  157. * 修改說(shuō)明    :
  158. ******************************************************************************************/
  159. void LCD_Command(unsigned char nCommand)
  160. {                                 
  161.           A0_0();
  162. //    asm("nop");
  163. //    asm("nop");
  164.           E1_1();
  165.           E2_1();
  166. //    asm("nop");
  167. //    asm("nop");
  168.           DATA=nCommand;
  169. //    asm("nop");
  170. //    asm("nop");
  171.           E1_0();
  172.           E2_0();
  173. }
  174. /******************************************************************************************
  175. * 函數(shù)名稱    :LCD_SetRam
  176. * 功能描述    :送顯示數(shù)據(jù)ndata,setMS為0主,1從
  177. * 參數(shù)        :  參數(shù)名稱:        輸入/輸出?        類型                描述
  178. *
  179. * 返回值      :
  180. * 作者        :
  181. * 創(chuàng)建日期    :2006-12-19
  182. * 全局變量    :
  183. * 全局靜態(tài)變量:
  184. * 局部靜態(tài)變量:
  185. *----------------------------------------修改歷史------------------------------------------
  186. * 當(dāng)前版本    :                          修改人:                  修改日期:
  187. * 修改說(shuō)明    :
  188. ******************************************************************************************/
  189. void LCD_SetRam(unsigned char ChipSelect,unsigned char ndata)
  190. {               
  191.     A0_1();
  192. //    asm("nop");
  193. //    asm("nop");
  194.     if( ChipSelect )
  195.     {
  196.         E1_0();
  197.         E2_1();     //選擇左半屏
  198.     }
  199.     else
  200.     {
  201.         E1_1();     //選擇右半屏
  202.         E2_0();
  203.     }     
  204. //    asm("nop");
  205. //    asm("nop");
  206.     DATA=ndata;
  207. //    asm("nop");
  208. //    asm("nop");
  209.     E1_0();
  210.     E2_0();
  211. }
  212. /******************************************************************************************
  213. * 函數(shù)名稱    :LCD_Init
  214. * 功能描述    :
  215. * 參數(shù)        :  參數(shù)名稱:        輸入/輸出?        類型                描述
  216. *
  217. * 返回值      :
  218. * 作者        :
  219. * 創(chuàng)建日期    :2006-12-19
  220. * 全局變量    :
  221. * 全局靜態(tài)變量:
  222. * 局部靜態(tài)變量:
  223. *----------------------------------------修改歷史------------------------------------------
  224. * 當(dāng)前版本    :                          修改人:                  修改日期:
  225. * 修改說(shuō)明    :
  226. ******************************************************************************************/
  227. void LCD_init(void)
  228. {   
  229.           LCD_OFF();               //關(guān)閉顯示
  230.     LCD_Command(LCD_RESET);  //復(fù)位
  231.           LCD_Command(0xa0);       //列與段驅(qū)動(dòng)反方向
  232.           LCD_Command(LCD_DUTY32); //1/32
  233.           LCD_Command(0xa4);       //關(guān)閉靜態(tài)顯示    打開(kāi)正常驅(qū)動(dòng)
  234.           LCD_EndRW();             //關(guān)閉自動(dòng)列加1
  235.           LCD_SetStartLine(0);     //設(shè)置起始行
  236.           LCD_SetColumn(0);        //起始列
  237.           LCD_SetPage(0);          //起始頁(yè)
  238.           LCD_ON();                //開(kāi)顯示
  239. }

  240. /******************************************************************************************
  241. * 函數(shù)名稱    :clrscr
  242. * 功能描述    :清屏
  243. * 參數(shù)        :  參數(shù)名稱:        輸入/輸出?        類型                描述
  244. *
  245. * 返回值      :
  246. * 作者        :
  247. * 創(chuàng)建日期    :2006-12-19
  248. * 全局變量    :
  249. * 全局靜態(tài)變量:
  250. * 局部靜態(tài)變量:
  251. *----------------------------------------修改歷史------------------------------------------
  252. * 當(dāng)前版本    :                          修改人:                  修改日期:
  253. * 修改說(shuō)明    :
  254. ******************************************************************************************/   
  255. void clrscr(unsigned char hdata)
  256. {
  257.     unsigned char i;
  258.     unsigned char page;
  259.     for(page=0;page<4;page++)
  260.           {
  261.                   LCD_SetPage(page);
  262.                    for(i=0;i<61;i++)
  263.         {
  264.             LCD_SetColumn(i);
  265.                  LCD_SetRam(0,hdata);
  266.                  LCD_SetRam(1,hdata);
  267.                }
  268.            }
  269. }
  270. /******************************************************************************************
  271. * 函數(shù)名稱    :drawword
  272. * 功能描述    ://layer 值為0,2;wenzi 碼表中的幾個(gè)字
  273. * 參數(shù)        :  參數(shù)名稱:        輸入/輸出?        類型                描述
  274. *
  275. * 返回值      :
  276. * 作者        :
  277. * 創(chuàng)建日期    :2006-12-19
  278. * 全局變量    :
  279. * 全局靜態(tài)變量:
  280. * 局部靜態(tài)變量:
  281. *----------------------------------------修改歷史------------------------------------------
  282. * 當(dāng)前版本    :                          修改人:                  修改日期:
  283. * 修改說(shuō)明    :
  284. ******************************************************************************************/
  285. /*
  286. void drawword(unsigned char liedizhi,unsigned char layer,unsigned char *buff)
  287. {
  288.     unsigned char column,i;//layer 值為0,2;wenzi 碼表中的幾個(gè)字
  289.     unsigned char cs;
  290.     for(i=0;i<16;i++)
  291.     {
  292.         column=liedizhi+i;   
  293.         if(column>60)
  294.         {
  295.             cs=1;
  296.             column-=61;
  297.         }
  298.                    else
  299.         cs=0;
  300.         
  301.         //LCD_SetStartLine(0);//設(shè)置起始行
  302.             LCD_SetColumn(column);//設(shè)置起始列
  303.             LCD_SetPage(layer);
  304.             LCD_SetRam(cs,*(buff+i));
  305.         //LCD_SetStartLine(0);//設(shè)置起始行
  306.                    LCD_SetColumn(column);//設(shè)置起始列
  307.             LCD_SetPage(layer+1);
  308.             LCD_SetRam(cs,*(buff+16+i));
  309.         }
  310. }
  311. */

  312. void drawascii(unsigned char liedizhi,unsigned char layer,unsigned char *text)
  313. {
  314.     unsigned char column,i;//layer 值為0,2;wenzi 碼表中的幾個(gè)字
  315.     unsigned char cs;
  316.    
  317.     while(*text)
  318.     {
  319.         for(i=0;i<6;i++)
  320.         {
  321.             column=liedizhi+i;   
  322.             if(column>60)
  323.             {
  324.                 cs=1;
  325.                 column-=61;
  326.             }
  327.             else cs=0;
  328.         
  329.             //LCD_SetStartLine(0);//設(shè)置起始行
  330.             LCD_SetColumn(column);//設(shè)置起始列
  331.             LCD_SetPage(layer);
  332.             LCD_SetRam(cs,ascii[*text-32][i]);
  333.         }
  334.         text++;
  335.         liedizhi+=6;
  336.     }
  337. }


  338. void make_ascii_big(unsigned char c)
  339. {
  340.         target1 = 0;
  341.         target2 = 0;

  342.         if((c&0x80) != 0)
  343.         {
  344.                 target1 += 192;
  345.         }
  346.         if((c&0x40) != 0)
  347.         {
  348.                 target1 += 48;
  349.         }
  350.         if((c&0x20) != 0)
  351.         {
  352.                 target1 += 12;
  353.         }
  354.         if((c&0x10) != 0)
  355.         {
  356.                 target1 += 3;
  357.         }

  358.         if((c&0x08) != 0)
  359.         {
  360.                 target2 += 192;
  361.         }
  362.         if((c&0x04) != 0)
  363.         {
  364.                 target2 += 48;
  365.         }
  366.         if((c&0x02) != 0)
  367.         {
  368.                 target2 += 12;
  369.         }
  370.         if((c&0x01) != 0)
  371.         {
  372.                 target2 += 3;
  373.         }
  374. }

  375. void make_ascii_very_big(unsigned char c)
  376. {
  377.         target1 = 0;
  378.         target2 = 0;
  379.         target3 = 0;
  380.         target4 = 0;

  381.         if((c&0x80) != 0)
  382.         {
  383.                 target1 += 240;
  384.         }
  385.         if((c&0x40) != 0)
  386.         {
  387.                 target1 += 15;
  388.         }
  389.         if((c&0x20) != 0)
  390.         {
  391.                 target2 += 240;
  392.         }
  393.         if((c&0x10) != 0)
  394.         {
  395.                 target2 += 15;
  396.         }

  397.         if((c&0x08) != 0)
  398.         {
  399.                 target3 += 240;
  400.         }
  401.         if((c&0x04) != 0)
  402.         {
  403.                 target3 += 15;
  404.         }
  405.         if((c&0x02) != 0)
  406.         {
  407.                 target4 += 240;
  408.         }
  409.         if((c&0x01) != 0)
  410.         {
  411.                 target4 += 15;
  412.         }
  413. }

  414. void draw_big_ascii(unsigned char liedizhi,unsigned char layer,unsigned char *text)
  415. {
  416.     unsigned char column,i;
  417.     unsigned char cs;

  418.    
  419.     while(*text)
  420.     {
  421.         for(i=0;i<6;i++)
  422.         {
  423.             column=liedizhi+i+i;   
  424.             if(column>60)
  425.             {
  426.                 cs=1;
  427.                 column-=61;
  428.             }
  429.             else cs=0;

  430.                         make_ascii_big(ascii[*text-32][i]);
  431.         
  432.             LCD_SetColumn(column);//設(shè)置起始列
  433.             LCD_SetPage(layer);
  434.             LCD_SetRam(cs,target2);

  435.                         LCD_SetColumn(column);//設(shè)置起始列
  436.             LCD_SetPage(layer+1);
  437.             LCD_SetRam(cs,target1);

  438.             LCD_SetColumn(column+1);//設(shè)置起始列
  439.             LCD_SetPage(layer);
  440.             LCD_SetRam(cs,target2);

  441.                         LCD_SetColumn(column+1);//設(shè)置起始列
  442.             LCD_SetPage(layer+1);
  443.             LCD_SetRam(cs,target1);
  444.         }
  445.         text++;
  446.         liedizhi+=12;
  447.     }
  448. }

  449. void draw_very_big_ascii(unsigned char liedizhi,unsigned char *text)
  450. {
  451.     unsigned char column,i,j;
  452.     unsigned char cs;

  453.    
  454.     while(*text)
  455.     {
  456.         for(i=0;i<6;i++)
  457.         {
  458.             column=liedizhi+i+i+i+i;   

  459.                         make_ascii_very_big(ascii[*text-32][i]);
  460.         
  461.                         for(j=0;j<4;j++)
  462.                         {
  463.                         column=liedizhi+i+i+i+i;
  464.             if(column+j>60)
  465.             {
  466.                 cs=1;
  467.                 column-=61;
  468.             }
  469.             else cs=0;

  470.             LCD_SetColumn(column+j);
  471.             LCD_SetPage(0);
  472.             LCD_SetRam(cs,target4);

  473.                         LCD_SetColumn(column+j);
  474.             LCD_SetPage(1);
  475.             LCD_SetRam(cs,target3);

  476.                         LCD_SetColumn(column+j);
  477.             LCD_SetPage(2);
  478.             LCD_SetRam(cs,target2);

  479.                         LCD_SetColumn(column+j);
  480.             LCD_SetPage(3);
  481.             LCD_SetRam(cs,target1);
  482.                         }
  483.         }
  484.         text++;
  485.         liedizhi+=24;
  486.     }
  487. }
復(fù)制代碼

作者: 1qaz2wsx77    時(shí)間: 2015-7-21 22:55
這個(gè)很實(shí)用
作者: stewart_leung    時(shí)間: 2015-8-14 08:09
可以可以
作者: lig_ngailik@163    時(shí)間: 2015-8-15 14:53
太有材了!大贊!
作者: liaihua1997    時(shí)間: 2015-9-17 23:45
樓主動(dòng)手能力真強(qiáng)啊,呵呵
作者: ludaijin    時(shí)間: 2015-9-29 14:07
自行車的輪子大小可以設(shè)置嘛
作者: 血一    時(shí)間: 2015-9-30 21:13
果斷做一個(gè)。。。。。。。。。。。。。
作者: zgs660429    時(shí)間: 2015-10-3 16:46
我也想做一個(gè),學(xué)習(xí)一下
作者: 邰夏留    時(shí)間: 2015-10-4 11:21
頂。。。對(duì)于有用的資料,一定要頂上去供大家參考學(xué)習(xí)。
不能讓那些資料不全,拿出來(lái)炫耀,又不肯共享技術(shù)的人的帖子在前面擋住大家學(xué)習(xí)的腳步。。。
作者: qwa123    時(shí)間: 2015-10-6 23:14
怎么設(shè)輪子大小
作者: yangkai3bu    時(shí)間: 2015-10-21 16:49
時(shí)速是按照中斷一次,周長(zhǎng)/時(shí)間還是什么。如何判斷,代碼太多,看花眼。
作者: neemxyang    時(shí)間: 2015-11-19 21:35
我想是否可以用在我的老中華汽車上?哈哈
作者: wu147    時(shí)間: 2016-2-14 03:30
真好,,就是不懂
作者: 試試水    時(shí)間: 2016-5-17 13:24
厲害,我都快搞瘋了,做這個(gè)
作者: 後輪追前輪    時(shí)間: 2016-9-20 13:18
學(xué)習(xí)學(xué)習(xí)看看自己能不能做出來(lái)
作者: 封古    時(shí)間: 2016-9-21 15:07
學(xué)習(xí)了
作者: 封古    時(shí)間: 2016-9-21 15:07
謝謝樓主
作者: gy9319    時(shí)間: 2016-9-30 13:55
學(xué)習(xí)學(xué)習(xí)看看自己能不能做出來(lái)
作者: gy9319    時(shí)間: 2016-9-30 13:58
謝謝樓主!學(xué)習(xí)了
作者: starwaver    時(shí)間: 2016-10-2 10:53
學(xué)習(xí)了!
謝謝樓主!
作者: cdma008    時(shí)間: 2017-1-3 11:12
正好需要,下載過(guò)來(lái)學(xué)習(xí)一下,感謝樓主
作者: faridzled    時(shí)間: 2017-1-4 21:54
thanks for sharing
作者: 越快樂(lè)越墮落    時(shí)間: 2017-2-20 18:10
程序里沒(méi)有測(cè)溫度的。LCD12232如果用1602如何替換?
作者: wc86110    時(shí)間: 2017-2-22 08:51
越快樂(lè)越墮落 發(fā)表于 2017-2-20 18:10
程序里沒(méi)有測(cè)溫度的。LCD12232如果用1602如何替換?

自行添加測(cè)溫功能。只能重新編寫顯示部分了
作者: zhaok2013    時(shí)間: 2017-2-22 15:45
樓主很給力
作者: mmx950124    時(shí)間: 2017-3-2 18:05
謝謝。正好在做這個(gè)
作者: 山鬼謠    時(shí)間: 2017-3-2 22:31
樓主可以加Q向你學(xué)習(xí)一下嗎
作者: shuma520    時(shí)間: 2017-3-3 19:49
謝謝分享,個(gè)人覺(jué)得1602 比較常用,小巧一點(diǎn)
作者: 葉落雪舞    時(shí)間: 2017-3-8 14:03
學(xué)習(xí),謝樓主
作者: micmiutom    時(shí)間: 2017-5-7 06:53

學(xué)習(xí)了!
謝謝樓主!
作者: 323額    時(shí)間: 2017-5-16 21:32
本帖最后由 323額 于 2017-5-16 21:52 編輯

樓主,ds1302的接口在哪個(gè)程序里,想改一下,主函數(shù)沒(méi)找到
作者: A17094430    時(shí)間: 2017-12-1 21:09
支持樓主,學(xué)習(xí)了
作者: tieq1952    時(shí)間: 2017-12-2 18:51
支持樓主,學(xué)習(xí)了
作者: 還有誰(shuí)?    時(shí)間: 2019-2-9 05:29
不[ 好,支持一下
作者: kadnn    時(shí)間: 2019-2-22 10:57
感謝樓主,對(duì)我有很大啟發(fā)
作者: starwaver    時(shí)間: 2019-2-24 17:10
感謝樓主, 學(xué)習(xí)了
作者: zpz181818    時(shí)間: 2019-2-24 19:41
動(dòng)手能力真強(qiáng)。學(xué)習(xí)了。
作者: tigerzq    時(shí)間: 2019-2-24 21:39
樓主這體力不行呀!山地車怎么也要上40km/h
作者: tigerzq    時(shí)間: 2019-2-24 21:40
不過(guò)樓主這創(chuàng)意還是不錯(cuò)的。
作者: siniscn    時(shí)間: 2019-2-26 14:16
一兩元的計(jì)步器,改成干簧管觸發(fā),用26圈自行車剛好接近2米周長(zhǎng)。那么用兩個(gè)磁鐵,每圈觸發(fā)兩次也就是增加兩米就可以了。這種方案更節(jié)約電,紐扣電池用半年
作者: mobicity    時(shí)間: 2019-10-6 20:55
創(chuàng)意很棒的。學(xué)習(xí)學(xué)習(xí)
作者: Kelan    時(shí)間: 2019-10-8 09:46
這個(gè)功耗很大吧!
作者: zhouqiang    時(shí)間: 2019-10-8 11:23
支持支持!感謝分享
作者: 李小卒    時(shí)間: 2019-11-17 19:14
大佬,你好。我想請(qǐng)教下有沒(méi)有比較簡(jiǎn)單基礎(chǔ)的碼表程序核電路圖?
作者: xiaofeng123    時(shí)間: 2019-12-7 12:49
謝謝分享!
作者: tieq1952    時(shí)間: 2020-5-27 06:39
謝謝分享!!!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1