打印
[ZLG-MCU]

LPC900控制LED闪烁

[复制链接]
1408|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoxin1986|  楼主 | 2009-4-10 00:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/***************************************************************************
LPC900控制发光二极管
功能: 用 P0.4 控制LED 闪烁发光,亮0.1 秒,灭0.9 秒
采用片内 RC 振荡器,CPU 时钟CCLK=7.3728MHz
本程序适用于所有 LPC900 系列单片机
***************************************************************************/
//包含标准80C51 的头文件
#include <reg51.h> //LPC900 系列单片机的SFR 与标准80C51 兼容
//定义本程序所用到的LPC900 内部SFR 寄存器
sfr P0M1 = 0x84; //P0M1 和P0M2 是P0 口的模式寄存器
sfr P0M2 = 0x85; //它们共同决定P0 口的4 种工作模式:准双向、推挽输出、高阻输入、开漏
sbit pin_LED = P0^4; //定义LED 控制引脚
//延时函数
//t>0 时,延时(t*0.01)秒
//t=0 时,延时2.56 秒
void Delay(unsigned char t)
{
do
{
TH0 = 0x70; //(TH0,TL0)=65536-0.01*PCLK
TL0 = 0x00; //PCLK 是外围器件时钟,等于CPU 时钟CCLK 的一半
TR0 = 1;
while ( !TF0 );
TF0 = 0;
TR0 = 0;
} while (--t);
}
//系统初始化
void SysInit()
{
TMOD &= 0xF0; //定时器T0 设置成16 位定时器模式,T1 的设置不变
TMOD |= 0x01;
P0M1 |= 0x10; //将P0.4 设置成开漏输出方式,其它I/O 的设置不变
P0M2 |= 0x10;
}
//主函数
void main()
{
SysInit();
for (;;)
{
pin_LED = 0; //点亮LED
Delay(10); //延时100ms
pin_LED = 1; //熄灭LED
Delay(90); //延时900ms
}
}
 
我想要解决的问题是:除了P0.4口外,还要其他的P0口,比如P0.3或P0.5同时输出电平发光,该怎样修改程序,请指教,谢谢!

相关帖子

沙发
xiaoxin1986|  楼主 | 2009-4-10 21:12 | 只看该作者

顶一个~~

使用特权

评论回复
板凳
linhai1986| | 2009-4-10 21:42 | 只看该作者

把P0.3或P0.5也设成开漏啊

P0M1 |= 0x38; //将P0.3 P0.4 P0.5设置成开漏输出方式,其它I/O 的设置不变
P0M2 |= 0x38;
P0= 0x00; //点亮LED
Delay(10); //延时100ms
P0= 0x38; //熄灭LED
Delay(90); //延时900ms

使用特权

评论回复
地板
xiaoxin1986|  楼主 | 2009-4-12 23:43 | 只看该作者

好的,谢谢你

使用特权

评论回复
5
xiaoxin1986|  楼主 | 2009-4-12 23:44 | 只看该作者

我的意思就是想有两路同时输出LED闪烁信号

使用特权

评论回复
6
linhai1986| | 2009-4-13 00:08 | 只看该作者

这个我就不知道了

使用特权

评论回复
7
xiaoxin1986|  楼主 | 2009-4-15 23:37 | 只看该作者

这个没人知道吗

使用特权

评论回复
8
jakecumt| | 2009-4-17 16:11 | 只看该作者

同时设置两个管教不行么?

使用特权

评论回复
9
xiaoxin1986|  楼主 | 2009-4-18 14:37 | 只看该作者

这样可以吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