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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6015|回復: 11
收起左側

自制單片機STC12C5A60S2+1602電壓表

  [復制鏈接]
ID:579397 發表于 2020-4-25 00:15 | 顯示全部樓層 |閱讀模式
本帖最后由 405616736 于 2020-4-25 10:14 編輯

LCD1602 D0~D7接P0口,RS=P3.1,RW=P3.2,sbit E=P3.3。
電壓測試口接P1.0。供電電壓要穩定5V才能準確測量。另外因為沒有加電阻,只能測5V以下電壓。
廢話少說,直接上實物圖。
3.jpg 2.jpg


單片機源程序如下:
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. #define LCD P0                //LCD1602數據接口
  4. sbit RS=P3^1;                //設置RS引腳接口,RS=0,指令寄存器;RS=1,數據寄存器
  5. sbit RW=P3^2;                //設置R/W引腳接口,R/W=0,寫;R/W=1,讀
  6. sbit E=P3^3;                //設置E引腳接口,E允許信號

  7. /*Declare SFR associated with the ADC */
  8. sfr ADC_CONTR=0xBC;                //ADC control register
  9. sfr ADC_RES=0xBD;                //ADC high 8-bit result register
  10. sfr ADC_LOW2=0xBE;                //ADC low 2-bit result register
  11. sfr P1ASF=0x9D;                //P1 secondary function control register

  12. unsigned char V[]="000000";
  13. unsigned int ADC_temp=0;

  14. /*Define ADC operation const for ADC_CONTR*/
  15. #define ADC_POWER   0x80                //ADC power control bit
  16. #define ADC_FLAG    0x10                //ADC complete flag
  17. #define ADC_START   0x08                //ADC start control bit
  18. #define ADC_SPEEDLL 0x00                //420 clocks
  19. #define ADC_SPEEDL  0x20                //280 clocks
  20. #define ADC_SPEEDH  0x40                //140 clocks
  21. #define ADC_SPEEDHH 0x60                //70 clocks


  22. /******************************
  23.                 延時函數
  24. ******************************/
  25. void Delay(unsigned int n)
  26.         {
  27.     unsigned int i=0,j=0;
  28.     for(i=0;i<n;i++)
  29.                 for(j=0;j<123;j++);
  30.         }

  31. /******************************
  32.                 初始化ADC
  33. ******************************/
  34. void InitADC()
  35.         {
  36.                 P1ASF=0xff;
  37.     ADC_RES=0;
  38.     ADC_CONTR=ADC_POWER | ADC_SPEEDLL;
  39.     Delay(2);
  40.                 }

  41. /******************************
  42.                 讀取ADC
  43. ******************************/
  44. unsigned char GetADCResult(unsigned char ch)
  45.         {
  46.                 ADC_CONTR=ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
  47.                 _nop_();
  48.                 _nop_();
  49.                 _nop_();
  50.                 _nop_();
  51.                 while (!(ADC_CONTR & ADC_FLAG));
  52.                 ADC_CONTR &=~ADC_FLAG;
  53.                 return ADC_RES;
  54.                 }

  55. /******************************
  56.                 LCD忙檢測
  57. ******************************/
  58. void CheckBusy(void)
  59.         {
  60.                 unsigned int nTimeOut=0;
  61.                 RS=0;
  62.                 RW=1;
  63.                 E=0;
  64.                 E=1;
  65.                 while((LCD&0x80)&&(++nTimeOut !=0));
  66.                 E=0;
  67.                 RS=0;
  68.                 RW=1;
  69.         }

  70. /******************************
  71.                 LCD發送命令或數據
  72. ******************************/
  73. void SendCmdorData(unsigned char byCmdorData,bit DI)
  74.         {
  75.                 CheckBusy();
  76.                 RS=DI;
  77.                 RW=0;
  78.                 E=0;
  79.                 LCD=byCmdorData;
  80.                 Delay(5);
  81.                 E=1;
  82.                 Delay(5);
  83.                 E=0;
  84.                 RW=1;
  85.                 RS=0;
  86.         }

  87. /******************************
  88.                 LCD初始化子
  89. ******************************/
  90. void Init(void)
  91.         {
  92.                 SendCmdorData(0x38,0);
  93.                 Delay(50);
  94.                 SendCmdorData(0x01,0);
  95.                 Delay(50);
  96.                 SendCmdorData(0x06,0);
  97.                 Delay(50);
  98.                 SendCmdorData(0x0c,0);
  99.                 Delay(50);
  100.         }

  101. /******************************
  102.                 地址轉換
  103. ******************************/
  104. void SetAddress(unsigned char x,y)
  105.         {
  106.                 unsigned char byAddress;
  107.                 switch(x)
  108.                         {
  109.                         case 1:
  110.                                 byAddress=0x80+y;
  111.                         break;
  112.                         case 2:
  113.                                 byAddress=0xC0+y;
  114.                         break;
  115.                         default:break;
  116.                         }
  117.                         SendCmdorData(byAddress,0);
  118.         }
