找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3319|回复: 6
收起左侧

中断

[复制链接]
ID:130508 发表于 2016-7-14 22:31 | 显示全部楼层 |阅读模式
           #include<reg52.h>
                                                          
                                                           void main()
                                                           {
                                                           P1=0;
                                                           EA=1;
                                                           EX0=1;
                                                           TCON=0X01;
                                                           while(1);
                                                           }
                                                          
                                                           void cheng() interrupt 0
                                                           {
                                                           P1=!P1;
                                                           }



为什么我只有按独立按键第三个才有反应,而且也只是有一个灯灭
不应该是4个键都可以,led灯一起亮灭吗?
回复

使用道具 举报

ID:19198 发表于 2016-7-15 04:24 | 显示全部楼层
P1=0????
回复

使用道具 举报

ID:76158 发表于 2016-7-15 10:21 | 显示全部楼层
不是很清楚你的意思,但是从你大概描述看,如果你要操作P1的所有IO口不能直接写P1=0  ,需要写成16进制 P1=0X00;P1=0XFF;如果需要位操作就必须先声明:sbit P1^3=XX
回复

使用道具 举报

ID:130508 发表于 2016-7-15 22:17 | 显示全部楼层
danpianji258 发表于 2016-7-15 10:21
不是很清楚你的意思,但是从你大概描述看,如果你要操作P1的所有IO口不能直接写P1=0  ,需要写成16进制 P1= ...

P1=0是可以的,问题好像是只有3.2端口按下才触发跳变沿,其他的不触发,可是是为什么啊?
回复

使用道具 举报

ID:57149 发表于 2016-7-16 16:30 | 显示全部楼层
本帖最后由 hantp 于 2016-7-16 16:31 编辑

你的中断就是INT0,当然只有P3.2按下好用。
回复

使用道具 举报

ID:120095 发表于 2016-7-17 15:48 | 显示全部楼层
P3口由两个功能 在寄存器相应的设置 才能出发第二个功能比如外部中断 只有P3^2 和P3^3有外部中断的功能,其他的I/O口没有 当然不好使了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表