完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. { //delay(500);大约延时500ms. uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() //主函数 { uchar a; while(1) //大循环 { a++; P1=~a; delay(200); } } 请问这个程序为什么能实现用8个发光管演示出8位二进制数累加过程,而且在使用a++之前不用先给a赋值吗?新手,很困惑,望高手解答! |
|
相关推荐
8个回答
|
|
|
|
uchar a; 定义a时如果不给变量赋值 默认赋值0 a=1时为0x01 开发板上开机默认所有引脚为高电平 所以要取反 按16进制为0xfe 第一脚为低电平 使led亮 其他数值依次类推
|
|
|
|
至于a的值和编译器有关你可以试试你的编译器默认值是不是0
|
|
|
|
请教一下一轮8位二进制数累加完成后,怎么实现循环的了?
|
|
|
|
a定义的上一字符型量,只有8位,当a++到 1111 1111 时再a++就成了 1 0000 0000,字符型变量只有8位,所以第9位是会自动丢掉的,就成了 0000 0000 ,就一轮又开始了。个人理解,有误勿喷! |
|
|
|
有一定道理,先谢谢再说、、、 |
|
|
|
a是uchar类型,范围0到255,255等于1111 1111,a=0,~a=1111 1111;
a=1,~a=1111 11110;a=2,~a=1111 1101。。。以此类推 |
|
|
|
a是uchar类型,范围0到255,255等于1111 1111,a=0,~a=1111 1111;此时都是高电平,不亮
a=1,~a=1111 11110,此时只有p01口低电平才亮;a=2,~a=1111 1101,只有p02口低电平才亮。。。以此类推 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
734 浏览 0 评论
582 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
840 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
1039 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核启动流程
937 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12161 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 06:44 , Processed in 0.558131 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号