当前位置: 首页 > news >正文

开发网站合同安阳县七中

开发网站合同,安阳县七中,微信网页版官网二维码,wordpress 音乐页面目录 一、IIC初始化代码 二、开发板电路图 三、PCF8591读/写字节操作流程及相关函数 #xff08;1#xff09;PCF8591#xff08;AD#xff09;读操作流程及代码 #xff08;2#xff09;PCF8591#xff08;AD#xff09;写操作流程及代码 四、应用示例-显示电压…目录 一、IIC初始化代码 二、开发板电路图 三、PCF8591读/写字节操作流程及相关函数 1PCF8591AD读操作流程及代码 2PCF8591AD写操作流程及代码 四、应用示例-显示电压值 一、IIC初始化代码 加载“iic.c文件”主函数中添加iic.h头文件调节软件延迟时长全部扩大十倍即可编写PCF8591读写函数并且在头文件中定义编写用户用能函数 二、开发板电路图 图源第十五届蓝桥杯电子赛资源包 根据图以及前面所学的EEPROM存储器的位置可知IIC总线上有两个设备一个是PCF85191另一个是AT24C02 EEPROM存储器。AIN1光敏电阻线路、AIN3活动变阻器、电压采集 三、PCF8591读/写字节操作流程及相关函数 1PCF8591AD读操作流程及代码 主控器发出起始信号主控器发出寻址字节写0X90被控器做出应答后主控器发出控制字节写被控器做出应答后主控器发出停止信号主控器发出起始信号主控器发出寻址字节读0x91被控器做出应答后主控器从被控器读出数据字节主控器发出应答主控器发出停止信号 unsigned char AD_read(unsigned char add) {unsigned char dat;I2CStart();I2CSendByte(0X90);I2CWaitAck();I2CSendByte(add);I2CWaitAck();I2CStop();I2CStart();I2CSendByte(0X91);I2CWaitAck();datI2CReceiveByte();I2CSendAck(1);I2CStop();return dat; } 2PCF8591AD写操作流程及代码 主控器发出起始信号主控器发出寻址字节写0X90被控器做出应答后主控器发出控制字节写被控器做出应答后主控器发出DA输出数据字节写被控器做出应答后主控器发出停止信号 void AD_write(unsigned char dat) {I2CStart();I2CSendByte(0X90);I2CWaitAck();I2CSendByte(0X40);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop();} 四、应用示例-显示电压值 //iic.c #include STC15F2K60S2.H #includeintrins.h #define DELAY_TIME 50//总线引脚定义 sbit sda P2^1; sbit scl P2^0; // static void I2C_Delay(unsigned char n) {do{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); }while(n--); }// void I2CStart(void) {sda 1;scl 1;I2C_Delay(DELAY_TIME);sda 0;I2C_Delay(DELAY_TIME);scl 0; }// void I2CStop(void) {sda 0;scl 1;I2C_Delay(DELAY_TIME);sda 1;I2C_Delay(DELAY_TIME); }// void I2CSendByte(unsigned char byt) {unsigned char i;for(i0; i8; i){scl 0;I2C_Delay(DELAY_TIME);if(byt 0x80){sda 1;}else{sda 0;}I2C_Delay(DELAY_TIME);scl 1;byt 1;I2C_Delay(DELAY_TIME);}scl 0; }// unsigned char I2CReceiveByte(void) {unsigned char da;unsigned char i;for(i0;i8;i){ scl 1;I2C_Delay(DELAY_TIME);da 1;if(sda) da | 0x01;scl 0;I2C_Delay(DELAY_TIME);}return da; }// unsigned char I2CWaitAck(void) {unsigned char ackbit;scl 1;I2C_Delay(DELAY_TIME);ackbit sda; scl 0;I2C_Delay(DELAY_TIME);return ackbit; }// void I2CSendAck(unsigned char ackbit) {scl 0;sda ackbit; I2C_Delay(DELAY_TIME);scl 1;I2C_Delay(DELAY_TIME);scl 0; sda 1;I2C_Delay(DELAY_TIME); }unsigned char AD_read(unsigned char add) {unsigned char dat;I2CStart();I2CSendByte(0X90);I2CWaitAck();I2CSendByte(add);I2CWaitAck();I2CStop();I2CStart();I2CSendByte(0X91);I2CWaitAck();datI2CReceiveByte();I2CSendAck(1);I2CStop();return dat;} void AD_write(unsigned char dat) {I2CStart();I2CSendByte(0X90);I2CWaitAck();I2CSendByte(0X40);I2CWaitAck();I2CSendByte(dat);I2CWaitAck();I2CStop();} //IIC.h #ifndef _IIC_H #define _IIC_H // static void I2C_Delay(unsigned char n);// void I2CStart(void);// void I2CStop(void);// void I2CSendByte(unsigned char byt);// unsigned char I2CReceiveByte(void);// unsigned char I2CWaitAck(void);// void I2CSendAck(unsigned char ackbit); // unsigned char AD_read(unsigned char add); void AD_write(unsigned char dat);#endif //main.c #include STC15F2K60S2.H #includeintrins.h #includeIIC.h#define uchar unsigned char #define uint unsigned intunsigned char LED_Bit0XFF; unsigned char Actuator_Bit0X00;#define LEDx_ON(n) { LED_Bit_crol_(0XFE,n-1); P0LED_Bit; P2|0X80; P20X9F; P20X1F;} #define LEDx_OFF(n) { LED_Bit|_crol_(0X01,n-1); P0LED_Bit; P2|0X80; P20X9F; P20X1F;}#define Buzzer_ON Actuator_Bit|0x40; P0Actuator_Bit; P2|0XA0; P20XBF; P20X1F; #define Buzzer_OFF Actuator_Bit0XBF; P0Actuator_Bit; P2|0XA0; P20XBF; P20X1F; #define Relay_ON Actuator_Bit|0x10; P0Actuator_Bit; P2|0XA0; P20XBF; P20X1F; #define Relay_OFF Actuator_Bit0XEF; P0Actuator_Bit; P2|0XA0; P20XBF; P20X1F;unsigned char code tab[] {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,\0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,\0XBF,0XFF}; unsigned char KEY_Value 0 ; unsigned char DigCom0; unsigned char DigBuf[8] {10,10,10,10,10,10,10,10};unsigned char LED 1 ; unsigned int LED_tt 0; bit LED_Ref 0 ;unsigned int SEG_tt 0; //定义一个数码管计数时间标识位 bit SEG_Ref 0 ; //定义一个数码管刷新标识位 bit SEG_Run 0 ; //定义一个控制数码管运行标识位 unsigned int Num 999 ;unsigned char Open;unsigned char EEPROM_Write[8] {2,3,4,5,6,7,8,9}; unsigned char EEPROM_Read[8] {0,0,0,0,0,0,0,0};unsigned int AD_VALUE0; unsigned int AD_tt 0; bit AD_Ref 0;void ALL_Init(void); void Delay_MS(unsigned int MS); void KeyScan(void); void ArrKeyScan(void); void Timer0Init(void); //1毫秒11.0592MHzvoid main(void) {ALL_Init();Timer0Init();EA1;ET01;while(1){if(AD_Ref 1){AD_Ref 0 ;AD_VALUE AD_read(0X03);AD_write(AD_VALUE);AD_VALUE AD_VALUE * 1.96;DigBuf[2]21;DigBuf[3]21;DigBuf[4]21;DigBuf[5]AD_VALUE/100 10; DigBuf[6]AD_VALUE%100/10;DigBuf[7]AD_VALUE%10; }KeyScan();if(KEY_Value7){KEY_Value0;SEG_Run 1 ;}if(KEY_Value6){KEY_Value0;SEG_Run 0 ;}if(KEY_Value5){KEY_Value0;LEDx_ON(1);Buzzer_ON;}if(KEY_Value4){KEY_Value0;LEDx_OFF(1);Buzzer_OFF;} } }void KeyScan(void) {if(P300){Delay_MS(10);if(P300)KEY_Value 7 ; while(!P30);}else if(P310){Delay_MS(10);if(P310)KEY_Value 6 ; while(!P31);} else if(P320){Delay_MS(10);if(P320)KEY_Value 5 ; while(!P32);} else if(P330){Delay_MS(10);if(P330)KEY_Value 4 ; while(!P33);} }void Timer0(void) interrupt 1 {P00X00;P2|0XC0; // P2P2|0XC0; XXXX XXXX | 1100 0000 11XX XXXXP20XDF; // P2P20XDF; 11XX XXXX 1101 1111 110X XXXX P20X1F; //关闭所有的74HC573锁存器 P0tab[DigBuf[DigCom]]; P2|0XE0; // P2P2|0XE0; XXXX XXXX | 1110 0000 111X XXXXP20XFF; // P2P20XDF; 11XX XXXX 1101 1111 110X XXXX P20X1F; //关闭所有的74HC573锁存器P0(0X01DigCom); //然后选中第一个数码管P2|0XC0; // P2P2|0XC0; XXXX XXXX | 1100 0000 11XX XXXXP20XDF; // P2P20XDF; 11XX XXXX 1101 1111 110X XXXX P20X1F; //关闭所有的74HC573锁存器if(DigCom 8)DigCom 0 ;LED_tt;if(LED_tt 999) {LED_tt 0 ; LED_Ref 1 ;}if(SEG_tt1000){SEG_tt0;SEG_Ref1;}if(AD_tt500){AD_tt0;AD_Ref1;} // XXX_tt; // if(XXX_ttNNN){XXX_tt0;XXX_Ref1;} }void Timer0Init(void) //1毫秒11.0592MHz {AUXR | 0x80; //定时器时钟1T模式TMOD 0xF0; //设置定时器模式TL0 0xCD; //设置定时初始值TH0 0xD4; //设置定时初始值TF0 0; //清除TF0标志TR0 1; //定时器0开始计时 }void Delay_MS(unsigned int MS) {unsigned i,j;for(i0;iMS;i)for(j853;j0;j--); //STC15单片机设置为853; STC8H单片机修改为1109STC32G单片机修改为427; }void ALL_Init(void) {P0 0X00; //先设置关闭蜂鸣器继电器的P0输出值全关P2|0XA0; // 将P27 P25 设置为1 其他位保持不变P20XBF; // 将P26设置为0 其他位保持不变P20X1F; //关闭所有的74HC573锁存器P0 0XFF; //先设置关闭所有的LED的P0输出值全关P2|0X80; // 将P27设置为1 其他位保持不变P20X9F; // 将P26 P25设置为0 其他位保持不变P20X1F; //关闭所有的74HC573锁存器P0 0X00; //先设置选择数码管位选的P0输出值全不选P2|0XC0; // 将P27 P26 设置为1 其他位保持不变P20XDF; // 将P26设置为0 其他位保持不变P20X1F; //关闭所有的74HC573锁存器 }
http://www.w-s-a.com/news/173434/

相关文章:

  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司