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