實驗一:用C51實現流水燈實驗 實驗要求:完成亮流水,即LED從低位流向高位流動,每次流動一位,且每次只亮一個LED燈,其它LED滅。
實驗原理:單片機流水的實質是單片機各引腳在規定的時間逐個上電,使LED燈能逐個亮起來但過了該引腳通電的時間后便滅燈的過程,實驗中使用了單片機的P2端口, 對8個LED燈進行控制,要實現逐個亮燈即將P2的各端口逐一置零, 中間使用時間間隔隔開各燈的亮滅。使用r1或rr a實現位的轉換。 實驗內容:通過仿真來實現實驗電路圖
代碼如下; for(x=0;x<8;x++) { P0=num[x]; delay(); } for(x=6;x>0;x--) { P0=num[x]; delay(); } P0=0xfe; 實驗結果: 實驗程序: #include <REG51.H>
void delay(); //延時函數聲明
void main() //主函數
{ unsigned char x, num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
while(1)
{
for(x=0;x<8;x++)
{
P0=num[x];
delay();
}
for(x=6;x>0;x--)
{
P0=num[x];
delay();
}
P0=0xfe;
}
}
void delay() //延時函數,無符號字符型變量i為形式參數
{
unsigned int j,k; //定義無符號字符型變量j和k
for(k=0;k<500;k++) //雙重for循環語句實現軟件延時
for(j=0;j<100;j++);
} 實驗總結: 這次試驗通過仿真實驗軟件實現流水燈實驗,充分學會了keil軟件和Proteus電路仿真的聯合調試,為后期的實驗做足了功課。也認識到仿真實用性。
完整的Word格式文檔51黑下載地址:
51單片機流水燈.docx
(66.22 KB, 下載次數: 43)
2018-11-23 19:24 上傳
點擊文件名下載附件
流水燈設計 下載積分: 黑幣 -5
|