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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5181|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STC15F2K60S2單片機(jī)單片機(jī)數(shù)字電壓表程序 內(nèi)部ADC實(shí)現(xiàn)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:549708 發(fā)表于 2020-7-25 10:48 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
①使用STC15F2K60S2單片機(jī)板設(shè)計(jì)一個(gè)數(shù)字電壓表,只能采用單片機(jī)內(nèi)部ADC實(shí)現(xiàn);
②要求能夠測(cè)量直流電壓范圍為0~4.55V,測(cè)量誤差小于0.005V,測(cè)量結(jié)果保留三位小數(shù)點(diǎn);
③電壓表具有自動(dòng)超量程報(bào)警功能,當(dāng)測(cè)量電壓超過4.55V時(shí)驅(qū)動(dòng)蜂鳴器報(bào)警,電壓小于4.55V時(shí)自動(dòng)關(guān)閉蜂鳴器;
④電壓測(cè)量校準(zhǔn)與測(cè)評(píng)以考試當(dāng)天手上的萬用表為準(zhǔn),顯示器件自選,要求使用內(nèi)部基準(zhǔn)電壓作為參考電壓;
⑤采集結(jié)果通過USB轉(zhuǎn)串口線上傳至PC機(jī),顯示格式為:“N路電壓:X.XXXV”;
⑥串口傳輸波特率為57600,晶振采用內(nèi)部22.1184M,復(fù)位引腳不能當(dāng)做I/O使用;
⑦電壓表具有自動(dòng)休眠功能,每當(dāng)啟動(dòng)15秒鐘后自動(dòng)進(jìn)入休眠模式,喚醒后繼續(xù)正常工作。

單片機(jī)源程序如下:
  1. #include"STC15F2K60S2.h"      //頭文件
  2. #include"JLX12864G-086S-ZK.h" //頭文件
  3. #include"ADC.h"               //頭文件
  4. #include <stdio.h>                  //printf函數(shù)使用到的頭文件
  5. float VCC;                              //供電電壓
  6. unsigned int a;                                  //測(cè)量第九通道ADC數(shù)字量
  7. float Va;                                          //第九通道電壓值
  8. char temp[16];
  9. void UART_int()                                                          //串口初始化函數(shù)
  10. {
  11.         TMOD|=0x20;//T1工作于方式2,8位自動(dòng)重裝模式
  12.         TH1=TL1=256-22118400/57600/384;//TH1:重裝值9600波特率,晶振11.0592MHz ;
  13.         TR1=1;        
  14.         AUXR=0x00;//使用定時(shí)器1產(chǎn)生波特率,S1ST2=0
  15.         SCON=0x50;//SCON:模式1,8-bit UART,使能接收
  16.         TI=1;
  17. }
  18. void main()
  19. {
  20.         float Vin,V_temp=0;
  21.         unsigned char i;
  22.         InitADC();
  23.         UART_int();
  24.         initial_lcd();
  25.         clear_screen();
  26.         display_GB2312_string(1,1,"數(shù)字電壓表的設(shè)計(jì)");
  27.         display_GB2312_string(3,1,"電壓:");
  28.         while(1)
  29.         {        
  30.                 //測(cè)量第九通道電壓值(內(nèi)部參考電壓)
  31.                 P1ASF=0x00;
  32.                 VCC=(1.24612/ADC_Read(ADC_CH0))*1023;//內(nèi)部參考電壓為1.23611V(1.27),通過反推求出VCC
  33.                
  34.                 P1ASF=0xFF;
  35. //                for(i=0;i<30;i++)V_temp=V_temp+VCC/1023*ADC_Read(ADC_CH0);
  36. //                Vin=V_temp/30;//求平均值  校準(zhǔn)精度用的
  37. //                V_temp=0;
  38.             Vin=VCC/1023*ADC_Read(ADC_CH0);
  39.                 sprintf(temp,"%.3fV",Vin);
  40.                 display_GB2312_string(3,41,temp);
  41.                 if(Vin>4.55)P34=!P34;
  42.                 else {P34=1;}
  43.                 printf("0路電壓:%.3fV\n",Vin);
  44.         }
  45. }
