[ZLG-MCU] LPC900控制LED闪烁

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

顶一个~~

  
linhai1986 发表于 2009-4-10 21:42 | 显示全部楼层

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

P0M1&nbsp;|=&nbsp;0x38;&nbsp;//将P0.3&nbsp;P0.4&nbsp;P0.5设置成开漏输出方式,其它I/O&nbsp;的设置不变<br />P0M2&nbsp;|=&nbsp;0x38;<br />P0=&nbsp;0x00;&nbsp;//点亮LED<br />Delay(10);&nbsp;//延时100ms<br />P0=&nbsp;0x38;&nbsp;//熄灭LED<br />Delay(90);&nbsp;//延时900ms
 楼主| xiaoxin1986 发表于 2009-4-12 23:43 | 显示全部楼层

好的,谢谢你

  
 楼主| xiaoxin1986 发表于 2009-4-12 23:44 | 显示全部楼层

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

  
linhai1986 发表于 2009-4-13 00:08 | 显示全部楼层

这个我就不知道了

  
 楼主| xiaoxin1986 发表于 2009-4-15 23:37 | 显示全部楼层

这个没人知道吗

  
jakecumt 发表于 2009-4-17 16:11 | 显示全部楼层

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

  
 楼主| xiaoxin1986 发表于 2009-4-18 14:37 | 显示全部楼层

这样可以吗?

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

1487

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部