下面這兩個程序一個是逐個點亮的流水燈,一個是呼吸燈,如何同時執行?謝謝!就是P1流水燈和另外一個呼吸燈一起工作,類似中斷,但不太會搞。謝謝!
- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- int yanshi=600;
- sbit P10 = P1^0;
- sbit P11 = P1^1;
- sbit P12 = P1^2;
- sbit P13 = P1^3;
- sbit P14 = P1^4;
- sbit P15 = P1^5;
- sbit P16 = P1^6;
- sbit P17 = P1^7;
- /*1MS delay*/
- void delay_1ms(uchar x)
- {
- uchar j;
- while(x--){
- for(j=0;j<250;j++)
- {;}
- }
- }
- void main()
- {
- while(1){
- P10 = 1;P11 = 1;P12 = 1;P13 = 1;P14 = 1;P15 = 1;P16 = 1;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 1;P12 = 1;P13 = 1;P14 = 1;P15 = 1;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 1;P12 = 1;P13 = 1;P14 = 1;P15 = 0;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 1;P12 = 1;P13 = 1;P14 = 0;P15 = 0;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 1;P12 = 1;P13 = 0;P14 = 0;P15 = 0;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 1;P12 = 0;P13 = 0;P14 = 0;P15 = 0;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 0;P12 = 0;P13 = 0;P14 = 0;P15 = 0;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 0;P11 = 0;P12 = 0;P13 = 0;P14 = 0;P15 = 0;P16 = 0;P17 = 0;
- delay_1ms(yanshi);delay_1ms(yanshi);
- P10 = 1;P11 = 1;P12 = 1;P13 = 1;P14 = 1;P15 = 1;P16 = 1;P17 = 1;
- delay_1ms(yanshi);delay_1ms(yanshi);
- }
- }
復制代碼- #include <reg51.h>
- #define uint unsigned int
- sbit led1=P2^0; //定義控制燈的端口
- int HXD,Clock=1000;
- void delay(uint x) //設置延遲函數
- {
- int i;
- for(i=0;i<x;i++);
- }
-
- void main(void)
- {
- while(1)
- {
- for(HXD=Clock;HXD>0;HXD--) //led逐漸變暗
- {
- led1=1;
- delay(HXD);
- led1=0;
- delay(Clock-HXD);
-
- }
- for(HXD=0;HXD<Clock;HXD++) //led逐漸變亮
- {
- led1=1;
- delay(HXD);
- led1=0;
- delay(Clock-HXD);
-
- }
- }
- }
復制代碼
謝謝大家!
|