復制代碼
所有資料51hei提供下載:
5.zip (1.43 KB, 下載次數: 175)




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:743360 發表于 2020-9-16 11:33 | 顯示全部樓層
樓主有完整的keil工程文件嗎?
回復

使用道具 舉報

ID:743360 發表于 2020-9-16 11:33 | 顯示全部樓層
樓主,有完整的keil工程文件嗎?
回復

使用道具 舉報

ID:691190 發表于 2020-10-30 07:30 | 顯示全部樓層
用不了哦
回復

使用道具 舉報

ID:134345 發表于 2020-11-10 00:19 | 顯示全部樓層
這么巧我用的開發板跟你一樣的
回復

使用道具 舉報

ID:134345 發表于 2020-11-10 01:39 | 顯示全部樓層
可以用,跟樓主一樣的開發板,由于原來的lcd排針占用了p1口所以要改針腳。按照樓主的引腳接線完全沒有問題
回復

使用道具 舉報

ID:852236 發表于 2020-12-2 22:26 | 顯示全部樓層
這個程序是完整的嗎?頭文件樓主是自己改過了嗎?STC12C5A60S2 不是這個頭文件嗎?
回復

使用道具 舉報

ID:579397 發表于 2022-3-28 01:02 | 顯示全部樓層
snygah 發表于 2020-9-16 11:33
樓主有完整的keil工程文件嗎?

有的,附近里面有
回復

使用道具 舉報

ID:579397 發表于 2022-3-28 01:02 | 顯示全部樓層

可以用吧,我都測試過的
回復

使用道具 舉報

ID:579397 發表于 2022-3-28 01:02 | 顯示全部樓層
chang199202 發表于 2020-11-10 00:19
這么巧我用的開發板跟你一樣的

哈哈哈,淘寶就這個便宜
回復

使用道具 舉報

ID:579397 發表于 2022-3-28 01:03 | 顯示全部樓層
chang199202 發表于 2020-11-10 01:39
可以用,跟樓主一樣的開發板,由于原來的lcd排針占用了p1口所以要改針腳。按照樓主的引腳接線完全沒有問題

嗯嗯,程序里面我標注好的了,改一下就可以用了
回復

使用道具 舉報

ID:579397 發表于 2022-3-28 01:03 | 顯示全部樓層
本帖最后由 405616736 于 2022-3-28 18:14 編輯
rambo.hu 發表于 2020-12-2 22:26
這個程序是完整的嗎?頭文件樓主是自己改過了嗎?STC12C5A60S2 不是這個頭文件嗎?

附件里面的是完整的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费在线观看91 | 91不卡| 亚洲永久在线 | 国产a视频 | 国产午夜精品久久久久免费视高清 | 最新中文字幕 | 婷婷在线免费 | 久久久蜜桃 | 91视频国产一区 | 成人综合在线视频 | 成人国产精品免费观看 | 国产亚洲一区在线 | 免费观看一级视频 | 色妞av| 最大av在线 | 一区精品视频在线观看 | 国产成人免费一区二区60岁 | 中文字幕视频在线看5 | 日韩在线观看一区二区三区 | 欧洲精品在线观看 | 开操网 | 五月天天丁香婷婷在线中 | 欧美成人a∨高清免费观看 色999日韩 | 国产视频久久 | 久久精品国产久精国产 | 国产视频第一页 | 在线视频一区二区 | 国产一区二区三区久久久久久久久 | 精品九九| 伊人色综合久久久天天蜜桃 | 色免费视频 | 久久亚洲国产 | 欧美一区二区三区日韩 | 久久亚洲视频网 | 免费成人高清在线视频 | 成人高潮片免费视频欧美 | 97久久精品午夜一区二区 | 日韩欧美一区二区三区免费观看 | 欧美一级二级视频 | 久久精品国产免费高清 | 五月花丁香婷婷 |