完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
新手学单片机,没弄东PCF8591,照样子写了个程序。但是实现不了控制灯的亮度。而且只有几个值能发光
#include #include ***it SDA=P2^0; ***it SCL=P2^1; bit ack; void start_IIC(); void stop_IIC(); void send_byte(unsigned char); main() { start_IIC(); send_byte(0x90); if(ack==0) return(0); send_byte(0xf0);//这里是控制灯发光的数字量 if(ack==0) return(0); stop_IIC(); } void start_IIC() { SCL=1; SDA=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SDA=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=0; _nop_(); } void stop_IIC() { SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SDA=1; _nop_(); _nop_(); _nop_(); _nop_(); } void send_byte(unsigned char c) { unsigned char count; for(count=0;count<8;count++) { if((c< else SDA=0; _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SCL=0; } SDA=1; _nop_(); _nop_(); _nop_(); _nop_(); SCL=1; _nop_(); _nop_(); _nop_(); _nop_(); if(SDA==1) ack=0; else ack=1; SCL=0; SDA=0; _nop_(); _nop_(); _nop_(); _nop_(); } |
|
相关推荐
4个回答
|
|
这也行{:19:}
|
|
|
|
|
|
|
|
我觉得你的开始停止有点问题,而且好像没有应答信号吧?
我是这么写: void delay() {;;} //延时 void init() { sda=1; delay(); scl=1; delay(); } //初始化 void start() { sda=1; delay(); scl=1; delay(); sda=0; delay(); } //开始信号 void stop() { sda=0; delay(); scl=1; delay(); sda=1; delay(); } //停止信号 void respons() { uchar i; scl=1; delay(); while((sda==1)&&(i<250)) i++; scl=0; delay(); } //应答信号 |
|
|
|
嗯嗯,我已经改过了 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
277 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
368 浏览 0 评论
766 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
592 浏览 0 评论
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12039 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 09:24 , Processed in 0.617450 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号