AT89S52语言常用程序——单片机中的多路模拟开关
          
            时间:12-02 10:04 阅读:854次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:这里给大家分享一个AT89S52语言常用程序——单片机中的多路模拟开关。
               
                        
          
            #include <reg52.h>
#include <absacc.h>
#include <stdio.h>
#include <math.h>
#define uchar unsigned char
#define uint unsigned int
#define adch0 XBYTE[0x0000]
sbit P1_3=P1^3;
sbit P1_2=P1^2;
uint ch0datal,ch0datah,i,light;
void main(void)
{
	EA=1; PT0=1;					// 开外中断,并设置定时器;
	ET0=1;
	IT0=1;IT1=1;
	EX0=1;EX1=1;ET2=1;
	T2CON=0x08;
	TMOD=0x21;
	
	TH0=0xB9;					// 设置定时器的初值;
	TL0=0xB0;
	TR0=1;
	TI=1;
	
	ch0datah=0;
	ch0datal=0;
	P1_3=0;						// 设置控制端口的初值;
	P1_2=0;
	
	while(1){}						// 等待外部的控制信号;
}
void intsvr1(void) interrupt 1				// 定时器1模拟外部控制信号的进入
{
	TH0=0xB9;
	TL0=0xB0;
	TR0=1;
	light=light+1;
	if (light>1000)
{
	    P1_3=!P1_3;				// MAX333的控制信号取反,工作方式变化;
	    P1_2=!P1_2;	
	    light=0;					// 标志位显示当前的工作状态;
}
}