单片机中的多路模拟开关例程

 

#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;                    // 标志位显示当前的工作状态;

}

} 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值