编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示
来源:互联网 发布:怎么看b超单子的数据 编辑:程序博客网 时间:2024/05/16 05:13
/*
编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示。
要求:
一、P0口外接8个LED、P1.0~P1.2外接三个按键。
二、T0做延时,溢出定为10ms。
三、按键0~2分别控制闪烁间隔时间分别为,0.5s,1s,2s。
四、开机后,LED全部点亮,3s后以0.5s交替。
单片机高手帮下忙,最好用C写。
悬赏分:80 - 解决时间:2010-1-21 21:42
*/
//最佳答案:
=======================================================
//以下程序通过了PROTEUS仿真试验,可以满足要求。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit K0 = P3^2;
sbit K1 = P3^3;
sbit K2 = P3^4;
uchar t1 = 0, t2 = 0, t3 = 0, aaa = 0x55, delay_time = 0;
//-------------------------------
void TIME0()interrupt 1
{
TH0 = 0xD8; //初值
TL0 = 0xF0; //10ms @ 12MHz
t1++;
if(t1 == 50) { //每到500ms
t1 = 0;
t2++;
if(t2 == 6) { //到了3s
t2 = 5;
t3++;
if (t3 >= delay_time) {
t3 = 0;
aaa = 255 - aaa;
P0 = aaa;
} } }
}
//-------------------------------
void main() //主函数
{
TMOD = 0x01; //T0定时
TH0 = 0xD8; //初值
TL0 = 0xF0; //10ms @ 12MHz
TR0 = 1;
ET0 = 1;
EA = 1;
P0 = 0x00;
delay_time = 1;
while (1) {
if (K0 == 0) delay_time = 1;
if (K1 == 0) delay_time = 2;
if (K2 == 0) delay_time = 4;
}
}
用 PROTEUS 仿真截图如下:
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/b20572ca39dbb6fd457e3f930924ab18962b37bb.html
=======================================================
回答者:做而论道 - 十二级 2010-1-5 20:57
原题网址:http://zhidao.baidu.com/question/132137803.html
=======================================================
- 编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示
- 网口信号灯的作用
- winform中设置奇数和偶数行的背景色交替显示
- Java多线程交替打印奇数和偶数
- LED数码管的显示
- 使用两个线程交替打印0到100的奇数和偶数
- 多线程技术: 两个线程交替打印奇数和偶数
- LED灯驱动的编写
- 一个LED驱动的编写
- LED高低位交替闪烁
- 简单编程(二十)将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出
- APUE2中信号灯(semaphores)一节
- lithium的LED显示法
- 奇数和偶数的判断
- LED Player ICON完成
- mini2440(2) LED灯裸机硬件控制程序
- mini2440(2) LED灯裸机硬件控制程序
- led
- 16位二进制数转成BCD码--51单片机
- 单片机编程-1
- 单片机编程-2
- 单片机编程-3
- 多个字的2进制整数相乘
- 编写LED控制程序,完成LED奇数号灯和偶数号灯的交替显示
- 关于view.getTop(),view.getRight()....
- 利用8031单片机,设计跑马灯和流水灯
- 单片机编程,输出周期为2S和0.5S的方波
- 三级偏软程序题目
- 汇编语言程序分析-51单片机
- 求 《微机系统原理与接口》 题目答案
- ASCII 码和十六进制数的转换 -51单片机
- 单片机定时问题:亮100ms、灭300ms