| 利用MCS-51單片機完成頻率、花色可調的跑馬燈,要求: 1. 16個LED | 所有LED可獨立控制其亮滅; | 利用定時器中斷切換LED的亮滅組合狀態 2. 8個按鍵 | 4個按鍵用于控制LED亮滅組合狀態切換頻率,可至少提供4種不同的頻率 | 4個按鍵用于控制LED亮滅組合方式,可至少提供4種不同的亮滅組合方式(每人必須有自己的組合方式,不是每組)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):
0.png (18.94 KB, 下載次數: 47)
下載附件
2017-11-2 16:52 上傳
0.png (54.67 KB, 下載次數: 36)
下載附件
2017-11-2 16:52 上傳
單片機源程序如下:
- #include "reg52.h"
- sbit key1=P0^0;
- sbit key2=P0^1;
- sbit key3=P0^2;
- sbit key4=P0^3;
- sbit key5=P0^4;
- sbit key6=P0^5;
- sbit key7=P0^6;
- sbit key8=P0^7;
- int num=0;
- int flag_hz=10;
- void main()
- {
- TMOD=0X01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- P1=0X00;
- while(1)
- {
- if(key1==0)
- {
- flag_hz=5;
- }
- if(key2==0)
- {
- flag_hz=25;
- }
- if(key3==0)
- {
- flag_hz=45;
- }
- if(key4==0)
- {
- flag_hz=65;
- }
- if(key5==0)
- {
- P1=0X03;
- P2=0X03;
- }
- if(key6==0)
- {
- P1=0X33;
- P2=0X33;
- }
- if(key7==0)
- {
- P1=0XAA;
- P2=0XAA;
- }
- if(key8==0)
- {
- P1=0X99;
- P2=0X99;
- }
- }
- }
- void T0_time() interrupt 1 //50MS
- {
- TH0=(65536-50000)/256;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
LED.zip
(106.42 KB, 下載次數: 71)
2017-11-2 15:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|