新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機定時器計數

        AVR單片機定時器計數

        作者: 時間:2016-11-29 來源:網絡 收藏
        #include
        #include
        #define uchar unsigned char
        #define uint unsigned int
        uchar num1;
        #pragma interrupt_handler miao:9//它所對應的位置
        #pragma data:code//定義程序存在ROM里面
        const uchar table[]={
        0xc0,0xf9,0xa4,0xb0,0x99,
        0x92,0x82,0xf8,0x80,0x90,
        0x88,0x83,0xc6,0xa1,0x86,
        0x8e
        };
        /***********************************************/
        /*******************延時子程序******************/
        /***********************************************/
        void delay(uchar z)
        {
        uchar x,y;
        for(x=0;x<255;x++)
        for(y=0;y}
        /***********************************************/
        /*******************顯示子程序******************/
        /***********************************************/
        void xian(uchar num)
        {
        PORTA=table[num/10];//十位
        PORTC&=~BIT(1);
        delay(2);
        PORTC|=BIT(1);
        PORTA=table[num%10];//個位
        PORTC&=~BIT(0);
        delay(2);
        PORTC|=BIT(0);
        }
        /***********************************************/
        /*****************中斷服務子程序***************/
        /***********************************************/
        void miao()
        {
        if(num1==60)
        num1=0;
        num1++;//將變量加1
        TCNT1H=0XA4;//賦值高位
        TCNT1L=0X71;//賦值低位
        }
        /***********************************************/
        /*******************主程序*********************/
        /***********************************************/
        void main()
        {
        DDRA=0XFF;//設置PA口為輸出方式
        DDRC|=BIT(0)|BIT(1);//設置兩位為輸出方式
        TCCR1B=0XA4;//設置256分頻 6M晶體=6000000/256分頻-65535化成16進制
        TCNT1H=0X71;//給它高位賦值
        TCNT1L=0XED;//給它低位賦值
        TIMSK|=BIT(2);//打開定時器中斷
        SREG|=BIT(7);//打開總中斷
        while(1)
        {
        xian(num1);
        }
        }


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 黄陵县| 黎川县| 青冈县| 临清市| 微山县| 隆化县| 库车县| 颍上县| 苍溪县| 城步| 原阳县| 威海市| 邹城市| 名山县| 龙泉市| 龙游县| 天台县| 翼城县| 蒙自县| 巨野县| 湘乡市| 嘉荫县| 达尔| 蕲春县| 青海省| 桂阳县| 怀化市| 江华| 泰宁县| 台东市| 绍兴市| 五原县| 丰台区| 宁明县| 阿瓦提县| 饶阳县| 通海县| 深水埗区| 闽侯县| 郓城县| 福州市|