|
【第二个程序--PWM控制P2口LED灯实现半亮】
//////////////////////////////
汇编程序
//////////////////////////////
/***********************************************************************/
/***名称:PWM控制LED实现半亮 *****************************************/
/***功能:P2口固定输出占空比为50%,所有灯亮度为半亮状态 */
/***********************************************************************/
/*---------------------------------------------------------------------*/
/*-- 端口定义 ---------------------------------------*/
/*---------------------------------------------------------------------*/
PORT_2 EQU P2
PORT_1 EQU P1
LOOP_NUM EQU 31H
/*---------------------------------------------------------------------*/
/*-- 程序开始 ---------------------------------------*/
/*---------------------------------------------------------------------*/
ORG 0000H
SJMP MAIN
ORG 0030H
/*---------------------------------------------------------------------*/
/*-- 主程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
MAIN: MOV PORT_2,#00H //端口初始化
MOV PORT_1,#00H
START: MOV LOOP_NUM,#255
LOOP: MOV A,LOOP_NUM
CJNE A,#127,LOOP2
LOOP2: JC LOOP3
MOV PORT_2,#0FFH
SJMP EXIT
LOOP3: MOV PORT_2,#00H
EXIT: DJNZ LOOP_NUM,LOOP
SJMP START
/*---------------------------------------------------------------------*/
/*-- 程序结束 ---------------------------------------*/
/*---------------------------------------------------------------------*/
END
回复51帖
2014/04/17 16:59:19 52帖 yueyunno1 师长
由于Proteus不能仿真PWM控制LED得的半亮状态,故用波形显示
回复52帖
2014/04/17 17:00:41 53帖 yueyunno1 师长
//////////////////////////////////////////
C语言
//////////////////////////////////////////
/***********************************************************************/
/***名称:PWM控制LED实现半亮 *****************************************/
/***功能:P2口固定输出占空比为50%,所有灯亮度为半亮状态 */
/***********************************************************************/
#include<reg51.h>
typedef unsigned char U8;
typedef unsigned int U16;
/*---------------------------------------------------------------------*/
/*-- 端口定义 ---------------------------------------*/
/*---------------------------------------------------------------------*/
#define PORT_2 P2
/*---------------------------------------------------------------------*/
/*-- 主程序 ---------------------------------------*/
/*---------------------------------------------------------------------*/
void main()
{
U8 i;
PORT_2=0X00;
while(1)
{
for(i=0;i<255;i++)
{
if(i<127)
PORT_2=0x00;
else
PORT_2=0xff;
}
}
}
/*---------------------------------------------------------------------*/
/*-- 程序结束 ---------------------------------------*/
/*---------------------------------------------------------------------*/
|
|