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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6412|回復: 2
收起左側

STC15W408AS單片機電壓采集次數不帶掉電保存

[復制鏈接]
ID:330749 發表于 2018-11-14 11:37 | 顯示全部樓層 |閱讀模式
STC15W408AS  運用P1.4引腳進行電壓采集并且進行電壓壓降幾次,串口發送,文本模式

單片機源程序如下:
  1. #include "STC15F2K60S2.H"
  2. #include<intrins.h>
  3. /**********************************************
  4. 此程序為電壓下降沿采集程序,串口發送電壓及次數,不帶掉電保存
  5. 采用單片機型號為STC15W408AS    采集引腳為P1.4
  6. 注:更改引腳需要更改ADC初始化引腳,對應數值需參考P1ASF介紹
  7.     還需更改ADC_CONTR的值,進行引腳變換頻率的設定。
  8.         **********************************************************/
  9. void Delay_ms(unsigned int ms)            ///////////延時1000MS對應1S
  10. {
  11.         unsigned int a,b;
  12.         for(a=ms;a>0;)
  13.         {
  14.                 for(b=1000;b>0;)
  15.                 {
  16.                 b=b-1;
  17.                 }
  18.                 a--;
  19.         }
  20. }
  21. void TxChar(unsigned char send)
  22. {
  23. TI = 0;
  24. SBUF =send;
  25. while(!TI);
  26. TI = 0;
  27. }

  28. void SendFourData(unsigned char send)          
  29. {
  30. unsigned char a=0,b=0,c=0;
  31. a= (send/100)+0x30;               //對照ASCII表,0的編碼"十進制"48--"十六進制"0x30
  32. b= (send/10%10)+0x30;             //接收方式為文本
  33. c= (send%10)+0x30;
  34. TxChar(a);
  35. TxChar(b);
  36. TxChar(c);
  37. }
  38. void ADC_int()                //ADc初始化
  39. {
  40.         P1ASF=0X10;                        //吧P1.4設置為ADC引腳
  41.         CLK_DIV=0X20;                //ADC結果設置       
  42.         ADC_CONTR=0X80;                //打開ADC 電源
  43.         ADC_RESL=0;                         /////ADC高位存儲                                               
  44.         ADC_RES=0;                         /////ADC低位存儲
  45.         Delay_ms(10);
  46. }
  47. unsigned int ADC_Read()                //讀ADCCH6
  48. {
  49.         unsigned int a=0;
  50.         ADC_CONTR = 0X8c;                //啟動ADC電源和設置P1.4口為ADC轉換并且540個時鐘轉換一次
  51.         Delay_ms(1);               
  52.         while(!(ADC_CONTR&0X10));        //等待轉換完成
  53.         a=ADC_RES*256+ADC_RESL;                //獲取ADC結果
  54.         ADC_CONTR&=~0x10;
  55.         return a;
  56. }
  57. void UartInit()                                //9600bps@11.0592MHz
  58. {
  59.         SCON = 0x50;                //8位數據,可變波特率
  60.         AUXR = 0x14;
  61.         AUXR |= 0x01;                //串口1選擇定時器2為波特率發生器
  62.         T2L = 65536-(11059200/4/9600);                //設定定時初值
  63.         T2H = (65536-(11059200/4/9600))>>8;                //設定定時初值
  64. }
  65. void Uartsend_1(unsigned char send)
  66. {
  67.         SBUF=send;                                                //發送數據
  68.         while(!TI);                                                //等待前一幀數據發送完畢
  69.         TI=0;                                                        //復位標志位
  70. }
  71. void U1_TX_C(char *send)
  72. {
  73.         unsigned char a=0;
  74.         while(send[a])
  75.         {
  76.          Uartsend_1(send[a]);
  77.          a++;
  78.         }
  79. }

  80. void Uartsend_adc(unsigned long send)
  81. {
  82.     unsigned char a[4],b,c[4];
  83.         int x=0,s=0,j=5;
  84.         send=send*500/1024;        //電壓計算
  85.         a[0]=send%10+'0';               
  86.         a[1]=send/10%10+'0';               
  87.         a[2]='.';                                       
  88.            a[3]=send/100+'0';       
  89.         a[3]=a[3]-1;   
  90.        

  91.    for(b=4;b>0;b--)                        //發送
  92.    Uartsend_1(a[b-1]);                //
  93.    
  94. }

  95. void main()
  96. {                   int j=0;
  97.     int x=0,s=0,lj=0;
  98.         unsigned int adcnum;
  99.          unsigned char a=0;
  100.         ADC_int();                //ADc初始化
  101.         UartInit();                                //9600bps@11.0592MHz
  102.   while(1)
  103.         {
  104.             U1_TX_C("電壓");
  105.                 Uartsend_1(0X22);//' “ '的十六進制數
  106.                 adcnum=ADC_Read();                //讀取一次
  107.                 a= (adcnum/100)+0x30;        //對照ASCII表,0的編碼"十進制"48--"十六進制"0x30
  108.                 if(a>56) s=1;
  109.             else if(a<=56)         x=1;  
  110.             if(s==1&&x==1)                             //電壓下降沿檢測
  111.              {j++;  //下降次數累加
  112.               s=0;}                  
  113.             Uartsend_adc(adcnum);   
  114.                 U1_TX_C("V");               
  115.                 Uartsend_1(0X22);                 //' “ '的十六進制數
  116.              Uartsend_1(0Xff);                 //空格
  117.                 U1_TX_C("次");
  118.                 SendFourData(j);
  119.                 x=0;
  120.                 if(j>=255)
  121.                 {lj++;
  122.                 j=0;}
  123.                 Uartsend_1(0Xff);
  124.                 U1_TX_C("累加");       
  125.                 SendFourData(lj);                                            
  126.                 Uartsend_1(0Xff);
  127.                 Uartsend_1(0Xff);
  128.                 Uartsend_1(0Xff);
  129.                 Uartsend_1(0Xff);
  130.                 Uartsend_1(0Xff);
  131.                 Uartsend_1(0Xff);
  132.                 Uartsend_1(0Xff);
  133.                 Uartsend_1(0Xff);
  134.                 Delay_ms(500);
  135.         }
  136. }
