完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
特殊功能寄存器SFR声明
我们想要使用单片机的IO口就要先定义它的地址,我们可以从芯片资料上找到IO口对应的地址(也可以直接网上搜) 单片机C语言SFR声明: sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0;//定义P0~P3 定义好以后,通过控制P0~P1,我们可以同时控制他们对应的8个IO口,当然这次我们只需要点亮一两个LED,只需要用到一两个IO口,所以可以用下面的方法单独定义一个IO口。 ***it LED0 = P1 ^ 0; ***it LED1 = P1 ^ 1; ***it LED2 = P1 ^ 2; ***it LED3 = P1 ^ 3; ***it LED4 = P1 ^ 4; ***it LED5 = P1 ^ 5; ***it LED6 = P1 ^ 6; ***it LED7 = P1 ^ 7;//分别定义P1的8个IO口 注意:定义IO口要大写 头文件 前面我们使用sfr来定义IO口,如果每次都要一条一条的输入sfr来定义会非常麻烦,这时我们可以用头文件的方法来代替刚才的方法,52单片机C语言的头文件是 这个头文件里就包含了大部分定义,方便快捷。那为什么还要讲sfr声明呢?其实就是为了更好的理解头文件的核心内容。 代码参考 给led0赋值0可以让其对应的IO口发出低电平的信号,从而点亮led。 #include //sfr P1 = 0x90;//定义P1寄存器地址 ***it led0 = P1^0;//led0 第1个led ***it led7 = P1^7;//led7 第8个led void main() { // led0 = 0;//低电平 点亮led0 // while(1);//使程序停在这(死循环) while(1) { led0 = 0; led7 = 0; } } 下面就是最终成果图,黑色框框里就是我们点亮的第1个和第8个led。 |
|
|
|
只有小组成员才能发言,加入小组>>
2608 浏览 0 评论
802浏览 1评论
247浏览 1评论
574浏览 0评论
310浏览 0评论
526浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-1 19:58 , Processed in 1.208103 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号