中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TLC1549的單片機(jī)數(shù)字電壓表程序

        基于TLC1549的單片機(jī)數(shù)字電壓表程序

        作者: 時(shí)間:2012-11-15 來源:網(wǎng)絡(luò) 收藏

        #include reg52.h> //52系列頭文件
        #define Disdata P1 //液晶數(shù)據(jù)端口
        #define uchar unsigned char //無符號(hào)字符8位
        #define uint unsigned int //無符號(hào)整數(shù)8位
        uint data dis[4]={0x00,0x00,0x00,0x00};//4個(gè)數(shù)據(jù)單元和一個(gè)
        uchar code table[]="VOLTAGE:+ . V"; //定義初始上電液晶默認(rèn)顯示狀態(tài)
        uchar code table1[]="designed by :";
        uchar code table3[]=" Li Xiaojun";
        uchar code table2[]="SCOPE: 0-50.00V";
        uchar code table4[]=" not reversed! ";
        sbit lcden=P3^2;//定義液晶使能端
        sbit lcdrs=P3^0;//定義液晶RS端
        sbit rw=P3^1;//定義液晶RW端
        sbit ALE=P2^3;//定義鎖存地址控制位
        sbit cs_ad=P3^5;//片選段,低電平有效
        sbit dout=P3^4;//數(shù)據(jù)輸出端
        sbit clk=P3^3; //轉(zhuǎn)換結(jié)束標(biāo)志位
        sbit speak=P3^7;//蜂鳴器
        sbit bijiao=P3^6;//接反檢測信號(hào)
        data int result;//測量變量暫存地址
        void jiefan();//接反子函數(shù)
        uchar num,num1,num2,num3,num4,num5;
        uchar shii,gei;

        //********延時(shí)函數(shù)************
        void delay(uint z)
        {
        uint x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
        }

        //*************
        void write_com(uchar com) //液晶寫命令函數(shù)
        {
        lcdrs=0;
        P1=com;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
        }
        void write_data(uchar date) //液晶寫數(shù)據(jù)函數(shù)
        {
        lcdrs=1;
        P1=date;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
        }
        void write_sg(uchar add,uchar date) //寫整數(shù)位和小數(shù)位函數(shù)
        {
        uchar shi,ge;
        shi=date/10; //分解出一個(gè)2位數(shù)的十位
        ge=date%10;
        write_com(0x80+add);//設(shè)置顯示位置
        write_data(0x30+shi);//送去液晶顯示十位
        write_data(0x30+ge); //送去液晶顯示個(gè)位
        }

        void init()
        {
        rw=0;
        lcden=0;
        shii=0;
        gei=0;
        write_com(0x38); //初始化1602液晶
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
        write_com(0x80); //設(shè)置顯示初始坐標(biāo)

        for(num2=0;num213;num2++)
        {
        write_data(table1[num2]);
        delay(5);
        }
        write_com(0x80+40);
        for(num3;num316;num3++)
        {
        write_data(table3[num3]);
        delay(5);
        }
        delay(3000);

        }

        //*******************************
        void scan1()
        {
        write_com(0x80); //設(shè)置顯示初始坐標(biāo)
        for(num=0;num16;num++)
        {
        write_data(table[num]);
        delay(5);
        }
        write_sg(9,shii);
        write_sg(12,gei);
        write_com(0x80+40);
        for(num1;num116;num1++)
        {
        write_data(table2[num1]);
        delay(5);
        }
        write_sg(9,shii);
        write_sg(12,gei);
        }

        //****轉(zhuǎn)換處理子函數(shù)********

        void test()

        {

        data uchar i;

        cs_ad=1; //禁止i/o clock
        cs_ad=0; //開啟控制電路,使能data out和i/o clock
        result=0; //清轉(zhuǎn)換變量
        for(i=0;i10;i++) //采集10次 ,即10bit
        {
        clk=0;
        result*=2;
        if(dout) result++;
        clk=1;
        }
        delay(590);
        cs_ad=1; ;;;; //data out 返回到高阻狀態(tài)而終止序列
        //****數(shù)據(jù)轉(zhuǎn)換處理**********
        result=result*10;//結(jié)果值擴(kuò)大10倍
        dis[2]=result/205;//計(jì)算整數(shù)位
        dis[3]=result%205;//余數(shù)暫存
        dis[3]=dis[3]*10;//計(jì)算小數(shù)第一位
        dis[1]=dis[3]/205;
        dis[3]=dis[3]%205;
        dis[3]=dis[3]*10; //計(jì)算小數(shù)第二位
        dis[0]=dis[3]/205;
        shii=dis[2];
        gei=dis[1]*10+dis[0];
        write_sg(9,shii);
        write_sg(12,gei);

        }
        //*****接反子函數(shù)*********
        void jiefan()
        {
        if(bijiao==0)
        {
        delay(100);
        if(bijiao==0)
        {
        speak=0;
        }
        else
        speak=1;

        }
        else
        {
        speak=1;

        }
        }
        //*******主函數(shù)*****
        void main()
        {
        init();
        scan1();
        while(1)
        {
        test();
        jiefan();
        }
        }


        上一頁 1 2 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