单片机控制IO口控制另一个单片机控制IO口问题

单片机控制IO口实验实验报告 实验內容 编写程序用P1.0~P1.2口连LED,查询拨盘开关SW1的状态来控制LED的亮和灭(P1.7口接SW1) 编写程序,用P1.0~P1.2口连LED 用按键开关KEY1作为外部中断输入INT0控制LED的亮和灭。(每按一次按键LED状态取反一次) 二、硬件点原理图 将开关往上拨此时P1.7口输入为高电平,三盏灯被点亮将开关往下拨,此时P1.7口输入为低电平三盏灯熄灭。表明程序符合要求 实验2结果记录: 按下按键开关,按键开关由高电平变为低电平因此出现下降沿,中断程序被處罚此时三盏灯的状态改变,被点亮再按下按键开关,三盏灯熄灭如此循环。 在实验中之所以采用下降沿触发而不是低电平触发,是因为机器周期很短因此按下按键的时间内可能经过了多个机器周期,导致中断程序被触发多次如果经过的机器周期为偶数个,那麼最终灯的状态不会改变 而在试验中,偶尔也会出现按下按键后灯的状态不改变的情况我认为这是因为按键开关的抖动引起的,如图: 因此可能会出现多个上升沿,导致中断程序被多次触发影响结果。 要消除按键抖动有两种办法:一是通过改变硬件 如图,RC构成了積分电路使得电平不会发生突变,从而消除抖动但是实验箱内的电路已经固定,因此无法实现另一种实在程序中加入延时。 ORG 0000H LJMP MAIN ;跳转到主程序 ORG 0003H ;采用INT0中断因此中断入口地址为0003H LJMP LOOP ;跳转到中断程序 ORG 0100H MAIN: CLR

}

我要回帖

更多关于 单片机控制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信