单片机怎样实现将P1.2取出,取反后将值赋值给P3.3 P.2口接一个开关,P3.3口接一个小灯.

单片机怎样实现将P1.2取出,取反后将值赋值给P3.3 P.2口接一个开关,P3.3口接一个小灯.,第1张

REG_A EQU 0X10 ; 设定通用寄存器

P1 equ 0x01 ; 假设P1 口的寄存器为0X01

P3 EQU 0X03 ; 假设P3口的寄存器为0X03

MOV A,P1 ; 读P1 口的值保持到A,

XOR A,#0X04 ; 把P12取反,保存到A,

MOV REG_A, A ; 把A 寄存器保存到寄存器REG_A

RL REG_A,#1 ; 把REG_A的数据左移动一位,

AND REG_A,#0X08 ; 保留第三位数据,别的都清零,

MOV A,P3 ; 把P3端口的数据读到A

AND A,#0X08 ; 把P33 清零,

OR A,REG_A ;把 P12的数据付给A,

MOV P3,A ; 把 P12的数据付给P33

单片机取反,指的是单片机的引脚取反。

简单说有如下几种原理:

1、用单片机编程控制的结果,此种成本稍高,但闪烁效果多样。

2、PLC控制。可编程序逻辑控制器,是一种专门用于接通和断开控制的设备,优缺点与第一条类似。

3、简单的低成本电路,用开关管控制。在电路中,电容器与三极管基极连接,而电容器通过电阻与电源连接。慢速充电时电容两端电压逐渐升高,当电压达到三极管导通的电压时,通过三极管基极和发射极放电。而三极管集电极控制的继电器让灯泡接通电源,灯泡亮起了,随后,电容器电压放电完毕,三极管又截止了,继电器又断电,灯泡灭了。这个过程逐渐循环,就实现小灯闪烁。这个电路原理类似于水车捣年糕的机器。不断流动的水进入水车上的筒子,转动的轮子拨动木槌一端,让木槌抬起,然后木槌落下,实现一次敲打。往复循环,由连续的运动转成断续的运动。

按键S1 按一下就会进入一次外部中断0 ,这时候你在执行的是 P1^0 取反,就是小灯亮了,然后是延时,然后让小灯灭, 问题就出在延时上, 延时i<500 因为 i 是 unsigned char 的,所以最大只有255,不会达到500 ,程序到这里就停住了, 所以一直亮,因为你设置外部中断1 最高优先,所以 不妨碍 S2 控制灯灭,把i改成 unsigned int 的就可以修改一直亮的问题,但是因为你程序问题,会出现,按一下S1 小灯闪烁一次,按一下,小灯闪烁一次, 不会出现周期性闪烁,就是说不会一直闪烁,因为你只是在中断函数里执行的 亮灭 退出中断就不会再执行了你可以按键S1按下 flag = 1;S2按下flag = 0; 在主循环里 判断flag if(flag) { P1_0 = 0; 延时 P1_0 = 1; 延时 } else { P1_0 = 1; } 这样写应该是可以达到 周期性闪烁的,

需要消除抖动!库函数只是提供了一个接口给你去使用!至于为什么没有用这个需要看一下你的代码!

使能的时候需要时钟和IO一起,而且还得是输入!!

在按键的时候可以用万用表测量一下按键段的电压跳变情况

如果还不会的追问吧!!!!

按键S1 按一下就会进入一次外部中断0 ,这时候你在执行的是 P1^0 取反,就是小灯亮了,然后是延时,然后让小灯灭, 问题就出在延时上, 延时i<500 因为 i 是 unsigned char 的,所以最大只有255,不会达到500 ,程序到这里就停住了, 所以一直亮,

因为你设置外部中断1 最高优先,所以 不妨碍 S2 控制灯灭,

把i改成 unsigned int 的就可以修改一直亮的问题,但是因为你程序问题,会出现,按一下S1 小灯闪烁一次,按一下,小灯闪烁一次, 不会出现周期性闪烁,就是说不会一直闪烁,因为你只是在中断函数里执行的 亮灭 退出中断就不会再执行了

你可以按键S1按下 flag = 1;S2按下flag = 0;

在主循环里 判断flag

if(flag)

{

P1_0 = 0;

延时

P1_0 = 1;

延时

}

else

{

P1_0 = 1;

}

这样写应该是可以达到 周期性闪烁的,

以上就是关于单片机怎样实现将P1.2取出,取反后将值赋值给P3.3 P.2口接一个开关,P3.3口接一个小灯.全部的内容,包括:单片机怎样实现将P1.2取出,取反后将值赋值给P3.3 P.2口接一个开关,P3.3口接一个小灯.、如何判断单片机输入是否取反了、单片机,s1按键按下,四只LED一起闪烁,s1按键松开,四只LED一起熄灭,程序怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10172076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存