亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

Micrium-NXP-<b>ucos-i</b>I-LPC

  • 用定時器以間隔500MS在6位數碼管上依次顯示0、1、 2、3….C、D、E、F,重復。

    #include<reg51.h> #define uchar unsigned char #define uint unsigned int uint i,j; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void main() {  j=0; i=0;     TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1; TR0=1; while(1); } void time0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%6;     i++; if(i==15) { P0=table[j]; dula=1; dula=0; P0=0XC0; wela=1; wela=0; j++; i=0; if(j==16) { j=0; } } }

    標簽: 用定時器以間隔500MS在6位數碼管上依次顯示0、1、 2、3….C、D、E、F,重復。

    上傳時間: 2016-02-11

    上傳用戶:嬌縱Pamper

  • AVR單片機轉速表

    /****************************************************************                  外部晶振8M                  PA0~3:四位數碼管的位選                  PB0~7:數碼管的8位段選                  外部中斷0用于計數                  定時器0溢出中斷的定時為1ms                  說明 :檢測到水流較小時,繼電器延時1秒關閉  ******************************************************************/                #include<iom16v.h>   #include<macros.h>   #define uchar unsigned char   #define uint unsigned int       char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};  //數碼管段選        char position[4]={0xfe,0xfd,0xfb,0xf7};//數碼管位選        uint sumnum=0;  //用于記錄1000ms內進入中斷的次數        uint time=0;   //記錄進入比較定時器0的次數        uint num=0;     //記錄1ms內進入中斷的次數        uint count=0;   //進入外部中斷0的次數        uchar flag;        uint sumnum1;   //記錄100ms內的數目       /***************************函數聲明***************************/        void delay();        void display(uint m );        void init();        void init_0();        void init_2();    void _delay_us(uint l)   {        unsigned int i;        for(i=0;i<l;i++)        {        asm("nop");        }   }           /**************************主函數***********************************/       void main()   {        init();        init_0();        init_2();        while(sumnum<5)        {           PORTD=0XBF;           segdisplay(sumnum1);        }       while(1)       {           segdisplay(sumnum1);       }           }        /*************************掃描數碼管時的延時函數*********************/        void delay()    {         uchar i,j;         for(i=6;i>0;i--)         for(j=225;j>0;j--);    }        /************************數碼管顯示函數*****************************/       void segdisplay( int temp)        {         int seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};         int temp1,temp2,temp3,temp4;         temp1=temp/1000;         temp2=(temp/100)%10;         temp3=(temp/10)%10;         temp4=temp%10;         DDRB=0xff;         DDRA|=0x0f;           PORTA=~BIT(3);           PORTB=seg[temp1];           _delay_us(100);           PORTA=~BIT(2);           PORTB=seg[temp2];           _delay_us(100);           PORTA=~BIT(1);           PORTB=seg[temp3];           _delay_us(100);           PORTA=~BIT(0);           PORTB=seg[temp4];           _delay_us(100);       }        /***********************管腳初始化函數*********************/        void init()    {                      DDRD|=0X40;   //PD4 設置為輸出             PORTD=0XBF;                DDRA=0XFF;             DDRB=0XFF;             PORTA=0XFF;             PORTB=0XFF;    }        /***********************外部中斷0初始化*********************/        void init_0()    {         MCUCR=0X02;   //INT0為下降沿觸發         GICR=0X40;   //使能INT0中斷         SREG=0X80;  //使能總中斷    }        /**********************定時器2初始化***********************/        void init_2()    {         TCCR0=0x03;   // 內部時鐘,64 分頻(8M/64=125KHz)          TCNT0=0x83;   //裝初值           TIMSK=0x01;   // 允許 T/C0溢出中斷中斷      }          /***********************外部中斷0子函數********************/        #pragma interrupt_handler int0_isr:2        void int0_isr(void)        {             count++;        }        /*********************定時計數器0溢出中斷子函數*****************/       #pragma interrupt_handler int0_over:10        void int0_over(void)       {           TCNT0=0x83;   //重裝初值            if((time%100) == 0)               sumnum1 = num;           if(time == 1000)           {               sumnum=num;               if(sumnum<10)               {                                      if((flag==1)&&(sumnum<10))                   {                       PORTD=0XFF;                       flag=0;                   }                                      flag++;               }               else                       PORTD=0XBF;               num=0;               time=0;           }           num+=count;           count=0;           ++time;        } 

    標簽: C語言

    上傳時間: 2016-03-09

    上傳用戶:彥 yan

  • c語言程序源

    #include <iostream> using namespace std; class Student { public: Student(int, int); int num; int grade; }; Student::Student(int n, int g) { num = n; grade = g; } int maxGradeIndex(Student* s) { int maxGrade, index = 0, i = 0; maxGrade = s[0].grade; for (i = 0; i<5; i++) { if (s[i].grade > maxGrade) { maxGrade = s[i].grade; index = i; } } return  index; } int main() { Student a[5] = { Student(1, 86), Student(2, 60), Student(3, 72), Student(4, 95), Student(5, 66) }; int maxGradeStNum = maxGradeIndex(a); cout << "成績最好學生的學號是:" << a[maxGradeStNum].num << endl; cout << "成績最好學生的成績是:" << a[maxGradeStNum].grade << endl; getchar(); return 0; }

    標簽: c語言 程序

    上傳時間: 2016-04-23

    上傳用戶:burt1025

  • 紅外遙控RGB

    #include "STC90.h" #include < intrins.h > #define uchar unsigned char #define uint unsigned int #define led_port P1 sbit IR_RE = P3^2; sbit led_r = P1^3; sbit led_g = P1^4; sbit led_b = P1^5; sbit led_wd = P1^7; sbit K1 =P3^0 ; //增加鍵 sbit K2 =P3^1 ; //減少鍵 sbit BEEP =P3^7 ; //蜂鳴器 uchar temp,temp1; bit k=0; //紅外解碼判斷標志位,為0則為有效信號,為1則為無效 bit Flag2; uchar date[4]={0,0,0,0}; //date數組為存放地址原碼,反碼,數據原碼,反碼 uint lade_1,lade_2,lade_3,lade_4; uint num; uchar date_ram,ee_temp,ee_temp1; uchar WDT_NUM=0; uchar const dofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值01234567 uchar code seg[]={7,6,5,4,3,2,1,0};//分別對應相應的數碼管點亮,即位碼 unsigned long disp_date; void fade(); void fade1(); /*************************** 看門狗子程序*************************/ void watchdog_timer() { if(WDT_NUM==5) { WDT_NUM=0; led_wd=!led_wd; } WDT_NUM++; WDT_CONTR=0x3f; } /******************************************************************/ void delay(unsigned int cnt) { while(--cnt); } /*--------------------------延時1ms程子程序-----------------------*/ void delay_1ms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=126;y>0;y--); } /*--------------------------延時1ms程子程序-----------------------*/ delay1000() { uchar i,j; i=5; do{j=95; do{j--;} while(j); i--; } while(i); } /*---------------------------延時882us子程序-----------------------*/ delay882() { uchar i,j; i=6; do{j=71; do{j--;} while(j); i--; }while(i); } /*--------------------------延時2400us程子程序-----------------------*/ delay2400() { uchar i,j; i=5; do{j=237; do{j--;} while(j); i--; }while(i); } /**********************************************************************/ /* void display() { uchar i; for(i=0;i<8;i++) { P0=dofly[disp_date%10];//取顯示數據,段碼 P2=seg[i]; //取位碼 delay_1ms(1); disp_date/=10; } } */ /*********************************************************************/ uchar EEPROM_read(uint addr)//EEPROM字節讀 { ISP_CONTR=0x83; //系統時鐘<12M時,對ISP_CONTR寄存器設置的值,本電路為11.0592M ISP_CMD=1; //字節讀 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); return ISP_DATA; } //-------------------------------------------------------------------- void EEPROM_write(uint addr,uchar dat)//EEPROM字節寫 { ISP_CONTR=0x83; //系統時鐘<12M時,對ISP_CONTR寄存器設置的值,本電路為11.0592M ISP_CMD=2; //字節編程 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_DATA=dat; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); } //-------------------------------------------------------------------- void EEPROM_ERASE(uint addr)//EEPROM扇區擦除 { ISP_CONTR=0x83; //系統時鐘<12M時,對ISP_CONTR寄存器設置的值,本電路為11.0592M ISP_CMD=3; //扇區擦除 ISP_ADDRH=(addr&0xff00)>>8; ISP_ADDRL=addr&0x00ff; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_(); _nop_(); } //************************************************************** /*----------------------------------------------------------*/ /*-----------------------紅外解碼程序(核心)-----------------*/ /*----------------------------------------------------------*/ void IR_decode() { uchar i,j; while(IR_RE==0); delay2400(); if(IR_RE==1) //延時2.4ms后如果是高電平則是新碼 { delay1000(); delay1000(); for(i=0;i<4;i++) { for(j=0;j<8;j++) { while(IR_RE==0); //等待地址碼第1位高電平到來 delay882(); //延時882us判斷此時引腳電平 ///CY=IR_RE; if(IR_RE==0) { date[i]>>=1; date[i]=date[i]|0x00; } else if(IR_RE==1) { delay1000(); date[i]>>=1; date[i]=date[i]|0x80; } } //1位數據接收結束 } //32位二進制碼接收結束 } } /* void LED_PWM() { lade_2=num; //384 lade_4=num; //384 while(lade_2!=0&Flag2==1) { for(lade_3=512;lade_3>lade_4;lade_3--) //512 { led_port=0x00; delay(1); } lade_3=512; //512 lade_4--; for(lade_1=0;lade_1<lade_2;lade_1++) { led_port=0x38; //c7 delay(1); } lade_1=0; lade_2--; if(temp!=0x0c&Flag2==1) { lade_2=0; } lade_2=num; //384 lade_4=num; //384 } } */ void calc() { EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; //************************************* 1 /* if(date[3]==0xff&Flag2==1) { if(num>=20) { num=num-80; } //else num=1; LED_PWM(); } if(date[3]==0xfe&Flag2==1) { if(num<=500) { num=num+80; } // else num=511; LED_PWM(); } if(ee_temp1==0xfd) { led_port=0x00; watchdog_timer(); } if(ee_temp1==0xfc) { led_port=0x00; led_r=1; led_g=1; led_b=1; watchdog_timer(); } */ //********************************************** 2 if(ee_temp1==0xfb) { led_port=0x00; led_r=1; watchdog_timer(); } if(ee_temp1==0xfa) { led_port=0x00; led_g=1; watchdog_timer(); } if(ee_temp1==0xf9) { led_port=0x00; led_b=1; watchdog_timer(); } if(ee_temp1==0xf8) { led_port=0x00; led_r=1; led_g=1; led_b=1; watchdog_timer(); } //************************************** 3 if(ee_temp1==0xf7) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x07) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x07) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf6) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x06) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x06) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf5) { uint fade_1,fade_2,fade_3,fade_4; fade_2=448; //384 fade_4=448; //384 while(fade_2!=0&ee_temp==0x05) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x05) { fade_2=0; } watchdog_timer(); fade_2=448; //384 fade_4=448; //384 } } if(ee_temp1==0xf4) { while(ee_temp==4) { led_port=0x00; led_r=1; delay_1ms(200); led_port=0x00; led_r=1; led_g=1; delay_1ms(200); led_port=0x00; led_g=1; delay_1ms(200); watchdog_timer(); led_port=0x00; led_g=1; led_b=1; delay_1ms(200); led_port=0x00; led_b=1; delay_1ms(200); led_port=0x00; led_b=1; led_r=1; delay_1ms(200); watchdog_timer(); } } //************************************** 4 if(ee_temp1==0xf3) { uint fade_1,fade_2,fade_3,fade_4; fade_2=416; //384 fade_4=416; //384 while(fade_2!=0&ee_temp==0x03) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x03) { fade_2=0; } watchdog_timer(); fade_2=416; //384 fade_4=416; //384 } } if(ee_temp1==0xf2) { uint fade_1,fade_2,fade_3,fade_4; fade_2=384; //384 fade_4=384; //384 while(fade_2!=0&ee_temp==0x02) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x02) { fade_2=0; } watchdog_timer(); fade_2=384; //384 fade_4=384; //384 } } if(ee_temp1==0xf1) { uint fade_1,fade_2,fade_3,fade_4; fade_2=348; //384 fade_4=348; //384 while(fade_2!=0&ee_temp==0x01) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x01) { fade_2=0; } watchdog_timer(); fade_2=348; //384 fade_4=348; //384 } } if(ee_temp1==0xf0) { while(ee_temp==0) { led_port=0x00; led_r=1; delay_1ms(500); watchdog_timer(); led_port=0x00; led_g=1; delay_1ms(500); led_port=0x00; led_b=1; delay_1ms(500); watchdog_timer(); } } //******************************************** 5 if(ee_temp1==0xef) { uint fade_1,fade_2,fade_3,fade_4; fade_2=384; //384 fade_4=384; //384 while(fade_2!=0&ee_temp==0x0f) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x10; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0f) { fade_2=0; } watchdog_timer(); fade_2=384; //384 fade_4=384; //384 } } if(ee_temp1==0xee) { uint fade_1,fade_2,fade_3,fade_4; fade_2=320; //384 fade_4=320; //384 while(fade_2!=0&ee_temp==0x0e) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x20; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0e) { fade_2=0; } watchdog_timer(); fade_2=320; //384 fade_4=320; //384 } } if(ee_temp1==0xed) { uint fade_1,fade_2,fade_3,fade_4; fade_2=320; //384 fade_4=320; //384 while(fade_2!=0&ee_temp==0x0d) { for(fade_3=512;fade_3>fade_4;fade_3--) //512 { led_port=0x08; delay(1); } fade_3=512; //512 fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0d) { fade_2=0; } watchdog_timer(); fade_2=320; //384 fade_4=320; //384 } } if(ee_temp1==0xec) fade(); //******************************************* 6 if(ee_temp1==0xeb) { led_port=0x00; led_r=1; led_g=1; watchdog_timer(); } if(ee_temp1==0xea) { led_port=0x00; //led_r=0; led_g=1; led_b=1; watchdog_timer(); } if(ee_temp1==0xe9) { led_port=0x00; led_r=1; //led_g=0; led_b=1; watchdog_timer(); } if(ee_temp1==0xe8) fade1(); } void fade() { // uchar i; uint fade_1,fade_2,fade_3,fade_4; fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x10; delay(1); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x0c) { fade_2=0; } } watchdog_timer(); fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { if(ee_temp!=0x0c) { fade_2=0; } for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x20; delay(1); // watchdog_timer(); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); // watchdog_timer(); } fade_1=0; fade_2--; } watchdog_timer(); fade_2=512; fade_4=511; while(fade_2!=0&ee_temp==0x0c) { if(ee_temp!=0x0c) { fade_2=0; } for(fade_3=512;fade_3>fade_4;fade_3--) { led_port=0x08; delay(1); watchdog_timer(); } fade_3=512; fade_4--; watchdog_timer(); for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); watchdog_timer(); } fade_1=0; fade_2--; } watchdog_timer(); } void fade1() { // uchar i; uint fade_1,fade_2,fade_3,fade_4; fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x10; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x08; delay(1); } fade_1=0; fade_2--; if(ee_temp!=0x08) { fade_2=0; } } watchdog_timer(); fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { if(ee_temp!=0x08) { fade_2=0; } for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x20; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x10; delay(1); } fade_1=0; fade_2--; } watchdog_timer(); fade_2=128; fade_4=127; while(fade_2!=0&ee_temp==0x08) { if(ee_temp!=0x08) { fade_2=0; } for(fade_3=128;fade_3>fade_4;fade_3--) { led_port=0x08; delay(1); } fade_3=128; fade_4--; for(fade_1=0;fade_1<fade_2;fade_1++) { led_port=0x20; delay(1); } fade_1=0; fade_2--; } watchdog_timer(); } void init() { led_port=0x00; /* led_r=1; delay_1ms(500); led_port=0x00; led_g=1; delay_1ms(500); led_port=0x00; led_b=1; delay_1ms(500); led_port=0x00; */ delay_1ms(2); WDT_CONTR=0x3f; delay_1ms(500); } //******************************** void main() { init(); Flag2=0; SP=0x60; //堆棧指針 EX0=1; //允許外部中斷0,用于檢測紅外遙控器按鍵 EA=1; num=255; while(1) { calc(); } } //******************************************************************** /*------------------------外部中斷0程序-------------------------*/ /*------------------主要用于處理紅外遙控鍵值--------------------*/ void int0() interrupt 0 { uchar i; Flag2=0; /////// k=0; EX0=0; //檢測到有效信號關中斷,防止干擾 for(i=0;i<4;i++) { delay1000(); if(IR_RE==1){k=1;} //剛開始為9ms的引導碼. } led_port=0x00; if(k==0) { IR_decode(); //如果接收到的是有效信號,則調用解碼程序 if(date[3]>=0xe8) { if(date[3]<=0xfb) { temp1=date[3]; EEPROM_ERASE(0x2000); //STC_EEROM_0X2000 temp1 EEPROM_write(0x2000,temp1); EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; /* temp=date[3]&0x0f; EEPROM_ERASE(0x2004); //STC_EEROM_0X2004 temp EEPROM_write(0x2004,temp); */ } else { EEPROM_read(0x2000); ee_temp1=ISP_DATA; ee_temp=ee_temp1&0x0f; } } delay2400(); delay2400(); delay2400(); delay_1ms(500); } EX0=1; //開外部中斷,允許新的遙控按鍵 }

    標簽: RGB 紅外遙控

    上傳時間: 2016-07-02

    上傳用戶:184890962

  • 調光C程序

    /*#include<reg52.h> #define uint unsigned int #define uchar unsigned char #define uchar unsigned char sbit K1=P3^4; sbit K2=P3^5; sbit ledr=P1^0; sbit ledg=P1^1; sbit ledb=P1^2; bit LEDDirection=0;//LED控制方向0:漸亮1:漸滅 char  pwm=0; char  pwmr=0; char  scw=0;//中斷記數 char  tt=0; char n; void dealy(uint z); void Timer0Init(void) {    TMOD=0x01;   TH0=0xff;   TL0=0x47;   EX0=1;    IT0=0;   PX0=1;   ET0=1;    TR0=1;   EA=1; } void main() {   Timer0Init();       while(1){ if(K1==0) { dealy (1); if(K1==0) {TR0=1;   ledr=0;       dealy(5);       TR0=0;       }          }      if(K2==0) { dealy (1); if(K2==0) { while(1) {     ledr=0;  //亮     dealy(100-n*10);     ledr=1;  //熄     dealy(n*10); }   }  }       } } void Time0Isr(void) interrupt 1 {        // pwm=0;      TH0=0xff;      TL0=0x47;          scw++; }*/ #include<reg52.h> #define uchar unsigned char bit LEDDirection=0; sbit P2_0=P1^0; sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; uchar zkb,i,t;// zkb指占空比 uchar pwm; void delay(uchar z) {   uchar x,y;   for(x=z;x>0;x--)    for(y=110;y>0;y--); } void init()  //初始化函數 {      TMOD=0X01;   TH0=(65536-1000)/256;   TL0=(65536-1000)%256;   EA=1;   ET0=1;   TR0=1; } void keyscan()  //鍵盤掃描   {     P3=0XFF; if(key1==0)   {    delay(5);     if(key1==0)     {      while(!key1);         if(zkb<9)    {      zkb++;    }        }   } if(key2==0)   {    delay(5);     if(key2==0)     {      while(!key2);      if(zkb>0)      {      zkb--;    }     }    }    if(key3==0)   {TR0=1;    delay(5);     if(key3==0)     {while(!key3);    if((zkb<=9)&&(0==LEDDirection))       {            zkb++;                 if(zkb>9)        {           LEDDirection=1;          zkb=9;                   }                }                   if((zkb>=0 )&&(1==LEDDirection))          {         zkb--;                   if(zkb<0 )       {          LEDDirection=0;         zkb=0 ;              //dealy(3000);       }                       }                 }    //pwm=pwmr;                              }             } void main() //主函數   {          zkb=2;     init(); while(1) {   keyscan(); }   } void time0(void) interrupt 1  //中斷函數   {          TH0=(65536-200)/256; TL0=(65536-200)%256; ++i;   if(i>10)    {    i=0;    }; if(i<=zkb) {   P2_0=1; } else P2_0=0;   } /*void time0(void) interrupt 0  //中斷函數   {          TH0=(65536-1000)/256; TL0=(65536-1000)%256; ++i; if(i>10)    {    i=0;    }; if(i<=zkb) {   P2_0=1; } else P2_0=0;   }*/

    標簽: 調光

    上傳時間: 2016-07-02

    上傳用戶:184890962

  • 1602數字時鐘

    # include < reg52.h > # include < 24C02.h> # define uint unsigned int # define uchar unsigned char   sbit rs = P3^5;  //定義lcd1602的rs端 sbit lcden = P3^4;//定義lcd1602的lcden端口 sbit s1 = P3^0;//定義功能鍵s1 sbit s2 = P3^1;//定義功能鍵s2 sbit s3 = P3^2;//定義功能鍵s3   sbit beep = P2^3;//定義蜂鳴器   uchar count, s1num; char miao,fen,shi; uchar code table[] = "Designer:X_ZL ";//定義初始上電時液晶默認顯示狀態     void delay_ms( xms )   //定義延時函數 { uint i,j; for( i = xms ; i > 0 ; i --) for( j = 110 ; j > 0 ; j --); }  

    標簽: 1602 數字時鐘程序

    上傳時間: 2016-07-28

    上傳用戶:游戲好嗎

  • 429總線協議說明

    ARINC429總線協議是美國航空電子工程委員會(Airlines Engineering Committee)于1977年7月提出的,并于同年發表并獲得批準使用,它的全稱是數字式信息傳輸系統(Digital Information Transmission System ) 。協議標準規定了航空電子設備及有關系統間的數字信息傳輸要求。ARINC429廣泛應用在先進的民航客機中,如B-737、B-757、B-767,俄制軍用飛機也選用了類似的技術。 ARINC429總線結構簡單、性能穩定,抗干擾性強。最大的優勢在于可靠性高。飛機上的ARINC429數據總線,用于在系統和設備之間傳送上千種不同類型的參數,如航向、真空速、馬赫數等。

    標簽: 429總線協議

    上傳時間: 2016-08-17

    上傳用戶:w50403

  • 基于8051+Proteus仿真案例

    基礎程序設計 01 閃爍的LED  /*  名稱閃爍的LED   說明LED按設定的時間間隔閃爍 */  #include<reg51.h>  #define uchar unsigned char  #define uint unsigned int  sbit LED=P1^0;  //延時  void DelayMS(uint x)  {   uchar i;   while(x--) {    for(i=0;i<120;i++);   }  }  //主程序  void main() {   while(1) {    LED=~LED;    DelayMS(150);   }  } 

    標簽: 基于8051仿真 基于Proteus仿真 基于8051+Proteus仿真

    上傳時間: 2016-09-19

    上傳用戶:xinhoujue

  • 51單片機C語言程序設計Proteus仿真實訓

    基礎程序設計 01 閃爍的LED  /*  名稱閃爍的LED   說明LED按設定的時間間隔閃爍  */  #include<reg51.h>  #define uchar unsigned char  #define uint unsigned int  sbit LED=P1^0;  //延時  void DelayMS(uint x) {   uchar i;   while(x--) {    for(i=0;i<120;i++);   } }  //主程序  void main() {   while(1)  {    LED=~LED;    DelayMS(150);   }  } 

    標簽: 51單片機C語言程序設計 51單片機C語言程序設計Proteus仿真實訓

    上傳時間: 2016-09-19

    上傳用戶:xinhoujue

  • 運動會源代碼

    #include <malloc.h>       #include <stdio.h>       #include <stdlib.h>       #include <string.h>       #define NULL 0      #define MaxSize 30          typedef struct athletestruct /*運動員*/     {         char name[20];          int score; /*分數*/         int range; /**/         int item; /*項目*/     }ATH;     typedef struct schoolstruct /*學校*/     {         int count; /*編號*/         int serial; /**/          int menscore; /*男選手分數*/         int womenscore; /*女選手分數*/         int totalscore; /*總分*/         ATH athlete[MaxSize]; /**/         struct schoolstruct *next;      }SCH;         int nsc,msp,wsp;      int ntsp;      int i,j;      int overgame;      int serial,range;      int n;      SCH *head,*pfirst,*psecond;      int *phead=NULL,*pafirst=NULL,*pasecond=NULL;     void create();         void input ()     {         char answer;          head = (SCH *)malloc(sizeof(SCH)); /**/         head->next = NULL;         pfirst = head;          answer = 'y';         while ( answer == 'y' )         {         Is_Game_DoMain:         printf("\nGET Top 5 when odd\nGET Top 3 when even");         printf("\n輸入運動項目序號 (x<=%d):",ntsp);         scanf("%d",pafirst);         overgame = *pafirst;         if ( pafirst != phead )         {             for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ )             {                 if ( overgame == *pasecond )                 {                     printf("\n這個項目已經存在請選擇其他的數字\n");                     goto Is_Game_DoMain;                 }             }         }         pafirst = pafirst + 1;         if ( overgame > ntsp )         {             printf("\n項目不存在");             printf("\n請重新輸入");             goto Is_Game_DoMain;         }         switch ( overgame%2 )         {         case 0: n = 3;break;         case 1: n = 5;break;         }         for ( i = 1 ; i <= n ; i++ )         {         Is_Serial_DoMain:         printf("\n輸入序號 of the NO.%d (0<x<=%d): ",i,nsc);                 scanf("%d",&serial);         if ( serial > nsc )          {             printf("\n超過學校數目,請重新輸入");             goto Is_Serial_DoMain;         }         if ( head->next == NULL )          {             create();         }         psecond = head->next ;          while ( psecond != NULL )          {             if ( psecond->serial == serial )             {                 pfirst = psecond;                 pfirst->count = pfirst->count + 1;                 goto Store_Data;             }             else             {                 psecond = psecond->next;             }         }         create();         Store_Data:                 pfirst->athlete[pfirst->count].item = overgame;         pfirst->athlete[pfirst->count].range = i;         pfirst->serial = serial;         printf("Input name:) : ");                 scanf("%s",pfirst->athlete[pfirst->count].name);         }         printf("\n繼續輸入運動項目(y&n)?");         answer = getchar();         printf("\n");         }     }         void calculate() /**/     {         pfirst = head->next;         while ( pfirst->next != NULL )         {             for (i=1;i<=pfirst->count;i++)             {                 if ( pfirst->athlete[i].item % 2 == 0 )                  {                     switch (pfirst->athlete[i].range)                     {                     case 1:pfirst->athlete[i].score = 5;break;                     case 2:pfirst->athlete[i].score = 3;break;                     case 3:pfirst->athlete[i].score = 2;break;                     }                 }                 else                  {                     switch (pfirst->athlete[i].range)                     {                     case 1:pfirst->athlete[i].score = 7;break;                     case 2:pfirst->athlete[i].score = 5;break;                     case 3:pfirst->athlete[i].score = 3;break;                     case 4:pfirst->athlete[i].score = 2;break;                     case 5:pfirst->athlete[i].score = 1;break;                     }                 }                 if ( pfirst->athlete[i].item <=msp )                  {                     pfirst->menscore = pfirst->menscore + pfirst->athlete[i].score;                 }                 else                  {                     pfirst->womenscore = pfirst->womenscore + pfirst->athlete[i].score;                 }             }             pfirst->totalscore = pfirst->menscore + pfirst->womenscore;             pfirst = pfirst->next;         }     }         void output()     {         pfirst = head->next;         psecond = head->next;         while ( pfirst->next != NULL )          {             // clrscr();              printf("\n第%d號學校的結果成績:",pfirst->serial);             printf("\n\n項目的數目\t學校的名字\t分數");             for (i=1;i<=ntsp;i++)              {                 for (j=1;j<=pfirst->count;j++)                  {                     if ( pfirst->athlete[j].item == i )                     {                                                                         printf("\n %d\t\t\t\t\t\t%s\n %d",i,pfirst->athlete[j].name,pfirst->athlete[j].score);break;                                             }                 }             }             printf("\n\n\n\t\t\t\t\t\t按任意建 進入下一頁");             getchar();             pfirst = pfirst->next;         }     //  clrscr();          printf("\n運動會結果:\n\n學校編號\t男運動員成績\t女運動員成績\t總分");         pfirst = head->next;         while ( pfirst->next != NULL )         {             printf("\n %d\t\t %d\t\t %d\t\t %d",pfirst->serial,pfirst->menscore,pfirst->womenscore,pfirst->totalscore);             pfirst = pfirst->next;         }         printf("\n\n\n\t\t\t\t\t\t\t按任意建結束");         getchar();     }         void create()     {                 pfirst = (struct schoolstruct *)malloc(sizeof(struct schoolstruct));         pfirst->next = head->next ;         head->next = pfirst ;                 pfirst->count = 1;         pfirst->menscore = 0;         pfirst->womenscore = 0;         pfirst->totalscore = 0;     }     void Save()     {FILE *fp;     if((fp = fopen("school.dat","wb"))==NULL)     {printf("can't open school.dat\n");     fclose(fp);     return;     }     fwrite(pfirst,sizeof(SCH),10,fp);     fclose(fp);     printf("文件已經成功保存\n");     }         void main()     {         system("cls");         printf("\n\t\t\t 運動會分數統計\n");         printf("輸入學校數目 (x>= 5):");         scanf("%d",&nsc);          printf("輸入男選手的項目(x<=20):");         scanf("%d",&msp);          printf("輸入女選手項目(<=20):");         scanf("%d",&wsp);          ntsp = msp + wsp;                  phead = (int *)calloc(ntsp,sizeof(int));         pafirst = phead;         pasecond = phead;         input();         calculate();          output();         Save();     }             

    標簽: 源代碼

    上傳時間: 2016-12-28

    上傳用戶:150501

主站蜘蛛池模板: 凤台县| 崇义县| 武平县| 孝义市| 泗洪县| 边坝县| 松潘县| 湘潭县| 兴和县| 铜山县| 冕宁县| 连城县| 英德市| 深泽县| 饶河县| 泗洪县| 罗源县| 攀枝花市| 延川县| 柏乡县| 本溪市| 桑植县| 安义县| 开江县| 唐河县| 大化| 阿城市| 玛沁县| 贺兰县| 龙井市| 慈溪市| 铁岭县| 平乡县| 库车县| 信宜市| 犍为县| 永顺县| 宜黄县| 广南县| 棋牌| 沂源县|