復制代碼

所有資料51hei提供下載:
電壓采集次數不帶掉電保存.rar (45.5 KB, 下載次數: 50)

評分

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

查看全部評分

回復

使用道具 舉報

ID:24685 發表于 2019-12-22 21:06 | 顯示全部樓層
呵呵不錯謝謝
回復

使用道具 舉報

ID:1051901 發表于 2022-12-14 10:34 | 顯示全部樓層
不錯哦,可以試試
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人高潮片免费视频欧美 | www.男人天堂.com | 免费的一级视频 | 欧美亚洲一区二区三区 | www.国产精| 欧美男人天堂 | 9久9久9久女女女九九九一九 | 亚洲h视频 | 久久国内 | av夜夜操 | 在线不卡 | 欧洲尺码日本国产精品 | 午夜综合 | 国产精品一区二区免费看 | 欧美综合一区 | 久久影音先锋 | 在线观看涩涩视频 | 九九热在线免费观看 | av首页在线| 亚洲综合无码一区二区 | 国产精品久久久久久久久图文区 | 国产午夜三级一区二区三 | 免费一级欧美在线观看视频 | www.操.com| 成人不卡在线 | 91精品国产色综合久久不卡蜜臀 | 国产美女视频黄 | 国产精品视频一 | 国产亚洲精品美女久久久久久久久久 | 国产精品一区二区免费看 | 99久久99 | 亚洲高清在线观看 | 精品国产乱码久久久久久图片 | 午夜av成人| 日韩中文字幕在线视频 | 亚洲精品日韩欧美 | 天天干免费视频 | 欧美aⅴ片 | 亚洲成人午夜电影 | 在线观看国产网站 | 青青青伊人 |