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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2062|回復: 2
打印 上一主題 下一主題
收起左側

STC8A單片機AC轉換問題

[復制鏈接]
回帖獎勵 3 黑幣 回復本帖可獲得 3 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:574524 發表于 2020-2-14 15:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
初學STC8A單片機,ADC轉換用P10通道,無檢測結果。接3.3V測試電壓,ADC_RES輸出為0;請指教!
程序如下:
  1. #include "stc8.h"
  2. #define uchar unsigned char  

  3. unsigned char const z[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//7段數碼管段碼表共陽0,1,2,3,4,5,6,7,8,9,.
  4. unsigned char code c[]={0x08,0x10,0x20,0x40};//數碼管掃描
  5. unsigned char smgduan[4]={0x3f,0x80,0x3f,0x3e};
  6. sbit LSA=P0^0;
  7. sbit LSB=P0^1;
  8. sbit LSC=P0^2;

  9. int e;
  10. void smg(void)
  11. {
  12. unsigned char i;
  13. while(1)
  14.       {
  15. for(i=0;i<4;i++)
  16. {
  17.   switch(i)
  18.   {
  19.    case(0):
  20.     LSA=0;LSB=0;LSC=0; break;//???0?
  21.    case(1):
  22.     LSA=1;LSB=0;LSC=0; break;//???1?
  23.    case(2):
  24.     LSA=0;LSB=1;LSC=0; break;//???2?
  25.    case(3):
  26.     LSA=1;LSB=1;LSC=0; break;//???3?
  27.   }
  28.   
  29.   P2=smgduan[i]
  30.   delay(100);
  31.   P2=0x00;
  32. }
  33. }}
  34. uint GetADCResult()   
  35. {   
  36.         ADC_CONTR = ADC_POWER|ADC_START;        
  37.     _nop_();
  38.     _nop_();
  39.    _nop_();
  40.    _nop_();
  41.    ADC_RES=0;
  42.     while(!(ADC_CONTR & 0x20));
  43.      ADC_CONTR &= ~ADC_FLAG;   
  44.       return (ADC_RES*4+ADC_RESL);
  45. }
  46. void main(void)
  47. {  
  48. uint V;
  49.   P1M0 = 0X00;
  50.   P1M1 = 0X00;
  51. ADC_CONTR=0x80;
  52. ADCCFG=0x00;
  53.   ADC_RES=0;
  54. ADC_RESL=0;
  55.   while(1)
  56. {
  57.   V=GetADCResult()*10;
  58. smgduan[0]=z[V/10];
  59. smgduan[2]=z[V%10];
  60. smg();
  61.   }
  62. }
復制代碼

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

使用道具 舉報

沙發
ID:213173 發表于 2020-2-15 07:13 | 只看該作者
樓主程序不完整,寄存器配置不當,給你補充并注釋,你試試。
  1. #include "stc8.h"
  2. #include "intrins.h"
  3. #define uchar unsigned char  
  4. #define uint unsigned int
  5. unsigned char const z[]={
  6. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};//7段數碼管段碼表共陰0,1,2,3,4,5,6,7,8,9,.
  7. //unsigned char code c[]={0x08,0x10,0x20,0x40};//數碼管掃描
  8. unsigned char smgduan[4];//顯示緩存
  9. sbit LSA=P0^0;
  10. sbit LSB=P0^1;
  11. sbit LSC=P0^2;
  12. //int e;
  13. void delay(uint k)
  14. {
  15.         uint i,j;
  16.         for(i=k;i>0;i--)
  17.                 for(j=1150;j>0;j--);//12T/j=110
  18. }

  19. void smg(void)
  20. {
  21.         static uchar i=0;
  22.         P2=0x00;//消隱
  23.         switch(i)//送位碼
  24.         {
  25.                 case(0):
  26.                 LSA=0;LSB=0;LSC=0;i++; break;//???0?
  27.                 case(1):
  28.                 LSA=1;LSB=0;LSC=0;i++; break;//???1?
  29.                 case(2):
  30.                 LSA=0;LSB=1;LSC=0;i++; break;//???2?
  31.                 case(3):
  32.                 LSA=1;LSB=1;LSC=0;i=0; break;//???3?
  33.         }
  34.         P2=smgduan[i];//送段碼
  35.         delay(1);
  36. }

  37. uint GetADCResult(uchar ch)   
  38. {   
  39.         ADC_CONTR = ADC_POWER|ADC_START|ch;//        
  40.         _nop_();
  41.         _nop_();
  42.         _nop_();
  43.         _nop_();
  44. //        ADC_RES=0;
  45.         while(!(ADC_CONTR & 0x20));
  46.         ADC_CONTR &= ~ADC_FLAG;   
  47.         return ADC_RES<<8|ADC_RESL;
  48. }
  49. void main(void)
  50. {  
  51.         uint V;
  52.         P1M0 = 0x00;//P1.0高阻模式
  53.         P1M1 = 0x01;//P1.0高阻模式
  54.         ADC_CONTR=0x80;//開ADC電源
  55.         ADCCFG=0x2f;//保存結果格式1/速度512時鐘
  56.         ADC_RES=0;//清以前結果
  57.         ADC_RESL=0;//清以前結果
  58.         while(1)
  59.         {
  60.                 V=GetADCResult(0);//通道P1.0結果0~4095
  61.                 smgduan[0]=z[V/1000%10];
  62.                 smgduan[1]=z[V/100%10];
  63.                 smgduan[2]=z[V/10%10];
  64.                 smgduan[3]=z[V%10];
  65.                 smg();
  66.         }
  67. }
復制代碼
回復

使用道具 舉報

板凳
ID:574524 發表于 2020-2-15 18:35 | 只看該作者
wulin 發表于 2020-2-15 07:13
樓主程序不完整,寄存器配置不當,給你補充并注釋,你試試。

謝謝指導!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本久久精 | 久热免费| 日韩视频精品在线 | av一二三四 | 九九在线精品视频 | 日韩www视频| 天天综合永久 | 久久亚洲一区 | 国产精品久久久久久久久久久免费看 | 日本韩国欧美在线观看 | 欧美1区 | 美国av片在线观看 | 日本精品视频一区二区 | 国产欧美精品一区二区 | 国产精品不卡一区二区三区 | 九色综合网 | 免费看91 | 日本不卡一区二区三区在线观看 | 亚洲播放一区 | 国产成人一区二区三区久久久 | 一区亚洲 | 欧美在线网站 | 午夜成人在线视频 | 天天影视亚洲综合网 | 成人妇女免费播放久久久 | 97色在线视频 | 操久久 | 日日操操 | 亚洲精品美女视频 | 久久成人精品 | 国产一区二区麻豆 | 国产成人99久久亚洲综合精品 | 91一区二区 | 免费爱爱视频 | 成人一区在线观看 | 高清一区二区三区 | 一区欧美 | jlzzxxxx18hd护士| 男女视频在线观看网站 | www.亚洲精品 | 一区二区视频在线 |