欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 學完中斷和定時器寫的一個程序 [打印本頁]

作者: liuqq    時間: 2015-5-22 00:23
標題: 學完中斷和定時器寫的一個程序

/*此程序是實現(xiàn)的功能是8路流水燈以1Hz的頻率閃動,數(shù)碼管2Hz的頻率靜態(tài)顯示1到F。我用了定時器實現(xiàn)2秒數(shù)碼管精確延時,用delay函數(shù)(即用軟件的方法,讓CPU無聊的做著自減運算耗時間。呵呵)實現(xiàn)1秒延時。程序運行時,LED走倆個,數(shù)碼管變化一個數(shù),就是這么簡單功能,但就是這么簡單的功能耗了我兩個小時呢,慚愧。之前沒用到中斷和定時器的功能。
#include<reg52.h>
#include<intrins.h>//這個函數(shù)很給力。
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,num;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay(uint z);
void main()
{
        num=0;
        aa=0;
        TMOD=0x01;/
        TH0=(65536-50000)/256;//裝初值
        TL0=(65536-50000)%256;
        EA=1;//總中斷開
        ET0=1;
        TR0=1;//定時器置位
        temp=0xfe;
        P1=temp;
    P2=0xfe;
        while(1)
        {
                delay(1000);
                temp=_crol_(temp,1);//只所以不用<<1左移運算符是因為左移運算符不是循環(huán)的,用左移的話后面還得寫一串處理函數(shù),來個intrins.h庫函數(shù),實現(xiàn)循環(huán)的左移運算,暈死,話說這個指令我下午才學會,如果要是流水燈方向變換的話很簡單,只要把temp=_crol_(temp,1)換成temp=_cror_(temp,1);就成了,真心便利
                P1=temp;
        }
}


void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}


void timer0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        aa++;
                if(aa==40)
                        {
                                aa=0;
                                num++;
                                if(num==16)
                                        num=0;
                                P0=table[num];
                       
                        }       
}
真心喜歡用C寫程序,方便靈活。匯編神馬的最討厭了。各種麻煩







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1