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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

手機藍牙控制的計算器

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:311395 發(fā)表于 2018-4-19 09:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
手機藍牙控制的計算器
上學期電子設計課程做的
想拿幾個幣下資料!!

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <stdlib.h>
  3. #include <intrins.h>
  4. #include <stdio.h>

  5. #define uchar unsigned char
  6. #define uint  unsigned int
  7. sbit CS  = P1^5;
  8. sbit SCK = P1^7;
  9. sbit SID = P1^6;
  10. sbit Key = P1^1;
  11. uchar code AC_TABLE[]={
  12. 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行漢字位置
  13. 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行漢字位置
  14. 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行漢字位置
  15. 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      //第四行漢字位置
  16. };
  17. uchar code str2[]="歡迎光臨!";
  18. uchar code str1[]="白日依山盡,    黃河入海流。    欲窮千里目,    更上一層樓。    ";
  19. uchar code bmp1[];

  20. /******************************************************************************************
  21. * 函數(shù)名稱    :SendByte
  22. * 功能描述    :串口發(fā)送一個字節(jié)
  23. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  24. *
  25. * 返回值      :
  26. * 作者        :
  27. * 創(chuàng)建日期    :2006-12-19
  28. * 全局變量    :
  29. * 全局靜態(tài)變量:
  30. * 局部靜態(tài)變量:
  31. *----------------------------------------修改歷史------------------------------------------
  32. * 當前版本    :     修改人:                  修改日期:
  33. * 修改說明    :
  34. ******************************************************************************************/
  35. void SendByte(uchar Dbyte)
  36. {
  37.      uchar i;
  38.      for(i=0;i<8;i++)
  39.      {
  40.            SCK = 0;
  41.            Dbyte=Dbyte<<1;      //左移一位
  42.            SID = CY;            //移出的位給SID
  43.            SCK = 1;
  44.            SCK = 0;
  45.      }
  46. }

  47. /******************************************************************************************
  48. * 函數(shù)名稱    :ReceiveByte
  49. * 功能描述    :串口接收一個字節(jié)
  50. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  51. * 僅在讀取數(shù)據(jù)的時候用到
  52. * 而讀出的數(shù)據(jù)是一次只能讀出4bit的
  53. * 返回值      :
  54. * 作者        :
  55. * 創(chuàng)建日期    :2006-12-19
  56. * 全局變量    :
  57. * 全局靜態(tài)變量:
  58. * 局部靜態(tài)變量:
  59. *----------------------------------------修改歷史------------------------------------------
  60. * 當前版本    :     修改人:                  修改日期:
  61. * 修改說明    :
  62. ******************************************************************************************/
  63. uchar ReceiveByte(void)
  64. {
  65.      uchar i,temp1,temp2;
  66.      temp1 = 0;
  67.      temp2 = 0;
  68.      for(i=0;i<8;i++)
  69.      {
  70.            temp1=temp1<<1;
  71.            SCK = 0;
  72.            SCK = 1;            
  73.            SCK = 0;
  74.            if(SID) temp1++;
  75.      }
  76.      for(i=0;i<8;i++)
  77.      {
  78.            temp2=temp2<<1;
  79.            SCK = 0;
  80.            SCK = 1;
  81.            SCK = 0;
  82.            if(SID) temp2++;
  83.      }
  84.      return ((0xf0&temp1)+(0x0f&temp2));
  85. }
  86. /******************************************************************************************
  87. * 函數(shù)名稱    :CheckBusy
  88. * 功能描述    :
  89. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  90. *
  91. * 返回值      :
  92. * 作者        :
  93. * 創(chuàng)建日期    :2006-12-19
  94. * 全局變量    :
  95. * 全局靜態(tài)變量:
  96. * 局部靜態(tài)變量:
  97. *----------------------------------------修改歷史------------------------------------------
  98. * 當前版本    :     修改人:                  修改日期:
  99. * 修改說明    :
  100. ******************************************************************************************/
  101. void CheckBusy( void )
  102. {
  103.      do   SendByte(0xfc);      //11111,RW(1),RS(0),0
  104.      while(0x80&ReceiveByte());      //BF(.7)=1 Busy
  105. }
  106. /******************************************************************************************
  107. * 函數(shù)名稱    :WriteCommand
  108. * 功能描述    :
  109. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  110. *
  111. * 返回值      :
  112. * 作者        :
  113. * 創(chuàng)建日期    :2006-12-19
  114. * 全局變量    :
  115. * 全局靜態(tài)變量:
  116. * 局部靜態(tài)變量:
  117. *----------------------------------------修改歷史------------------------------------------
  118. * 當前版本    :     修改人:                  修改日期:
  119. * 修改說明    :
  120. ******************************************************************************************/
  121. void WriteCommand(uchar Cbyte )
  122. {
  123.      CS = 1;
  124.      CheckBusy();
  125.      SendByte(0xf8);            //11111,RW(0),RS(0),0
  126.      SendByte(0xf0&Cbyte);      //高四位
  127.      SendByte(0xf0&Cbyte<<4);//低四位(先執(zhí)行<<)
  128.      CS = 0;
  129. }
  130. /******************************************************************************************
  131. * 函數(shù)名稱    :WriteData
  132. * 功能描述    :
  133. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  134. *
  135. * 返回值      :
  136. * 作者        :
  137. * 創(chuàng)建日期    :2006-12-19
  138. * 全局變量    :
  139. * 全局靜態(tài)變量:
  140. * 局部靜態(tài)變量:
  141. *----------------------------------------修改歷史------------------------------------------
  142. * 當前版本    :     修改人:                  修改日期:
  143. * 修改說明    :
  144. ******************************************************************************************/
  145. void WriteData(uchar Dbyte )
  146. {
  147.      CS = 1;
  148.      CheckBusy();
  149.      SendByte(0xfa);            //11111,RW(0),RS(1),0
  150.      SendByte(0xf0&Dbyte);      //高四位
  151.      SendByte(0xf0&Dbyte<<4);//低四位(先執(zhí)行<<)
  152.      CS = 0;
  153. }
  154. /******************************************************************************************
  155. * 函數(shù)名稱    :ReadData
  156. * 功能描述    :
  157. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  158. *
  159. * 返回值      :
  160. * 作者        :
  161. * 創(chuàng)建日期    :2006-12-19
  162. * 全局變量    :
  163. * 全局靜態(tài)變量:
  164. * 局部靜態(tài)變量:
  165. *----------------------------------------修改歷史------------------------------------------
  166. * 當前版本    :     修改人:                  修改日期:
  167. * 修改說明    :
  168. ******************************************************************************************
  169. uchar ReadData( void )
  170. {
  171.      CheckBusy();
  172.      SendByte(0xfe);            //11111,RW(1),RS(1),0
  173.      return ReceiveByte();
  174. }
  175. /******************************************************************************************
  176. * 函數(shù)名稱    :Delay
  177. * 功能描述    :
  178. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  179. *
  180. * 返回值      :
  181. * 作者        :
  182. * 創(chuàng)建日期    :2006-12-19
  183. * 全局變量    :
  184. * 全局靜態(tài)變量:
  185. * 局部靜態(tài)變量:
  186. *----------------------------------------修改歷史------------------------------------------
  187. * 當前版本    :     修改人:                  修改日期:
  188. * 修改說明    :
  189. ******************************************************************************************/
  190. void Delay(uint MS)
  191. {
  192.      uchar us,usn;
  193.      while(MS!=0)            //for 12M
  194.       {
  195.          usn = 2;
  196.          while(usn!=0)
  197.           {
  198.             us = 0xf5;
  199.             while (us!=0)
  200.              {
  201.                us--;
  202.              };
  203.             usn--;
  204.            }
  205.          MS--;
  206.       }
  207. }
  208. /******************************************************************************************
  209. * 函數(shù)名稱    :DelayKey
  210. * 功能描述    :
  211. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  212. *
  213. * 返回值      :
  214. * 作者        :
  215. * 創(chuàng)建日期    :2006-12-19
  216. * 全局變量    :
  217. * 全局靜態(tài)變量:
  218. * 局部靜態(tài)變量:
  219. *----------------------------------------修改歷史------------------------------------------
  220. * 當前版本    :     修改人:                  修改日期:
  221. * 修改說明    :
  222. ******************************************************************************************/
  223. void DelayKey(uint Second , uint MS100)
  224. {                              //輸入精確到0.1S,是用","
  225.      uint i;
  226.      for(i=0;i<Second*100+MS100*10;i++)
  227.      {
  228.            if(Key==0)
  229.            {
  230.                  Delay(20);
  231.                  while(Key==0)
  232.                    {
  233.                     Delay(20);
  234.                    }
  235.                  break;
  236.            }
  237.            else Delay(10);
  238.      }
  239. }
  240. /******************************************************************************************
  241. * 函數(shù)名稱    :LcmInit
  242. * 功能描述    :
  243. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  244. *
  245. * 返回值      :
  246. * 作者        :
  247. * 創(chuàng)建日期    :2006-12-19
  248. * 全局變量    :
  249. * 全局靜態(tài)變量:
  250. * 局部靜態(tài)變量:
  251. *----------------------------------------修改歷史------------------------------------------
  252. * 當前版本    :     修改人:                  修改日期:
  253. * 修改說明    :
  254. ******************************************************************************************/
  255. void LcmInit( void )
  256. {
  257.      WriteCommand(0x30);      //8BitMCU,基本指令集合
  258.      WriteCommand(0x03);      //AC歸0,不改變DDRAM內(nèi)容
  259.      WriteCommand(0x0C);      //顯示ON,游標OFF,游標位反白OFF
  260.      WriteCommand(0x01);      //清屏,AC歸0
  261.      WriteCommand(0x06);      //寫入時,游標右移動
  262. }

  263. /******************************************************************************************
  264. * 函數(shù)名稱    :LcmClearTXT
  265. * 功能描述    :文本區(qū)清RAM函數(shù)
  266. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  267. *
  268. * 返回值      :
  269. * 作者        :
  270. * 創(chuàng)建日期    :2006-12-19
  271. * 全局變量    :
  272. * 全局靜態(tài)變量:
  273. * 局部靜態(tài)變量:
  274. *----------------------------------------修改歷史------------------------------------------
  275. * 當前版本    :     修改人:                  修改日期:
  276. * 修改說明    :
  277. ******************************************************************************************/
  278. void LcmClearTXT( void )
  279. {
  280.      uchar i;
  281.      WriteCommand(0x30);      //8BitMCU,基本指令集合
  282.      WriteCommand(0x80);      //AC歸起始位
  283.      for(i=0;i<64;i++)
  284.      WriteData(0x20);
  285. }

  286. /******************************************************************************************
  287. * 函數(shù)名稱    :LcmClearBMP
  288. * 功能描述    :圖形區(qū)清RAM函數(shù)
  289. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  290. * 圖形區(qū)和文本區(qū)顯示在兩個不同的RAM區(qū)
  291. * 返回值      :
  292. * 作者        :
  293. * 創(chuàng)建日期    :2006-12-19
  294. * 全局變量    :
  295. * 全局靜態(tài)變量:
  296. * 局部靜態(tài)變量:
  297. *----------------------------------------修改歷史------------------------------------------
  298. * 當前版本    :     修改人:                  修改日期:
  299. * 修改說明    :
  300. ******************************************************************************************/
  301. void LcmClearBMP( void )
  302. {
  303.      uchar i,j;
  304.      WriteCommand(0x34);      //8Bit擴充指令集,即使是36H也要寫兩次
  305.      WriteCommand(0x36);      //繪圖ON,基本指令集里面36H不能開繪圖
  306.      for(i=0;i<32;i++)            //12864實際為256x32
  307.      {
  308.            WriteCommand(0x80|i);      //行位置
  309.            WriteCommand(0x80);      //列位置
  310.            for(j=0;j<32;j++)            //256/8=32 byte
  311.                 WriteData(0);
  312.      }
  313. }
  314. /******************************************************************************************
  315. * 函數(shù)名稱    :PutStr
  316. * 功能描述    :
  317. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  318. *
  319. * 返回值      :
  320. * 作者        :
  321. * 創(chuàng)建日期    :2006-12-19
  322. * 全局變量    :
  323. * 全局靜態(tài)變量:
  324. * 局部靜態(tài)變量:
  325. *----------------------------------------修改歷史------------------------------------------
  326. * 當前版本    :     修改人:                  修改日期:
  327. * 修改說明    :
  328. ******************************************************************************************/
  329. void PutStr(uchar row,uchar col,uchar *puts)
  330. {
  331.      WriteCommand(0x30);      //8BitMCU,基本指令集合
  332.      WriteCommand(AC_TABLE[8*row+col]);      //起始位置
  333.      while(*puts != '\0')      //判斷字符串是否顯示完畢
  334.      {
  335.            if(col==8)            //判斷換行
  336.            {            //若不判斷,則自動從第一行到第三行
  337.                  col=0;
  338.                  row++;
  339.            }
  340.            if(row==4) row=0;      //一屏顯示完,回到屏左上角
  341.            WriteCommand(AC_TABLE[8*row+col]);
  342.            WriteData(*puts);      //一個漢字要寫兩次
  343.            puts++;
  344.            WriteData(*puts);
  345.            puts++;
  346.            col++;
  347.      }
  348. }
  349. /******************************************************************************************
  350. * 函數(shù)名稱    :PutBMP
  351. * 功能描述    :
  352. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  353. *
  354. * 返回值      :
  355. * 作者        :
  356. * 創(chuàng)建日期    :2006-12-19
  357. * 全局變量    :
  358. * 全局靜態(tài)變量:
  359. * 局部靜態(tài)變量:
  360. *----------------------------------------修改歷史------------------------------------------
  361. * 當前版本    :     修改人:                  修改日期:
  362. * 修改說明    :
  363. ******************************************************************************************/
  364. void PutBMP(uchar *puts)
  365. {
  366.      uint x=0;
  367.      uchar i,j;
  368.      WriteCommand(0x34);      //8Bit擴充指令集,即使是36H也要寫兩次
  369.      WriteCommand(0x36);      //繪圖ON,基本指令集里面36H不能開繪圖
  370.      for(i=0;i<32;i++)            //12864實際為256x32
  371.      {
  372.            WriteCommand(0x80|i);      //行位置
  373.            WriteCommand(0x80);      //列位置
  374.            for(j=0;j<32;j++)      //256/8=32 byte
  375.            {            //列位置每行自動增加
  376.                  WriteData(puts[x]);
  377.                  x++;
  378.            }
  379.      }
  380. }
  381. /******************************************************************************************
  382. * 函數(shù)名稱    :DisplayDots
  383. * 功能描述    :
  384. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  385. *
  386. * 返回值      :
  387. * 作者        :
  388. * 創(chuàng)建日期    :2006-12-19
  389. * 全局變量    :
  390. * 全局靜態(tài)變量:
  391. * 局部靜態(tài)變量:
  392. *----------------------------------------修改歷史------------------------------------------
  393. * 當前版本    :     修改人:                  修改日期:
  394. * 修改說明    :
  395. ******************************************************************************************/
  396. void DisplayDots(uchar DotByte)
  397. {
  398.      uchar i,j;
  399.      WriteCommand(0x34);      //8Bit擴充指令集,即使是36H也要寫兩次
  400.      WriteCommand(0x36);      //繪圖ON,基本指令集里面36H不能開繪圖
  401.      for(i=0;i<32;i++)            //12864實際為256x32
  402.      {
  403.            WriteCommand(0x80|i);      //行位置
  404.            WriteCommand(0x80);      //列位置
  405.            for(j=0;j<32;j++)      //256/8=32 byte
  406.            {            //列位置每行自動增加
  407.               WriteData(DotByte);                  
  408.            }
  409.            DotByte=~DotByte;
  410.      }
  411. }
  412. /******************************************************************************************
  413. * 函數(shù)名稱    :
  414. * 功能描述    :
  415. * 參數(shù)        :  參數(shù)名稱: 輸入/輸出? 類型  描述
  416. *
  417. * 返回值      :
  418. * 作者        :
  419. * 創(chuàng)建日期    :2006-12-19
  420. * 全局變量    :
  421. * 全局靜態(tài)變量:
  422. * 局部靜態(tài)變量:
  423. *----------------------------------------修改歷史------------------------------------------
  424. * 當前版本    :     修改人:                  修改日期:
  425. * 修改說明    :
  426. ******************************************************************************************/
  427. void main( void )
  428. {
  429.      Delay(100);      //等待復位
  430.      LcmInit();
  431.      LcmClearTXT();
  432.      LcmClearBMP();
  433.      while(1)
  434.      {
  435.            LcmClearTXT();
  436.            PutBMP(bmp1);
  437.            DelayKey(1,5);
  438.            
  439.            DisplayDots(0x55);
  440.            DelayKey(1,5);
  441.            
  442.            LcmClearBMP();
  443.            PutStr(0,0,str1);
  444.            DelayKey(1,5);
  445.                        
  446.            LcmClearTXT();
  447.            DisplayDots(0xaa);
  448.            DelayKey(1,5);
  449.      }
  450. }

  451. uchar code bmp1[]={
  452. //********************************************************//
  453. //***** 轉(zhuǎn)換的文件:E:\!Program\!BmpSample\25632.bmp
  454. //***** 源圖形寬度 * 高度:256 * 32
  455. //***** 調(diào)整后寬度 * 高度:256 * 32
  456. //***** 字模格式:橫向取模,冗余模式,字節(jié)正序,正色取模,
  457. //***** 點陣轉(zhuǎn)換時間:2005/03/ 2   16:4:32
  458. //***** 位圖點陣占用1024字節(jié)
  459. //********************************************************//

  460. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  461. 0x80,0x00,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x01,
  462. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  463. 0x80,0x00,0x3F,0xC0,0x00,0x07,0x07,0x00,0x04,0x01,0x00,0x00,0x38,0x60,0x00,0x01,
  464. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  465. 0x80,0x00,0x78,0xE0,0x00,0x3F,0x83,0x80,0x06,0x03,0x80,0x00,0x1C,0x70,0x00,0x01,
  466. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  467. 0x80,0x02,0x38,0x70,0x00,0xFF,0x07,0x80,0x06,0x39,0x80,0x00,0x1F,0x70,0x00,0x01,
  468. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  469. 0x80,0x02,0x1C,0x30,0x00,0x7C,0x0E,0x00,0x06,0x19,0xC0,0x00,0x1F,0x80,0x00,0x01,
  470. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
  471. ……………………

  472. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
新建文件夾.rar (66.88 KB, 下載次數(shù): 8)


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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品毛片一区二区在线看 | 四虎免费视频 | 在线视频一区二区 | 在线观看欧美日韩视频 | 日韩影音 | 欧美lesbianxxxxhd视频社区 | 青青久在线视频 | 成人黄色av | 亚洲少妇综合网 | 精品视频在线播放 | 欧美视频在线看 | 欧美乱淫视频 | 五月婷婷激情 | 日本午夜精品 | 欧美一区视频在线 | 国产日韩精品久久 | 亚洲电影免费 | 国产在线1| 日韩免费福利视频 | 精品国产18久久久久久二百 | 亚洲免费在线 | 91免费看片| 99久久精品免费 | 欧美日韩在线看 | 久久精品av | 成人免费淫片aa视频免费 | 精品久久久久久久久久久 | 欧美一级久久 | 亚洲精品国产第一综合99久久 | 成人精品国产免费网站 | 中文字幕视频在线 | 欧美精品一区在线 | 欧美老妇交乱视频 | 久久久久网站 | 中文字幕在线一 | 亚洲看片网站 | 久久精品国产免费 | 欧美亚洲国产精品 | 男人天堂久久久 | 久久骚| www.日本在线播放 |