| 利用MCS-51单片机完成频率、花色可调的跑马灯,要求: 1. 16个LED | 所有LED可独立控制其亮灭; | 利用定时器中断切换LED的亮灭组合状态 2. 8个按键 | 4个按键用于控制LED亮灭组合状态切换频率,可至少提供4种不同的频率 | 4个按键用于控制LED亮灭组合方式,可至少提供4种不同的亮灭组合方式(每人必须有自己的组合方式,不是每组)
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载):
单片机源程序如下:
- #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)
|