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