新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 新手常用單片機延時程序

        新手常用單片機延時程序

        作者: 時間:2013-01-30 來源:網絡 收藏

        (適合初學者)

        下面幾個是(包括asm和C程序,都是我在學的過程中用到的),在單片機中應考慮所使用的晶振的頻率,在51系列的單片機中我們常用的是11.0592MHz和12.0000MHz的晶振,而在AVR單片機上常用的有8.000MHz和4.000MH的晶振所以在網上查找程序時如果涉及到精確延時則應該注意晶振的頻率是多大。

        軟件延時:(asm)

        晶振12MHZ,延時1秒

        程序如下:

        DELAY:MOV 72H,#100

        LOOP3:MOV 71H,#100

        LOOP1:MOV 70H,#47

        LOOP0JNZ 70H,LOOP0

        NOP

        DJNZ 71H,LOOP1

        MOV 70H,#46

        LOOP2JNZ 70H,LOOP2

        NOP

        DJNZ 72H,LOOP3

        MOV 70H,#48

        LOOP4JNZ 70H,LOOP4

        定時器延時:

        晶振12MHZ,延時1s,定時器0工作方式為方式1

        DELAY1:MOV R7,#0AH ;; 晶振12MHZ,延時0.5秒

        AJMP DELAY

        DELAY2:MOV R7,#14H ;; 晶振12MHZ,延時1秒

        DELAY:CLR EX0

        MOV TMOD,#01H ;設置定時器的工作方式為方式1

        MOV TL0,#0B0H ;給定時器設置計數初始值

        MOV TH0,#3CH

        SETB TR0 ;開啟定時器

        HERE:JBC TF0,NEXT1

        SJMP HERE

        NEXT1:MOV TL0,#0B0H

        MOV TH0,#3CH

        DJNZ R7,HERE

        CLR TR0 ;定時器要軟件清零

        SETB EX0

        RET

        C語言延時程序:

        void delay_18B20(unsigned int i)

        {

        while(i--);

        }

        void Delay10us( ) //12mhz

        {

        _NOP_( );

        _NOP_( );

        _NOP_( );

        _NOP_( );

        _NOP_( );

        _NOP_( );

        }

        /*****************11us延時函數*************************/

        //

        void delay(uint t)

        {

        for (;t>0;t--);

        }

        1ms延時子程序(12MHZ)

        void delay1ms(uint p)//12mhz

        { uchar i,j;

        for(i=0;i

        {

        for(j=0;j124;j++)

        {;}

        }

        }

        函數功能:延時20ms的子程序


        上一頁 1 2 3 下一頁

        關鍵詞: 單片機 延時程序

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 漳州市| 黎平县| 滨海县| 兰州市| 宝坻区| 蓬溪县| 缙云县| 井研县| 呼图壁县| 金塔县| 平顺县| 闽清县| 龙州县| 苗栗县| 崇左市| 军事| 宝坻区| 辽中县| 本溪市| 视频| 汝南县| 太湖县| 绍兴市| 永修县| 遂宁市| 庐江县| 怀来县| 宁陕县| 正定县| 兴山县| 娄烦县| 大厂| 南昌市| 汝城县| 银川市| 遂昌县| 永春县| 息烽县| 正安县| 巴马| 肇东市|