新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PROTUS仿真51單片機測頻程序

        PROTUS仿真51單片機測頻程序

        作者: 時間:2016-11-30 來源:網絡 收藏
        頻率計:

        LCD1602顯示
        在不增加外部計數硬件的情況下,本試驗軟件可測最高頻率達到460KHz

        本文引用地址:http://www.104case.com/article/201611/323601.htm

        工作原理:

        1S 鐘內對輸入脈沖所計數的次數則為頻率值。
        16位二進制加法計數器的最大計數值為 65535。

        設置定時器 0 工作在定時方式1,定時1S。
        設置定時器 1 工作在計數方式1,對輸入脈沖進行計數,溢出產生中斷。
        將定時器 1中斷定義為優先。在中斷處理程序里對中斷次數進行計數。1S到后,將中斷次數和計數器里的計數值取出進行綜合數據處理,處理后的數據送LCD1602顯示。

        /********************
        程序名:頻率計
        功能:雙通道頻率測量,未加分頻的情況下最高測頻值65KHZ
        網站:51單片機教程網http://www.51hei.com
        作者:周勇
        日期:2010年4月10日
        *********************/
        #include
        sbit led=P1^7;
        sbit rs=P3^7;//rs=P2^5;
        sbit e=P3^6;//e=P2^7;
        sbit shift=P1^7;
        #define uchar unsigned char
        #define uint unsigned int
        uint time,aa;
        uint num,ff;
        uchar qian,bai,shi,ge;
        void delay_ms(uint z)
        {
        uint x,y;
        for(x=z;x>0;x--)
        for(y=100;y>0;y--);
        }
        void writecom(uchar com)//寫命令
        {
        rs=0;
        // rw=0;
        P2=com;
        delay_ms(5);
        e=1;
        delay_ms(5);
        e=0;
        }
        void writedate(uchar date)//寫數據
        {
        rs=1;
        //rw=0;
        P2=date;
        delay_ms(5);
        e=1;
        delay_ms(5);
        e=0;
        }
        void lcd_init()
        {

        P2=0xff;
        led=1;
        writecom(1);//清除顯示
        delay_ms(20);
        writecom(0x38);//設置液晶為16*2矩陣,5*7點陣,8位數據接口(寫命令)
        delay_ms(20);
        writecom(0x0E);//設置液晶開顯示,顯示光標,光標閃爍(寫命令)
        delay_ms(20);
        writecom(0x06);//設置地址自動向右加1(寫命令)
        delay_ms(20);
        writecom(0x80);//光標指針位置初始化(寫命令)
        delay_ms(20);

        }
        void lcd_1602xy(uchar x,uchar y,uchar date)//X值為行,Y為列,DATE為數據
        {
        uchar i,j;
        i=x;j=y;
        if(i==1)
        {
        writecom(0x80+j);
        delay_ms(1);
        writedate(date);
        delay_ms(1);
        }
        if(i==2)
        {
        writecom(0x80+0x40+j);
        delay_ms(1);
        writedate(date);
        delay_ms(1);
        }
        }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 鸡东县| 金溪县| 普安县| 林西县| 苏尼特左旗| 岑溪市| 廉江市| 西城区| 卢湾区| 陆丰市| 仁布县| 澜沧| 镇原县| 巴南区| 平武县| 汉中市| 铜梁县| 德保县| 德格县| 都昌县| 玉环县| 黄浦区| 阿图什市| 平塘县| 勃利县| 体育| 资兴市| 彩票| 修武县| 临夏县| 嘉善县| 龙胜| 宁都县| 海丰县| 民乐县| 体育| 吕梁市| 石狮市| 太康县| 梓潼县| 防城港市|