復(fù)制代碼
  1. #include"STC15F2K60S2.h"    //頭文件
  2. #include <stdio.h>                //printf函數(shù)使用到的頭文件

  3. //ADC控制位定義ADC_CONTR
  4. #define ADC_POWER    0x80   //ADC電源控制位
  5. #define ADC_FLAG     0x10   //ADC轉(zhuǎn)換完成標(biāo)記
  6. #define ADC_START    0x08   //ADC開始轉(zhuǎn)換標(biāo)記
  7. #define ADC_SPEEDLL  0x00   //ADC轉(zhuǎn)換速率540時(shí)鐘
  8. #define ADC_SPEEDL   0x20   //ADC轉(zhuǎn)換速率360時(shí)鐘
  9. #define ADC_SPEEDH   0x40   //ADC轉(zhuǎn)換速率180時(shí)鐘
  10. #define ADC_SPEEDHH  0x60   //ADC轉(zhuǎn)換速率90時(shí)鐘
  11. #define ADC_CH0      0x00   //轉(zhuǎn)換通道P1.0
  12. #define ADC_CH1      0x01   //轉(zhuǎn)換通道P1.1
  13. #define ADC_CH2      0x02   //轉(zhuǎn)換通道P1.2
  14. #define ADC_CH3      0x03   //轉(zhuǎn)換通道P1.3
  15. #define ADC_CH4      0x04   //轉(zhuǎn)換通道P1.4
  16. #define ADC_CH5      0x05   //轉(zhuǎn)換通道P1.5
  17. #define ADC_CH6      0x06   //轉(zhuǎn)換通道P1.6
  18. #define ADC_CH7      0x07   //轉(zhuǎn)換通道P1.7
  19. //ADC端口模擬功能設(shè)置P1ASF
  20. #define P1ASF_0             0x01   //設(shè)置P1.0口為ADC端口
  21. #define P1ASF_1             0x02   //設(shè)置P1.1口為ADC端口
  22. #define P1ASF_2             0x04   //設(shè)置P1.2口為ADC端口
  23. #define P1ASF_3             0x08   //設(shè)置P1.3口為ADC端口
  24. #define P1ASF_4             0x10   //設(shè)置P1.4口為ADC端口
  25. #define P1ASF_5             0x20   //設(shè)置P1.5口為ADC端口
  26. #define P1ASF_6             0x40   //設(shè)置P1.6口為ADC端口
  27. #define P1ASF_7             0x80   //設(shè)置P1.7口為ADC端口

  28. float VCC;                            //供電電壓
  29. void delay_nus(unsigned int t){while(t--);}//微秒延時(shí)函數(shù)
  30. void delay_nms(unsigned int t)                           //毫秒延時(shí)函數(shù)
  31. {
  32.         unsigned int a;
  33.         while(t--)for(a=0;a<80;a++);
  34. }
  35. void InitADC()
  36. {
  37.     P1ASF=0xFF;//打開P1.0~P1.7作為模擬輸入通道
  38.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL;
  39.     delay_nms(1);                                      //延時(shí)1mS
  40. }
  41. unsigned int ADC_Read(unsigned char ADC_CH)//ADC采樣初始化函數(shù)
  42. {
  43.         unsigned int AD_Dat;
  44.         ADC_CONTR|=ADC_POWER|ADC_SPEEDLL|ADC_CH|ADC_START;//配置ADC控制寄存器                                                                      //打開電源、最高速度、選擇通道
  45.         delay_nus(100);                                  //延時(shí)100uS
  46.         while((ADC_CONTR&ADC_FLAG)==0);                  //等待轉(zhuǎn)換結(jié)束0x10=0001 0000
  47.         ADC_CONTR &=~ADC_FLAG;                //清除轉(zhuǎn)換結(jié)束ADC_FLAG
  48.         AD_Dat=(ADC_RES<<2)+(ADC_RESL&0x03);  //把數(shù)據(jù)整合成10位數(shù),并做計(jì)算
  49.         ADC_CONTR=0x00;                                                  //實(shí)踐證明要添加這句代碼才能進(jìn)行多路電壓采集
  50.         return AD_Dat;                                                  //返回電壓數(shù)字量
  51. }
復(fù)制代碼


所有程序51hei提供下載:
數(shù)字電壓表.rar (95.97 KB, 下載次數(shù): 154)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:560110 發(fā)表于 2020-7-26 21:49 | 只看該作者
我下載下來看看,我在看看看看看看看看
回復(fù)

使用道具 舉報(bào)

板凳
ID:839438 發(fā)表于 2021-7-9 19:34 | 只看該作者
萌新找資料好累
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 911网站大全在线观看 | 亚洲国产精品日韩av不卡在线 | 国产精品久久久久久久久久久久 | 免费av直接看 | 91视频进入 | 日韩一区二区在线视频 | 日日想夜夜操 | 免费一看一级毛片 | 国产一区二区三区四区在线观看 | 成人欧美一区二区三区黑人孕妇 | 青娱乐av| 久久亚洲二区 | 一区二区三区日韩精品 | 欧美日本一区二区 | 欧美精品福利视频 | 久久精品国产一区老色匹 | 一级片网站视频 | 日韩综合网 | 国产精品久久一区 | 男人天堂免费在线 | 国产人免费人成免费视频 | 久久综合一区二区三区 | 久久久91 | 国产精品久久av | 91麻豆产精品久久久久久夏晴子 | 午夜久久久久 | 亚洲国产精品久久久久 | 特a毛片 | 亚洲人成人一区二区在线观看 | 日韩一区中文字幕 | 婷婷在线视频 | 成人国内精品久久久久一区 | 国产精品久久久久久模特 | 黄色免费在线网址 | 久久伊| 免费二区| 日韩精品在线观看网站 | 国产精品久久久久永久免费观看 | 不卡一二三区 | 亚洲精品在线免费看 | 五月激情综合 |