delay的問題
//********************** 4_1.c *******************
//動作:令P10反相輸出指定時間的方波,送到喇叭發出聲音
//***********************************************
#include
void delay_1m(unsigned int dly); //宣告延時1m秒函數
main()
{
P0 = 0x04;
loop:
P1=P1^0x01; //P10和1做xor會反相,令喇叭發出聲音
delay_1m(1); //呼叫延時函數1ms,自行調整延時時間
goto loop;
}
void delay_1m(unsigned int dly) //自訂1ms延時函數
{
int count;
while(dly>0)
{
count=120; //延時1ms的空轉次數
while (count>0) count--; //延時1ms
dly--; //dly遞減
}
}//********** 4_2.c *****************************
//動作:令P10輸出方波到喇叭發出聲音,由P3決定延時時間
//**********************************************
//#include
#include "reg51.h"
unsigned int dly;
void delay (void); //宣告自定延時函數
main()
{
while(1) //不斷循環執行
{
// P1_0=!P1_0; //P10反相,令喇叭發出聲音
P1 = ~P1;
delay(); //呼叫延時函數
}
}
void delay(void) //自訂延時函數
{
dly= P3*100; //由P1輸入決定延時時間
while (dly>0) //若dly>0 則再遞減
dly--; //dly遞減
}
//********** 4_3.c *****************************
//動作:令P10輸出嗶嗶聲
//**********************************************
#include
void delay(int dly); //宣告自定延時函數
void beep(char i);
main()
{
while(1)
{
beep(1); //嗶一聲
delay(30000); //間隔時間
beep(2); //嗶一聲
delay(30000); //間隔時間
beep(3); //嗶一聲
delay(30000); //間隔時間
}
}
void beep(char i)
{
int j;
while(i>0) //嗶聲次數
{
for(j=0;j<400;j++) //令輸出反相400次
{
P1_0=!P1_0; //P10反相,令喇叭發出聲音
delay(10); /呼叫延時函數
}
delay(10000); //嗶聲的間隔時間
i--;
}
}
void delay(int dly) //自訂延時函數
{
while (dly>0) //若dly>0 則再遞減
dly--; //dly遞減
}
未解碼七段顯示器範例實習
l程式7seg.c
l修改程式使七段顯示器顯示0~9
l讓七段顯示器顯示0~9,在顯示9~0
l配合作業1的版子,用兩個PORT的輸出控制兩個七段顯示器動作做00~99的計數(SEG4.c)
作業
設計一程式,使用一個七段顯示器及一顆按鈕,設計亂數程式,按下按鈕後使七段顯示器亂數顯示1~6的其中一個數字。(參考3-82頁3_45.c使用rand()函式)
沒有留言:
張貼留言