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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于STC12C5A60S2內部自帶AD功能的使用

[復制鏈接]
跳轉到指定樓層
樓主
ID:494791 發表于 2019-5-29 09:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
預期實現功能:在1602上顯示電壓值,同時用P2口顯示ADC結果寄存器中的八位數值
現在好像是一個都不好使
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int  
#define uchar unsigned char
sfr P1ASF=0X9D;                 //P1口模擬功能控制寄存器
sfr        ADC_CONTR=0XBC;        //ADC控制寄存器
sfr        ADC_RES=0XBD;        //AD轉換結果存放
sfr        ADC_RESL=0XBE;        //AD轉換結果存放
sfr        AUXR1=0XA2;               
//sfr        IE=0XA8;               
//sfr        IPH=0XB7;        //中斷優先級控制寄存器高
//sfr        IP=0XB8;        //中斷優先級控制寄存器低
sbit k1=P3^1;

sbit rs=P2^6;         
sbit rw=P2^5;        
sbit en=P2^7;

uchar temp;

unsigned int result=0,resulth=0;

void delay1ms(unsigned int d)   //誤差 0us
{
    unsigned char a,b,c;
    for(c=d;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}
void lcd_wcom(uchar com)                  
{
    rs=0;            
    rw=0;            
    P0=com;         
    delay1ms(5);        
    en=1;           
    en=0;
}
void lcd_wdat(uchar dat)            
{
    rs=1;        
    rw=0;        
    P0=dat;         
    delay1ms(5);      
    en=1;      
    en=0;
}
void lcd_init()                 
{
    lcd_wcom(0x38);      
    lcd_wcom(0x0c);   
    lcd_wcom(0x06);   
    lcd_wcom(0x01);     
}
void ADinit()
{
   P1ASF=0x01;        //P1^0口作為AD輸入口
   ADC_CONTR=0x20;          //P1^0口作為AD輸入口,360個時鐘周期轉換一次
   AUXR1=0x00;        //高八位存放于ADC_RES,低二位存放于ADC_RESL
   IE=0XA0;                      //開總中斷允許AD中斷
}
void ADser() interrupt 5
{
     lcd_wcom(0x80+0x40);
         lcd_wdat(0x31);
     _nop_();
         _nop_();
         _nop_();         
         _nop_();                                 //延時4個時鐘周期,使其趨于穩定
     temp=ADC_CONTR|0x10<<4; //此時ADC_FLAG的值被移入CY位;
         if(CY)
         {
           ADC_CONTR=0xC0;        //轉換完成,將ADC_FLAG清零
       resulth=ADC_RES;       //讀取高8位值
           P2=ADC_RES;            //把ADC_RES的值以點亮小燈的形式顯示出來P2口接有八個共陽極的led
           result=(unsigned int)(resulth*5/256);
           lcd_wcom(0x80);
           lcd_wdat(result/100+0x30);
           lcd_wdat(result%100/10+0x30);
           lcd_wdat(result%10+0x30);
         }
}
void main()
{
       ADinit();
        lcd_init();
        while(1)
        {
           ADC_CONTR=0XA8;;//開始AD轉換
           delay1ms(1000);
           delay1ms(1000);
           delay1ms(1000);
           delay1ms(1000);
           ADC_CONTR=0X20;;//關閉AD轉換        
        }
}                                                                 

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

使用道具 舉報

沙發
ID:88606 發表于 2019-5-29 14:16 | 只看該作者
看看STC官方例程
回復

使用道具 舉報

板凳
ID:330198 發表于 2019-5-29 16:51 | 只看該作者
你程序上明明用的P1口。
P1ASF=0x01;        //P1^0口作為AD輸入口
仔細看看吧。
回復

使用道具 舉報

地板
ID:285175 發表于 2019-8-10 22:32 | 只看該作者
我最近也在學這個單片機ad轉換,你的搞定沒有,方便分享一下程序嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产99热 | 8x国产精品视频一区二区 | 视频一区二区在线观看 | 久久久久免费 | 国产羞羞视频在线观看 | 久草精品视频 | 久久国品片 | 中文字幕亚洲区一区二 | 国产黄色在线观看 | 国产japanhdxxxx麻豆 | 亚洲免费影院 | 天天影视网天天综合色在线播放 | 中文字幕在线观 | 亚洲久久久 | 中文字幕在线视频免费视频 | 国产精品一区二 | 性福视频在线观看 | 亚洲精品免费视频 | 中国一级大黄大片 | 精品视频免费 | 亚洲一区二区三区免费视频 | 日韩色视频 | 99久久婷婷国产综合精品电影 | 成年人免费在线视频 | 亚洲一区二区三区四区av | 91在线看 | 97免费在线观看视频 | 久久精品国产久精国产 | 免费在线观看一区二区 | 国产精品99久久久久久动医院 | 国产一区在线免费 | 精品美女视频在免费观看 | 国产精品三级 | 亚洲三区视频 | 日本精品一区二区三区视频 | 国产精品久久国产精品99 gif | 羞羞的视频免费在线观看 | 999久久久 | 午夜色婷婷 | 久久69精品久久久久久国产越南 | 精品国产一区二区三区性色av |