久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機控制PCA9685源程序
[打印本頁]
作者:
LYC0512
時間:
2019-8-19 19:58
標題:
51單片機控制PCA9685源程序
51控制PCA9685,使用軟件模擬IIC,都在代碼里了。
目的是為了控制16X舵機,50HZ
單片機源程序如下:
/* PCA9685驅動程序 */
/* 使用IO口模擬通信 */
/* 16路PWM輸出 */
#include<reg52.h>
#include<intrins.h>
sbit SCL=P1^0; //定義時鐘引腳
sbit SDA=P1^1; //定義數據引腳
#define PCA9685_adrr 0x80//1+A5+A4+A3+A2+A1+A0+w/r
#define PCA9685_SUBADR1 0x2
#define PCA9685_SUBADR2 0x3
#define PCA9685_SUBADR3 0x4
#define PCA9685_MODE1 0x0
#define PCA9685_MODE2 0x1
#define PCA9685_PRESCALE 0xFE
#define pwm0_ON_L 0x6
#define pwm0_ON_H 0x7
#define pwm0_OFF_L 0x8
#define pwm0_OFF_H 0x9
#define ALLpwm_ON_L 0xFA
#define ALLpwm_ON_H 0xFB
#define ALLpwm_OFF_L 0xFC
#define ALLpwm_OFF_H 0xFD
void iic_delay()//延時5us
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
void iic_start()//scl高電平區間,sda一個下降沿啟動信號
{
SDA=1;
iic_delay();
SCL=1;
iic_delay();
SDA=0;
iic_delay();
SCL=0;
iic_delay();
}
void iic_stop()//scl在高電平區間,sda一個上升沿信號
{
SDA=0;
iic_delay();
SCL=1;
iic_delay();
SDA=1;
iic_delay();
}
void iic_wait_ack()//在scl高位時,從機拉低sda引腳表示應答
{
unsigned char i=0;
SCL=1;
iic_delay();
while((SDA==1)&&(i<255))
{
i++;
}
SCL=0;
iic_delay();
}
void iic_init()//初始化IIC通訊引腳
{
SCL=1;
iic_delay();
SDA=1;
iic_delay();
}
void iic_send_ack(bit iic_ack)//接受完成之后,發送應答位,0應答繼續發送,1不應答停止發送
{
SDA=iic_ack;
SCL=1;
iic_delay();
SCL=0;
iic_delay();
}
void iic_write_byte(unsigned char iic_byte)
{
unsigned char i=0;
for(i=0;i<8;i++)
{
SCL=0;
iic_delay();
SDA=iic_byte&0X80;
iic_byte=iic_byte<<1;
iic_delay();
SCL=1;
iic_delay();
}
SCL=0;
iic_delay();
SDA=1;
iic_wait_ack();
}
void iic_write(unsigned char slave_addr,unsigned char iic_addr,unsigned char iic_byte)
{
iic_init();
iic_start();
iic_write_byte(slave_addr);
iic_write_byte(iic_addr);
iic_write_byte(iic_byte);
iic_stop();
}
unsigned char iic_read_byte()//讀字節,先讀高位,左移
{
unsigned char i=0;
unsigned char iic_byte=0;
SCL=0;
iic_delay();
SDA=1; //確保主機釋放SDA
iic_delay();
for(;i<8;i++)
{
iic_delay();
SCL=1;
iic_delay();
iic_byte=(iic_byte<<1)|SDA;
SCL=0;
}
iic_delay();
return iic_byte;
}
unsigned char iic_read(unsigned char slave_addr,unsigned char iic_addr)
{
unsigned char iic_byte;
iic_init();
iic_start();
iic_write_byte(slave_addr);
iic_write_byte(iic_addr);
iic_start();
iic_write_byte(slave_addr|0x01);//發送設備地址+讀信號
iic_byte=iic_read_byte();
iic_send_ack(1);//發送非應答信號
iic_stop();
return iic_byte;
}
void pca_set_freq()//頻率設置為50hz(20ms)
{
unsigned char prescale=132,oldmode,newmode;
iic_write(0x80,0x00,0x0);
oldmode=iic_read(0x80,0x00);
newmode=(oldmode&0x7F)|0x10;
iic_write(0x80,0x00,newmode);//進入sleep
//設置頻率時pca9685應該進入睡眠狀態
iic_write(0x80,0xFE,prescale);
iic_write(0x80,0x00,oldmode);//退出sleep
iic_write(0x80,0x00,oldmode|0xA1);//立即重啟
}
void pca_set_pwm(unsigned char channel,unsigned char angle)
{
unsigned int off=102+(angle*2.27);
iic_write(0x80,0x06+4*channel,0);
iic_write(0x80,0x07+4*channel,0);
iic_write(0x80,0x08+4*channel,off);
iic_write(0x80,0x09+4*channel,off>>8);
}
void delay(unsigned char delay_a) //@11.0592MHz
{
while(delay_a)
{
unsigned char delay_b=255;
while(delay_b)
{
iic_delay();
iic_delay();
delay_b--;
}
delay_a--;
}
}
int main()
{
pca_set_freq();
delay(155);
pca_set_pwm(0,40);
pca_set_pwm(1,40);
delay(155);
pca_set_pwm(0,140);
pca_set_pwm(1,140);
delay(155);
pca_set_pwm(1,150);
delay(155);
pca_set_pwm(1,47);
delay(155);
pca_set_pwm(0,70);
while(1);
}
復制代碼
51_pca9685_iic.rar
(1.33 KB, 下載次數: 63)
2019-8-19 19:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
LXJ50
時間:
2020-4-22 23:29
下載后解壓縮時:提示找不到文件
作者:
LYC0512
時間:
2020-10-27 21:48
LXJ50 發表于 2020-4-22 23:29
下載后解壓縮時:提示找不到文件
??我試了一下可以呀
,我壓縮軟件用的WINRAR。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲九九夜夜
|
中文字幕一区二区在线播放
|
精品免费国产一区二区三区四区
|
玖玖色资源
|
日韩网站免费观看
|
精品一区二区三区视频
|
国产91久久婷婷一区二区
|
久久xxxx
|
日韩毛片在线播放
|
国产精品免费一区
|
日韩黄色免费视频
|
亚洲黄色片
|
三年中文在线看免费观看
|
国产成人在线免费视频
|
日本免费在线观看视频
|
日本美女毛茸茸
|
日韩精品一区在线
|
毛片网站视频
|
日韩一区二区三区视频
|
av片在线看
|
亚洲精品自拍视频
|
欧美三级 欧美一级
|
欧美日韩成人在线观看
|
亚洲成人免费在线观看
|
国产精品国产三级国产专区53
|
av网站免费观看
|
国产黄色大片
|
欧美综合一区
|
色黄大色黄女片免费中国
|
欧美又大粗又爽又黄大片视频
|
中文字幕免费在线
|
欧美日韩在线观看视频
|
日本丰满少妇做爰爽爽
|
日韩精品网
|
亚洲精品二区
|
黄色大毛片
|
亚洲精品视频在线播放
|
国产黄a三级三级看三级
|
福利在线看
|
成人午夜在线视频
|
一级毛片一级毛片
|