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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6505|回復(fù): 2
收起左側(cè)

STC15W408AS單片機(jī)電壓采集次數(shù)不帶掉電保存

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

單片機(jī)源程序如下:
  1. #include "STC15F2K60S2.H"
  2. #include<intrins.h>
  3. /**********************************************
  4. 此程序?yàn)殡妷合陆笛夭杉绦颍诎l(fā)送電壓及次數(shù),不帶掉電保存
  5. 采用單片機(jī)型號(hào)為STC15W408AS    采集引腳為P1.4
  6. 注:更改引腳需要更改ADC初始化引腳,對(duì)應(yīng)數(shù)值需參考P1ASF介紹
  7.     還需更改ADC_CONTR的值,進(jìn)行引腳變換頻率的設(shè)定。
  8.         **********************************************************/
  9. void Delay_ms(unsigned int ms)            ///////////延時(shí)1000MS對(duì)應(yīng)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;               //對(duì)照ASCII表,0的編碼"十進(jìn)制"48--"十六進(jìn)制"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設(shè)置為ADC引腳
  41.         CLK_DIV=0X20;                //ADC結(jié)果設(shè)置       
  42.         ADC_CONTR=0X80;                //打開(kāi)ADC 電源
  43.         ADC_RESL=0;                         /////ADC高位存儲(chǔ)                                               
  44.         ADC_RES=0;                         /////ADC低位存儲(chǔ)
  45.         Delay_ms(10);
  46. }
  47. unsigned int ADC_Read()                //讀ADCCH6
  48. {
  49.         unsigned int a=0;
  50.         ADC_CONTR = 0X8c;                //啟動(dòng)ADC電源和設(shè)置P1.4口為ADC轉(zhuǎn)換并且540個(gè)時(shí)鐘轉(zhuǎn)換一次
  51.         Delay_ms(1);               
  52.         while(!(ADC_CONTR&0X10));        //等待轉(zhuǎn)換完成
  53.         a=ADC_RES*256+ADC_RESL;                //獲取ADC結(jié)果
  54.         ADC_CONTR&=~0x10;
  55.         return a;
  56. }
  57. void UartInit()                                //9600bps@11.0592MHz
  58. {
  59.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  60.         AUXR = 0x14;
  61.         AUXR |= 0x01;                //串口1選擇定時(shí)器2為波特率發(fā)生器
  62.         T2L = 65536-(11059200/4/9600);                //設(shè)定定時(shí)初值
  63.         T2H = (65536-(11059200/4/9600))>>8;                //設(shè)定定時(shí)初值
  64. }
  65. void Uartsend_1(unsigned char send)
  66. {
  67.         SBUF=send;                                                //發(fā)送數(shù)據(jù)
  68.         while(!TI);                                                //等待前一幀數(shù)據(jù)發(fā)送完畢
  69.         TI=0;                                                        //復(fù)位標(biāo)志位
  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;        //電壓計(jì)算
  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--)                        //發(fā)送
  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);//' “ '的十六進(jìn)制數(shù)
  106.                 adcnum=ADC_Read();                //讀取一次
  107.                 a= (adcnum/100)+0x30;        //對(duì)照ASCII表,0的編碼"十進(jìn)制"48--"十六進(jìn)制"0x30
  108.                 if(a>56) s=1;
  109.             else if(a<=56)         x=1;  
  110.             if(s==1&&x==1)                             //電壓下降沿檢測(cè)
  111.              {j++;  //下降次數(shù)累加
  112.               s=0;}                  
  113.             Uartsend_adc(adcnum);   
  114.                 U1_TX_C("V");               
  115.                 Uartsend_1(0X22);                 //' “ '的十六進(jìn)制數(shù)
  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. }
復(fù)制代碼

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


評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:24685 發(fā)表于 2019-12-22 21:06 | 顯示全部樓層
呵呵不錯(cuò)謝謝
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: caoporn国产 | 久久精品中文字幕 | 精品久久久久一区二区国产 | 久久久久一区 | 午夜日韩| 免费黄篇| 天天色图 | 91大片| 久草新视频| 国产精品亚洲成在人线 | 羞羞午夜 | 日本黄色免费大片 | 黄网免费 | 日韩中文字幕一区二区 | 精品欧美乱码久久久久久1区2区 | 亚洲精品www | 国产精品高潮呻吟久久 | 综合天天久久 | 天堂色区 | 香蕉视频在线播放 | av第一页| 欧美黄色精品 | 国产成人午夜电影网 | 成人免费视频一区 | 国产福利91精品一区二区三区 | 香蕉一区二区 | 日韩三级在线 | 欧美日韩一区二区在线观看 | 国产视频1区 | 在线观看第一区 | 亚洲成人日韩 | 中文字幕成人网 | 综合色久 | 久久不卡| 亚洲精彩免费视频 | av色站 | 综合五月 | 一区免费观看 | 中文字幕日韩欧美一区二区三区 | 国产成人免费视频网站高清观看视频 | 亚洲444kkkk在线观看最新 |