char LED;
sbit key1down=P1^0 ; // 设开关key1连接此端口
sbit key2down=P1^1 ; // 设开关key2连接此端口
void main(){
P0=0xff; // 输出低电平LED亮
LED=0xfe;
while(1){
P0=LED; delay();
if(key1){ LED <<= 1 ; } // 将LED左移一位;
if(key2){ LED >>= 1 ; LED |=0x80; } // 将LED右移一位;
if(key1down==0) { key1=1; key2=0;}
if(key2down==0) { key1=0; key2=1;}
}
实际上不论任何液晶电视机包括你写这个长虹LED32538等等电源滤波后的电压都是300以上,而且现在国家强制标准的需要有PFC电路那么这个电压更高接近400V。正常一般测量开关电源滤波后的电压310左右就正常,你说这个260肯定是不对的而且我觉得你跑这里来问这问题,你是准备学习维修还是胆子大自己家里电视坏了拆开看看。
用MCS51单片机汇编语言编写的点亮一只LED灯源程序LED1ASM,代码如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV A,#FEH
MOV P1,A
AJMP $
END
做好中断现场保护和还原就可以解决这个问题了。
INT:PUSH PSW;先现场保护
PUSH ACC;
PUSH 00H;R0
PUSH 01H;R1
PUSH 02H;R2
PUSH 03H;R3
PUSH 04H;R4
PUSH 05H;R5
PUSH 06H;R6
PUSH 07H;R7
MOV A,#0AAH
MAG:
MOV P2,A
LCALL DELAY
RL A
JNB P33,MAG
MOV A,#1
MOV R2,#7
POP 07H;R7;现场还原
POP 06H;R6
POP 05H;R5
POP 04H;R4
POP 03H;R3
POP 02H;R2
POP 01H;R1
POP 00H;R0
POP ACC;
POP PSW;
RETI
这个用单片机来做很简单,接口就用P1,P2口吧,电源经过100欧姆电阻接到LED灯上再接到单片机相应的16个管脚上电路就好了
程序很简单,需要两个延时子程序,一个1秒的,另一个05秒
主程序就是让灯亮灭,可以从左亮到右,右亮到左,你爱怎么亮就怎么亮,你给P0低电平就可以亮的,如果你没写过程序那这些都白讲
定时器让LED引脚输出高低变化的电平,在主函数里判断按键是否按下,如果按下就让LED引脚保持并关闭定时中断。
第二种方法是 主函数里让LED引脚输出高低变化电平,按键用外部中断。
#include<reg52h>
//-----------------------------
void delay_ms(unsigned int s)
{
unsigned int x;
for(s; s > 0; s--) {
x = 98; while(x--);
} }
//-----------------------------
void main()
{
char i, j;
while(1) {
for(j = 0; j < 32; j++) {
P1 = 255; //全灭, P1外接LED, 是低电平发光
delay_ms(500); //稍等片刻
for(i = 0; i < 32; i++) {
P1 <<= 1;
delay_ms(900 - 100 j); //延时渐短
} } } }
//-----------------------------
以上就是关于单片机LED灯闪烁程序全部的内容,包括:单片机LED灯闪烁程序、长虹led32538电源板电源滤波后的电压是多少付260 v、单片机点亮一盏led灯代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)