新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC12C5410AD單片機的AD程序兩位數碼管顯示

        STC12C5410AD單片機的AD程序兩位數碼管顯示

        作者: 時間:2012-10-11 來源:網絡 收藏

        /*用的是主程序中轉換AD,在以后的使用中要用中斷的方法才能節約CPU的使用率,本程序中是用P1.0為輸入,用的是單片機本身的10位AD,最大1024分辨率,除以10后最大為102,用兩位的數碼管,所以只能在99以內,在程序中大于99的數,就只能顯示99,也可用三位.*/

        #include reg52.h>#define uchar unsigned char#define uint unsigned int#define duan P1  //數碼管段碼輸出端sfr ADC_CONTR  = 0xc5; sfr ADC_DATA   = 0xc6;sfr ADC_LOW2   = 0xbe;sfr P1M0 =0x91;sfr P1M1 =0x92;sbit sw=P2^7; //數碼管的十位選通sbit gw=P2^6; //數碼管的個位選通uint shu,ad_shu;uchar code tab[]={         0xEE,/*0*/0x48,/*1*/0xD6,/*2*/0xDC,/*3*/0x78,/*4*/0xBC,/*5*/0xBE,/*6*/0xC8,/*7*/0xFE,/*8*/0xFC,/*9*/};void delay( ){uchar a;for(a=10;a>0;a--);}void desplay(int bb){uint ab;ab=bb;if(ab>99) ab=99;duan=tab[ab/10];sw=0;delay();sw=1;duan=tab[ab%10];gw=0;delay();gw=1; }void main(){ADC_CONTR=0xe0; //開A/D轉換器P1M0=0x01; //定義P1.0為AD輸入端口,讓P1.0為高阻態P1M1=0x01; //定義P1.0為AD輸入端口,讓P1.0為高阻態while(1){ADC_CONTR|=0x08;while((ADC_CONTR  0x10)==0);ADC_CONTR=0xe7;ad_shu=ADC_DATA;ad_shu=2;ad_shu+=ADC_LOW2;shu=ad_shu/10;desplay(shu);}}


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安福县| 大港区| 汶上县| 梓潼县| 金寨县| 通州区| 舟山市| 正安县| 札达县| 莒南县| 安化县| 商南县| 石河子市| 新建县| 长垣县| 韶关市| 应城市| 望城县| 三门峡市| 始兴县| 济南市| 扎兰屯市| 郎溪县| 公主岭市| 台中县| 慈利县| 和林格尔县| 恩平市| 南皮县| 昌都县| 蛟河市| 凯里市| 五常市| 柘城县| 南投市| 丹阳市| 怀集县| 石棉县| 玛曲县| 桑日县| 洛浦县|