在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

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

            #include reg52.h> //52系列頭文件
            #define Disdata P1 //液晶數(shù)據(jù)端口
            #define uchar unsigned char //無符號字符8位
            #define uint unsigned int //無符號整數(shù)8位
            uint data dis[4]={0x00,0x00,0x00,0x00};//4個數(shù)據(jù)單元和一個
            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;//接反檢測信號
            data int result;//測量變量暫存地址
            void jiefan();//接反子函數(shù)
            uchar num,num1,num2,num3,num4,num5;
            uchar shii,gei;

            //********延時函數(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; //分解出一個2位數(shù)的十位
            ge=date%10;
            write_com(0x80+add);//設(shè)置顯示位置
            write_data(0x30+shi);//送去液晶顯示十位
            write_data(0x30+ge); //送去液晶顯示個位
            }

            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é)果值擴大10倍
            dis[2]=result/205;//計算整數(shù)位
            dis[3]=result%205;//余數(shù)暫存
            dis[3]=dis[3]*10;//計算小數(shù)第一位
            dis[1]=dis[3]/205;
            dis[3]=dis[3]%205;
            dis[3]=dis[3]*10; //計算小數(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 下一頁

            評論


            相關(guān)推薦

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

            關(guān)閉