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

標題: 關于stc12a5c60s2中內部AD和DA的用法 [打印本頁]

作者: bai18736849064    時間: 2015-8-3 09:39
標題: 關于stc12a5c60s2中內部AD和DA的用法
求大神

作者: 騰飛的龍    時間: 2015-8-3 18:18
STC片內AD程序
  1. /****************************************************
  2.     P2口接4位數碼管顯示STC12C單片機AD轉換電壓值,
  3.         測P1 8個口任意一個口轉換電壓,
  4.     數碼管為共陽管

  5.         電壓為單片機電壓:5v經2個10k電阻分壓給單片機vref
  6.                                 提供2.5v基準電壓
  7.         作者:蘇義江
  8. ***********************************************/

  9. //#include<12c5a.h>
  10. #include<reg51.h>
  11. #include<intrins.h>  
  12. #define  uchar  unsigned  char
  13. #define  uint  unsigned   int

  14. uint AV;
  15. sfr P1ASF     = 0x9D;     //P1口模數轉換功能控制寄存器
  16. sfr ADC_CONTR = 0xBC; //AD轉換控制寄存器
  17. sfr ADC_RES   = 0xBD;  //AD轉換結果寄存器高位
  18. sfr ADC_RESL  = 0xBE; //AD轉換結果寄存器低位
  19. sfr AURX1     = 0xA2;  //AD轉換結果存儲方式控制位
  20. sfr ADC_CONTER=0xc5; //ADC控制寄存器
  21. sfr ADC_DATA=0xc6;//ADC轉換結果寄存器 高8位
  22. sfr ADC_LOW2  = 0xBE; //ADC轉換結果寄存器 低8位

  23. sfr P1M0 =0x91;
  24. sfr P1M1 =0x92;  
  25. sbit led =P0^0;
  26. sbit led1=P0^1;
  27. sbit wei =P0^6;
  28. sbit duan=P0^7;
  29. uint  a, b, c, d,temp;
  30. uchar code SMG[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  31. uchar code table1[]={0x04,0x9e,0x22,0x12,0x98,0x11,0x01,0x96,0x00,0x10};
  32. //帶小數點字碼表//
  33. uchar  code  table[]={0x44,0xde,0x62,0x52,0xd8,0x51,0x41,0xd6,0x40,0x50};
  34. //不帶小數點字碼表//

  35. void delay(uint z) //延時//   
  36. {
  37.     uint x,y;   
  38.          for(x=z;x>0;x--)   
  39.          for(y=125;y>0;y--);  
  40. }
  41. /****獲取ADC轉換結果*****/
  42. uint ADC()  //設置AD轉換口//

  43. {
  44.   ADC_CONTER = ADC_CONTER|0x80;
  45.   ADC_DATA=0x00;     
  46.   ADC_CONTER=0xe2;  
  47.   ADC_CONTER|=0x08;
  48.         //查詢ADC_FLAG位是否置1
  49.    while ((0x10&ADC_CONTER)!=0x10);
  50. //        ADC_CONTER = ADC_CONTER&0xe7;
  51.    ADC_CONTER&=0xE7; //關閉AD 清除轉換結束標志
  52.         //單片機電源為5V,求的真實電壓值
  53.    AV=256*ADC_DATA/5;//公式換算成電壓值//
  54.    return (AV);
  55. }
  56. void main ()
  57. {  
  58.         //設置P1.2為 AD 輸入口
  59. //         P1M0=0X02 ;
  60.   //   P1M1=0X02;
  61.         //把P1.0配置為ADC輸入引腳
  62. //        P1M0=0x01;
  63. //        P1M1=0x00;
  64.         //1111 1111 設置P1口為開漏模式,用來AD采集
  65.          P1M0=0xFF;
  66.          P1M1=0xFF;  
  67.          ADC_CONTER|=0x80;//打開ADC電源
  68.            while(1)  
  69.            {
  70.                 temp=ADC();   
  71.                         a=temp/1000;   
  72.                         b=(temp-a*1000)/100;   
  73.                         c=(temp-a*1000-b*100)/10;   
  74.                         d=temp%10;   
  75.                         wei=1;                       
  76.                         P2=0XFE;
  77.                         wei=0;
  78.                         duan=0;
  79.                         duan=1;                          
  80.                         P2=SMG[a];   
  81.                         delay(10);
  82.                            P2=0XFf;

  83.                         wei=1;               
  84.                         P2=0XFd;
  85.                         wei=0;
  86.                         duan=0;
  87.                         duan=1;       
  88.                         P2=SMG[b];   
  89.                         delay(10);
  90.                            P2=0XFf;

  91.                         wei=0;
  92.                         wei=1;
  93.                         P2=0XFb;
  94.                         duan=0;
  95.                         duan=1;          
  96.                     P2=SMG[c];   
  97.                         delay(10);
  98.                            P2=0XFf;

  99.                         wei=0;
  100.                         wei=1;
  101.                         P2=0XF7;
  102.                         duan=0;
  103.                         duan=1;         
  104.                           P2=SMG[d];   
  105.                           delay(10);   
  106.                           P2=0XFf;

  107.                                 if(AV>5.3)
  108.                                 led=0;led1=1;
  109.                                 if(AV<4.5)
  110.                                 led=1;led1=0;
  111.                                 if(AV<5.25&&AV>4.55)
  112.                                 led=1;led1=1;
  113.                 }
  114. }
復制代碼

作者: bai18736849064    時間: 2015-8-4 10:05
騰飛的龍 發表于 2015-8-3 18:18
STC片內AD程序

謝謝大神




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 在线一级片| 久久精品免费 | 在线国产欧美 | 亚洲69p | 亚洲在线中文字幕 | 精品久久精品 | 精品国产一区二区三区日日嗨 | 国产福利视频 | 黄色一级视频免费 | 国产中文字幕在线 | 成年人在线电影 | 91视频18 | 99久久免费精品国产男女高不卡 | 久久久久久亚洲 | 国产一区二区中文字幕 | 欧美不卡一区二区三区 | 日日操操 | 精品一区国产 | 午夜影院普通用户体验区 | av香蕉| 欧美福利一区 | 久久久久成人精品亚洲国产 | 国产在线高清 | 91视频在线看| 国产精品99久久久久久久vr | 亚洲欧美日韩精品久久亚洲区 | 日本精品裸体写真集在线观看 | 国产精品久久国产精品99 | www.天天操| 日韩一区二区三区精品 | 亚洲免费在线观看 | 亚洲精品综合 | 天天干天天插 | 91在线精品视频 | 色站综合 | 蜜臀网| 97国产精品| 国产成人精品免高潮在线观看 | 欧美激情综合五月色丁香小说 | 日干夜干| 久久福利网站 |