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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機學習筆記(十)模數轉換

[復制鏈接]
跳轉到指定樓層
樓主
ID:108531 發表于 2016-3-12 16:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機模數轉換實驗,運行程序后,調節電位器,數據變化。
C語言源程序:
#include <reg52.h> //52單片機頭文件包含
#include <intrins.h> //_nop()_函數頭文件包含
#define uchar unsigned char //宏定義uchar 為 unsigned char
sbit SCL2=P1^3;//SCL2定義為P1口的第3位腳,連接ADC0831SCL腳
sbit SDA2=P1^4;//SDA2定義為P1口的第4位腳,連接ADC0831SDA腳
sbit CS2=P2^6;//CS2定義為P1口的第4位腳,連接ADC0831CS腳
sbit RST=P2^5;// DS1302片選,因這兩芯片采用同一數據腳(SDA,SCL),所以我們要定義它,將DS1302片選關掉,否則發生沖突
sbit wei1=P2^0;//數碼管第一位
sbit wei2=P2^1;//數碼管第二位
sbit wei3=P2^2;//數碼管第三位
sbit wei4=P2^3;//數碼管第四位
uchar code table[]={0xC0,0xF9,0xA4,0xB0,
                        0x99,0x92,0x82,0xF8,
                        0x80,0x90,0x88,0x83,
                        0xC6,0xA1,0x86,0x8E};//共陽數碼管碼表
uchar l_tmpdate[]={0,0,0};//定義無符號字符數組并賦初值0
void Delay_xuS(unsinged int x);//延時函數聲明
void led_display(unsigned char *temp) //數碼管顯示函數聲明
uchar ad0831read(void);//讀取ADC0831數據函數聲明
void main(void)//入口函數
{
    uchar i=254,tmp; //定義無符號字符變量i并賦值254和tmp
    RST=0;//關閉DS1302片選
    while(1){ //主循環
        i++;//i自加
        if(i==255){
            tmp=ad0831read();//這里為循環255個周期讀取一次0831,因CPU運行比較快,沒必要每次循環都去讀取        i=0;i賦值為0
            l_tempdate[0]=tmp/100;//取百位上的數
            tmp=tmp % 100;//除100取余 取十位和個位上的數
            l_tmpdate[1]=tmp/10;//取十位上的數;
            l_tmpdate[2]=tmp%10;//取個位上的數
            //因讀到的數據為8位的二進制數,即0~255,我們將其分開放入l_tmpdate數組中
        }
        led_display(l_tmpdate);//輸出顯示
    }
}
void Delay_xuS(unsigned int x) //延時函數
{
    unsigned int j,j; //定義無符號整型變量i,j   
    for(i=0;i<x;i++)//for循環循環x次
    {
        for(j=0;j<50;j++);//for循環循環50次
    }
}
void led_display(unsinged char *temp) //數碼管顯示子程序
{
    wei1=0;//打開數碼管第1位顯示
    P0=table[temp[0]];//數組第一位數據送P0
    Delay_xuS(5);//延時500uS
    wei1=1;//關閉數碼管第1位顯示
    wei2=0;//打開數碼管第2位顯示
    P0=table[temp[1]];//數組第二位數據送P0
    Delay_xuS(5);//延時500uS
    wei2=1;//打開數碼管第2位顯示
    wei3=0;//打開數碼管第3位顯示
    P0=table[temp[2]];//數組第三位數據送P0
    Delay_xuS(5));//延時500uS
    wei3=1;//關閉數碼管第3位顯示
}
uchar ad0831read(void) //讀取ADC0831數據函數
{
    uchar i=0,tmp=0;//定義無符號字符變量i和tmp
    SDA=1;CS2=0;
    _nop_();_nop_();//延時
    CSL2=0;
    _nop_();_nop_();//延時
    CSL2=1;
    _nop_();_nop_();//延時
    SCL2=0;
    _nop_();_nop_();//延時
    SCL2=1;
    _nop_();_nop_();//延時
    SCL2=0;
    _nop_();_nop_();//延時
    for(i=0;i<8;i++){ //for循環循環8次
        tmp<<=1;//tmp左移1位賦值給tmp
        if(SDA2) //如果SDA2為真
            tmp++;//tmp值加1
        SCL2=1;
        _nop_();_nop_();//延時
        SCL2=0;
        _nop_();_nop_();//延時
    }
    CS2=1;
return tmp;//返回結果
}
//實驗現象 調節電位器改變電壓數碼管值隨之變化。

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区三区在线看 | 一区二区三区四区在线播放 | aaa在线观看 | 日韩三级精品 | 一区二区三区免费 | 最新日韩在线视频 | 中文字幕亚洲视频 | 天堂va在线观看 | 成人婷婷 | 久久精品毛片 | 国产激情免费视频 | 91久久精品国产91久久 | 日韩精品久久一区二区三区 | 久久99精品国产99久久6男男 | 亚洲一区二区三区四区五区中文 | 天天干在线播放 | 日产久久 | 免费国产网站 | 亚洲精品欧美 | 精品影院 | 国产999精品久久久 精品三级在线观看 | 激情小说综合网 | 毛片免费在线观看 | 久久精品国产久精国产 | 成人婷婷 | 国产黄色在线观看 | 在线激情视频 | 日韩欧美一级精品久久 | 久久久久国产 | 综合二区 | 日本成人在线观看网站 | 色黄网站| 99爱免费| 羞羞视频免费观看 | 国产精品久久久久久吹潮 | 欧美精品一区二区三区在线播放 | 亚洲专区在线 | 成人午夜在线 | 久久精品一区二区 | 亚洲 欧美 日韩 在线 | 色男人天堂av|