完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include "led.h" #include "Basic.h" uint16 T_delay = 10; void main(void){ P0SEL &= ~0x04; P0DIR |= 0x04; P0_2 = 0; INIT_LED(); for( ;; ){ LEDprintf(LED1_ON,BYTE_5); //BYTE_5到底有什么作用? Delay(T_delay); LEDprintf(LED2_ON,BYTE_5); Delay(T_delay); LEDprintf(LED3_ON,BYTE_5); Delay(T_delay); …… } } void INIT_LED(void) //这个初始化led函数的作用是什么? { P1SEL &= ~0xFF; P1DIR |= 0xFF; P1 = 0; } void LEDprintf(unsigned char data,unsigned char byte) { unsigned char bits = 0; unsigned char get_bit = 0x80; P1 |= byte; //P1 |= byte的意义是什么? RCK = LOW; SRCK = LOW; for(bits = 8;bits > 0;bits --) { if(data & get_bit) SER = 1; else SER = 0; SRCK = HIGH; get_bit >>= 1; SRCK = LOW; } RCK = HIGH; } |
|
相关推荐
2个回答
|
|
//BYTE_5到底有什么作用?没看见定义 估计是5个字节
|
|
|
|
1.BYTE_5是选择硬件电路的流水灯,如果你能看到硬件电路的话BYTE_1-BYTE_4是选择4个数码管,这个函数LED_printf()第一个参数是亮哪一位灯,第二个参数是选择流水灯还是哪位数码管
2.初始化LED就是初始化控制LED的io口,要使用io口之前我们都要设置他的输入输出模式,上拉/下拉还是三态,通用还是外设,设置好了我们才能像操作51单片机一样使用它 3.第一个问是说BYTE_5是选择水灯的,那为什么可以这样实现呢,因为它通过一个芯片使得P1口的3 4 5 6 7位分别控制BYTE_1到BYTE_5,那我们怎么选择BYTE_5也就是流水灯呢,就是把P1_7置1就可以了也就是0X80,头文件有定义你可以看下BYTE_5是不是0x80 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11793 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 22:06 , Processed in 0.549283 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号