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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于stc12c5a60s2的ad轉換

[復制鏈接]
跳轉到指定樓層
樓主
ID:162935 發表于 2017-2-10 19:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uint adc_finished;
float a;
uchar shi,ge,bai;
int b;
sfr adc_contr=0xbc;//adc控制寄存器,不可位尋址,用或運算來設置
sfr adc_res=0xbd;//轉換結果寄存器,高八位
sfr adc_low2=0xbe;//轉換結果寄存器,低兩位
sfr p1asf=0x9d;//設置p1的那一口為輸入口,不可位尋址.
/*以下都是控制寄存器的各位地址*/
#define adc_power 0x80;//adc電源,第7位
#define adc_flag 0x10;//轉換結束標志位,第4位
#define adc_start 0x08;//轉換開始,第3位
#define adc_speedll 0x00;//速度位,第5,6位
#define adc_speedl 0x20;
#define adc_speedh 0x40;
#define adc_speedhh 0x60;
#define adc_chs 0x00;//輸入通道為第p1.0,1,2,3三位可設置p10-p17
//位定義完成
void adcinit()       //adc初始化函數
{
p1asf=0x01;          //設置p10 為ad轉換輸入口
adc_contr=0xe0;      //打開電源,設最高速度
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續正確讀取ADC控制寄存器的值
_nop_();
adc_contr|=adc_chs;   //設置頻道
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續正確讀取ADC控制寄存器的值
_nop_();
}
uint huqushuju()                //adc轉換函數,數據得到
{
adcinit();
adc_res=0;
adc_low2=0;
adc_contr|=adc_start;//啟動ad轉換,置1為起動,轉換結束后自動置0
_nop_();
_nop_();                         
_nop_();                  
_nop_();
adc_finished=0;
while(adc_finished==0)
{
adc_finished=adc_contr&adc_flag;//檢測是否轉換結束,沒結束一直等
}

adc_contr=adc_contr&0xef;//轉換結束標志清零
                          //也可寫成
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續正確讀取ADC控制寄存器的值
_nop_();
a=adc_res*4+adc_low2;
a=a*5/1023;
a=100-20*a;
a=a*10;
adc_contr|=adc_start;
_nop_();
_nop_();                          //設置好ADC控制寄存器之后要加>4us
_nop_();                  //的延時才能繼續正確讀取ADC控制寄存器的值
_nop_();

return a;
}
void display(uchar bai,uchar shi,uchar ge)
{
          uint i,t;
        for(i=0;i<3;i++)
        {
                switch(i)         //位選,選擇點亮的數碼管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0;P0=table[ge]; break;//顯示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; P0=table[shi];break;//顯示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0;P0=table[bai]; break;//顯示第2位
                                         
                }
                  t=1000;
                  while(t--);
        }
}


void main()
{
   while(1)
   {
     b=(int)a;
     ge=b%10;
         shi=b/10/10;
         bai=b/100;
         display(bai,shi,ge);
   }
}
這是我的程序 但是數碼管顯示000  模擬信號沒問題

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

使用道具 舉報

沙發
ID:426595 發表于 2018-11-14 19:17 | 只看該作者
請問有仿真圖嗎
回復

使用道具 舉報

板凳
ID:263426 發表于 2018-11-14 22:25 | 只看該作者
沒取到數據,每一個管腳用示波器測試,看看電平是否滿足時序
回復

使用道具 舉報

地板
ID:47286 發表于 2018-11-14 23:33 | 只看該作者
STC官方手冊上有c語言范例
回復

使用道具 舉報

5#
ID:213173 發表于 2018-11-15 15:37 | 只看該作者
本帖最后由 wulin 于 2018-11-16 09:23 編輯

??????????????
回復

使用道具 舉報

6#
ID:697657 發表于 2020-2-24 21:19 | 只看該作者
數碼管沒有反應都是000,什么情況
回復

使用道具 舉報

7#
ID:697657 發表于 2020-2-24 21:21 | 只看該作者
大師,這個程序是不是數碼管顯示沒寫
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区中文字幕 | 日韩精品二区 | 国产在线a | 97精品超碰一区二区三区 | 免费亚洲成人 | 国产一级在线 | 亚洲欧美激情国产综合久久久 | 久久久久久久国产精品 | 欧美8一10sex性hd | 国产精品视频一区二区三区 | 日韩欧美在线一区二区 | 琪琪午夜伦伦电影福利片 | 在线免费观看色 | 综合久久综合久久 | 亚洲精品女优 | 国产乱码精品1区2区3区 | av片在线观看 | 国产精品久久久久久婷婷天堂 | 精品免费| 久久综合久 | 亚洲成人免费视频 | 欧美精品中文字幕久久二区 | 国产精品视频一二三 | 欧洲亚洲视频 | 国产福利91精品 | 久久久久久久久久久久久久国产 | 91亚洲国产成人久久精品网站 | 成人一区二区三区在线观看 | 精品欧美乱码久久久久久 | 亚洲精品国产电影 | 色婷婷在线视频 | 狠狠婷婷综合久久久久久妖精 | 欧美综合网 | 国产情侣在线看 | 欧美日韩精品一区二区三区四区 | 国产精品久久久久久久岛一牛影视 | 亚洲欧美中文日韩在线v日本 | 成人性视频免费网站 | 日韩视频精品 | 国产成人jvid在线播放 | 成人在线不卡 |