51单片机程序如何判断IO口发生了变化

如P0口上电后为0xff,当p0.0按键按下后为0xfe,并且这个按键一直保持按下,如何判断后续的七个端口被按下的状态。

就拿四乘四键盘,占用8个i/o口有其中一个按键按下的话,只有这个按键所对应的行和列的io口发生了变化,剩下的六个io口不会变化,一般是用组合键来更改内部程序所设,这个很简单,改变51的键盘扫描程序,键盘扫描程序,是根据所设几个按键和希望实现什么功能所根据实际情况来自己编写的。弄本书好好看看
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-16
设置个定时查询的子程序,应该能查到状态的改变吧
第2个回答  2013-09-16
每个按键状态对应一个二进制位

51单片机程序如何判断IO口发生了变化
就拿四乘四键盘,占用8个i\/o口有其中一个按键按下的话,只有这个按键所对应的行和列的io口发生了变化,剩下的六个io口不会变化,一般是用组合键来更改内部程序所设,这个很简单,改变51的键盘扫描程序,键盘扫描程序,是根据所设几个按键和希望实现什么功能所根据实际情况来自己编写的。弄本书好好...

51单片机程序如何判断IO口发生了变化
回答:就拿四乘四键盘,占用8个i\/o口有其中一个按键按下的话,只有这个按键所对应的行和列的io口发生了变化,剩下的六个io口不会变化,一般是用组合键来更改内部程序所设,这个很简单,改变51的键盘扫描程序,键盘扫描程序,是根据所设几个按键和希望实现什么功能所根据实际情况来自己编写的。弄本书好好看看

如何自动检测51单片机I\/O口变化
因为IO口作为输入时初始被置1, 这样就可以被外部器件拉低, 检测IO口的电平高低就可以知道有没有被外部器件拉低了 如果IO口置0的话, 那么外部器件无论是高电平还是低电平, IO口都是0, 就没法检测了

用51单片机汇编语言检测上升沿和下降沿
io_inp=p2^1;输入端 bit old_bit;输入端电平记忆 unsigned char low_high;上升下降沿标志,0=无变化,1=上升沿,2、下降沿 void io_rest(void){ if(old_bit=!io_inp){ old_bit=io_inp;if(io_inp=1)low_high=1;else low_high=2;} } void main(void){ old_bit=io_inp=p2^1;wh...

51单片机检测IO口高低变化,3秒内有变化无动作。3秒无变化立即启动继电器...
uint time ;void main(){ OUT=0;\/\/继电器不动作 time=0;while(1){ while(IN==1)\/\/高电平 { delayms(10);time++;if(time>300) OUT=1;\/\/超过3S,动作 } time=0;while(IN==0)\/\/低电平 { delayms(10);time++;if(time>300) OUT=1;\/\/超过3S,动作 } time=0;} } ...

用程序怎么检测单片机I\/O口的0和1
将单片机的IO置高,检测是否被拉低,51中这么的,但是其他的得设成高阻,输入才可以

51单片机 我要检查IO外接输入的电平状态,
方法:把引脚设置为输入状态,输出一个1就行。这是单片机的设计者、生产厂家所规定的。在这个前提下,外界,只有输入低电平,才会改变引脚的状态;输入高电平,是没有反应的。如果,外设一定要送来高电平,那就必须加上一个反相器,再连接到单片机的引脚即可。其中的 P0口 为总线式设计 电路形式 为 ...

c51单片机的工作状态是什么样的啊?他是一直检查端口传入的数据还是有时...
C51单片机工作需要电源、复位电路、晶振等等条件,上电工作后,单片机复位,各个IO口均输出高电平。既然是IO口,可做输入可做输出,主要还是看你的语句怎么来写,你想完成什么功能,比如我想一直判断P1.2口是不是有低电平输入,如果有,我点亮P2.0口驱动的LED等。while(1){ if(p1_2=0)p2_0=0;}...

51单片机用c语言编程判断各i\/o口的是否有高低电平,应该怎样写程序?
就直接用 if (P_^_==0) ……这里的_表示数字,51有四个端口,各有八个,你随便用啊

新手请教一个问题,关于51单片机IO口检测下降沿的。检测下降沿是检测是...
另一方面,要正确检测逻辑1,同样要求高电平持续时间大于一个检测周期。如果检测是硬件的,比如INT0中断,一个检测周期是一个机器周期,比如1us,那么脉冲信号的宽度就必须保证高电平、低电平都大于1us,所以说,检测上限是500K。如果检测是软件的,比如每1mS检测一次,检测上限就浊500Hz。

相似回答