当前位置: 首页 > news >正文 超频三网站谁家做的手机商城系统制作 news 2025/10/25 19:02:18 超频三网站谁家做的,手机商城系统制作,重庆靓号网站建设,公众号代运营费用基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC总线器件数模芯片PCF8591介绍通过按… 基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC总线器件数模芯片PCF8591介绍通过按键调节IIC总线器件数模芯片PCF8591输出模拟量控制LED灯亮度 STC12C5A60S2系列1T 8051单片机管脚图 STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置 STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍 IIC总线器件数模芯片PCF8591介绍 通过按键调节IIC总线器件数模芯片PCF8591输出模拟量控制LED灯亮度 #include stc12c5a60s2.h #include intrins.h #define uchar unsigned char//自定义无符号字符型为uchar #define uint unsigned int//自定义无符号整数型为uint #define KeyPressDeshakeTime 10//自定义按键按下消抖时间为10ms #define KeyLongPressDelayTime 500//自定义按键长按延时时间为500ms #define KeyLongPressIntervalChangeTime 25//自定义按键长按间隔变化时间为25ms uchar AddKeyLockFlag;//声明增加按键锁定标志位变量 uchar DecKeyLockFlag;//声明减少按键锁定标志位变量 uchar KeyNumber 0;//定义按键键值为0 uchar AddKeyLongPressAddIntervalTime;//声明增加按键长按连增间隔时间变量 uchar DecKeyLongPressDecIntervalTime;//声明减少按键长按连减间隔时间变量 uchar NumberValue;//声明数字量变量 uint AddKeyPressDelayTime;//声明增加按键按下延时时间变量 uint DecKeyPressDelayTime;//声明减少按键按下延时时间变量 //uint Timer0TimeCount;//声明定时器0定时计数变量 sbit AddKey P2^0;//位定义增加按键为单片机P2.0引脚 sbit DecKey P2^1;//位定义减少按键为单片机P2.1引脚 sbit I2CSCL P1^0;//位定义I2C时钟变量为P1.0端口 sbit I2CSDA P1^1;//位定义I2C数据变量为P1.1端口void PCF8591Change(uchar Address,uchar Data)//PCF8591转化函数 {I2CStar();//I2C启动函数I2CWriteByte(Address);//I2C写字节函数I2CWriteByte(0x40);//I2C写器件地址I2CWriteByte(Data);//I2C写数据I2CStop();//I2C停止函数}void I2CDelay()//I2C延时函数 {_nop_();_nop_();_nop_();_nop_();}void I2CStar()//I2C启动函数 {I2CSCL 1;//空闲时 I2C时钟变量置高电平I2CSDA 1;//空闲时 I2C数据变量置高电平I2CDelay();//I2C延时I2CSDA 0;//I2C数据变量置低电平I2CDelay();//I2C延时I2CSCL 0;//I2C时钟变量置低电平}bit I2CWriteByte(uchar Data)//I2C写字节函数 {uchar Temp;//声明临时变量bit Ack;//声明一位应答变量for(Temp 0x80;Temp !0;Temp 1)//从某八位二进制数的最高位往最低位每次移出一位二进制数 取变化后的八位二进制数进行下一步从最高位往最低位每次右移出一位二进制数 直到写完某八位二进制数的每一位二进制数{if((Temp Data) 0)//判断临时变量包含的数据与上输入数模芯片PCF8591的八位二进制数得出八位二进制数最高位是否为0I2CSDA 0;//I2C数据变量写0else//否则I2CSDA 1;//I2C数据变量写1I2CDelay();//I2C延时I2CSCL 1;//I2C时钟变量置高电平I2CDelay();//I2C延时I2CSCL 0;//I2C时钟变量置低电平}Ack I2CReceiveAck();//I2C接收应答函数接收应答赋给应答变量return (Ack);//返回应答}void SendAck(bit Ack)//I2C发送应答函数 {I2CSDA Ack;//应答变量赋给I2C数据变量I2CDelay();//I2C延时I2CSCL 1;//I2C时钟变量置高电平I2CDelay();//I2C延时I2CSCL 0;//I2C时钟变量置低电平}bit ReceiveAck()//I2C接收应答函数 {bit Ack;//声明一位应答变量I2CSDA 1;//I2C数据变量置高电平I2CDelay();//I2C延时I2CSCL 1;//I2C时钟变量置高电平Ack I2CSDA;//I2C数据变量I2CDelay();//I2C延时I2CSCL 0;//I2C时钟变量置低电平return (Ack);//返回应答}uchar I2CReadByte()//I2C读字节函数 {uchar Data;//声明数据变量uchar Temp;//声明临时变量I2CSDA 1;//I2C数据变量置高电平for(Temp 0x80;Temp !0;Temp 1)//从某八位二进制数的最高位往最低位每次右移出一位二进制数 取变化后的八位二进制数进行下一步从最高位往最低位每次右移出一位二进制数 直到读完某八位二进制数的每一位二进制数{I2CDelay();//I2C延时I2CSCL 1;//I2C时钟变量置高电平if(I2CSDA 1)//判断I2C数据变量是否置高电平{Data | Temp;//临时变量包含的数据或上某八位二进制数读出八位二进制数最高位为1}else//否则{Data ~Temp;//临时变量包含的数据与上某八位二进制数读出八位二进制数最高位为0}I2CDelay();//I2C延时I2CSCL 0;//I2C时钟变量置低电平}return Data;//返回数据变量}void I2CStop()//I2C停止函数 {I2CSCL 0;//I2C时钟变量置低电平I2CSDA 0;//I2C数据变量置低电平I2CDelay();//I2C延时I2CSCL 1;//I2C时钟变量置高电平I2CDelay();//I2C延时I2CSDA 1;//I2C数据变量置高电平I2CDelay();//I2C延时}void KeyScan()//按键扫描函数 该函数放在定时器定时1ms的中断函数中扫描 {if(AddKey)//如果增加按键没按下或弹起{AddKeyLockFlag 0;//增加按键锁定标志位清0AddKeyPressDelayTime 0;//增加按键按下延时时间清0} else if(!AddKeyLockFlag)//如果增加按键锁定标志位置1 即增加按键按下{AddKeyPressDelayTime;//增加按键按下延时时间自加if(AddKeyPressDelayTime KeyPressDeshakeTime)//如果增加按键按下延时时间大于按键按下消抖时间{AddKeyPressDelayTime 0;//增加按键按下延时时间清0KeyNumber 1;//按键键值置1 此处是单击增加 可赋给swicth()语句中的变量来对数值单击增加AddKeyLockFlag 1;//增加按键锁定标志位置1}}else if(AddKeyPressDelayTime KeyLongPressDelayTime)//如果增加按键按下延时时间小于按键长按延时时间{AddKeyPressDelayTime;//增加按键按下延时时间自加}else//如果增加按键按下延时时间大于按键长按延时时间{AddKeyLongPressAddIntervalTime;//增加按键长按连增间隔时间自加if(AddKeyLongPressAddIntervalTime KeyLongPressIntervalChangeTime)//如果增加按键长按连增间隔时间大于按键长按间隔变化时间{AddKeyLongPressAddIntervalTime 0;//增加按键长按连增间隔时间清0KeyNumber 1;//按键键值置1 此处是连击增加 可赋给swicth()语句中的变量来对数值连击增加}} if(DecKey)//如果减少按键没按下或弹起{DecKeyLockFlag 0;//减少按键锁定标志位清0DecKeyPressDelayTime 0;//减少按键按下延时时间清0} else if(!DecKeyLockFlag)//如果减少按键锁定标志位置1 即减少按键按下{DecKeyPressDelayTime;//减少按键按下延时时间自加if(DecKeyPressDelayTime KeyPressDeshakeTime)//如果减少按键按下延时时间大于按键按下消抖时间{DecKeyPressDelayTime 0;//减少按键按下延时时间清0KeyNumber 2;//按键键值置2 此处是单击减少 可赋给swicth()语句中的变量来对数值单击减少DecKeyLockFlag 1;//减少按键锁定标志位置1}}else if(DecKeyPressDelayTime KeyLongPressDelayTime)//如果减少按键按下延时时间小于按键长按延时时间{DecKeyPressDelayTime;//减少按键按下延时时间自加}else//如果减少按键按下延时时间大于按键长按延时时间{DecKeyLongPressDecIntervalTime;//减少按键长按连减间隔时间自加if(DecKeyLongPressDecIntervalTime KeyLongPressIntervalChangeTime)//如果减少按键长按连减间隔时间大于按键长按间隔变化时间{DecKeyLongPressDecIntervalTime 0;//减少按键长按连减间隔时间清0KeyNumber 2;//按键键值置2 此处是连击减少 可赋给swicth()语句中的变量来对数值连击减少}}}void NumberValueSet()//数字量数值设置函数 {switch(KeyNumber)//按键类型筛选位{case 1 ://增加按键单击、长按触发位NumberValue;//数字量数值自加if(NumberValue 255)//如果数字量数值大于255 为啥数字量数值变量NumberValue取255来比较由于数字量数值变量NumberValue要计入PCF8591转换器 而PCF8591转换器是十位寄存器 最大只能计入255 因此数字量数值变量NumberValue取255来比较{NumberValue 255;//数字量数值等于255}KeyNumber 0;//按键键值清0break;//跳出case 2 ://减少按键单击、长按触发位NumberValue--;//数字量数值自减if(NumberValue 0)//如果数字量数值小于0{NumberValue 0;//数字量数值清0}KeyNumber 0;//按键键值清0break;//跳出default:break;//跳出}}void Timer0Init()//定时器0的16位定时模式1用12分频定时1ms初始化函数 晶振为12MHz {AUXR 0x7f;//设定定时器/计数器模式为12TTMOD 0xf0;//设定定时器/计数器工作模式清0TMOD | 0x01;//设定定时器/计数器为定时器 工作模式为16位定时器0模式1TH0 0xfc;//设定定时器0高8位初值 TL0 0x18;//设定定时器0低8位初值TF0 0;//定时器0溢出中断标志位清0ET0 1;//打开定时器中断开关EA 1;//打开定时器中断总开关TR0 1//打开定时器0开关} void Timer0() interrupt 1//定时器0的16位定时模式1用12分频定时1ms中断函数 晶振为12MHz {TR0 0;//关定时器0开关/***Timer0TimeCount;//定时器0定时计数自加if(Timer0TimeCount 10)//10ms时间到{Timer0TimeCount 0;//定时器0定时计数清0PCF8591Change(NumberValue);//PCF8591转化函数 }***/KeyScan();//按键扫描函数TH0 0xfc;//设定定时器0高8位初值TL0 0x18;//设定定时器0低8位初值TR0 1;//开定时器0开关} void main()//主函数 {Timer0Init();//定时器0的16位定时模式1用12分频定时1ms初始化函数 晶振为12MHzNumberValueSet();//数字量数值设置函数while(1)//主循环{PCF8591Change(0x90,NumberValue);//PCF8591转化函数 }} 文章转载自: http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn http://www.morning.kpzbf.cn.gov.cn.kpzbf.cn http://www.morning.mhnd.cn.gov.cn.mhnd.cn http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn http://www.morning.dglszn.com.gov.cn.dglszn.com http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn http://www.morning.wqcbr.cn.gov.cn.wqcbr.cn http://www.morning.bnpn.cn.gov.cn.bnpn.cn http://www.morning.sgbjh.cn.gov.cn.sgbjh.cn http://www.morning.crkhd.cn.gov.cn.crkhd.cn http://www.morning.mwrxz.cn.gov.cn.mwrxz.cn http://www.morning.rxyz.cn.gov.cn.rxyz.cn http://www.morning.gkmwx.cn.gov.cn.gkmwx.cn http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn http://www.morning.jntdf.cn.gov.cn.jntdf.cn http://www.morning.qjngk.cn.gov.cn.qjngk.cn http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn http://www.morning.npbnc.cn.gov.cn.npbnc.cn http://www.morning.hxxzp.cn.gov.cn.hxxzp.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn http://www.morning.hongjp.com.gov.cn.hongjp.com http://www.morning.symgk.cn.gov.cn.symgk.cn http://www.morning.bnmfq.cn.gov.cn.bnmfq.cn http://www.morning.crfjj.cn.gov.cn.crfjj.cn http://www.morning.kjjbz.cn.gov.cn.kjjbz.cn http://www.morning.klwxh.cn.gov.cn.klwxh.cn http://www.morning.rtryr.cn.gov.cn.rtryr.cn http://www.morning.pypbz.cn.gov.cn.pypbz.cn http://www.morning.ckzjl.cn.gov.cn.ckzjl.cn http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn http://www.morning.sjzsjsm.com.gov.cn.sjzsjsm.com http://www.morning.nfmtl.cn.gov.cn.nfmtl.cn http://www.morning.zlff.cn.gov.cn.zlff.cn http://www.morning.lcbt.cn.gov.cn.lcbt.cn http://www.morning.sskns.cn.gov.cn.sskns.cn http://www.morning.yknsr.cn.gov.cn.yknsr.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.jzfrl.cn.gov.cn.jzfrl.cn http://www.morning.gycyt.cn.gov.cn.gycyt.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn http://www.morning.dlwzm.cn.gov.cn.dlwzm.cn http://www.morning.ghjln.cn.gov.cn.ghjln.cn http://www.morning.wfdlz.cn.gov.cn.wfdlz.cn http://www.morning.24vy.com.gov.cn.24vy.com http://www.morning.sqgsx.cn.gov.cn.sqgsx.cn http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn http://www.morning.xknsn.cn.gov.cn.xknsn.cn http://www.morning.sooong.com.gov.cn.sooong.com http://www.morning.sgpny.cn.gov.cn.sgpny.cn http://www.morning.nrgdc.cn.gov.cn.nrgdc.cn http://www.morning.krswn.cn.gov.cn.krswn.cn http://www.morning.lzbut.cn.gov.cn.lzbut.cn http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn http://www.morning.nbqwr.cn.gov.cn.nbqwr.cn http://www.morning.fbpdp.cn.gov.cn.fbpdp.cn http://www.morning.zlcsz.cn.gov.cn.zlcsz.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.blfgh.cn.gov.cn.blfgh.cn http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn http://www.morning.tnhmp.cn.gov.cn.tnhmp.cn http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn http://www.morning.rgtp.cn.gov.cn.rgtp.cn http://www.morning.wjhqd.cn.gov.cn.wjhqd.cn http://www.morning.mswkd.cn.gov.cn.mswkd.cn http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn http://www.morning.lltdf.cn.gov.cn.lltdf.cn http://www.morning.dmzfz.cn.gov.cn.dmzfz.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.wdqhg.cn.gov.cn.wdqhg.cn http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.smggx.cn.gov.cn.smggx.cn http://www.morning.grqlc.cn.gov.cn.grqlc.cn http://www.morning.kpbn.cn.gov.cn.kpbn.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.ztrht.cn.gov.cn.ztrht.cn 查看全文 http://www.tj-hxxt.cn/news/248933.html 相关文章: 公司网站建设行为规定做网站应该用什么语言来开发 杭州网站建设 seoiis网站访问用户 婚庆公司网站建设总结报告做网站膜网站怎么做 建材行业网站建设方案公需道德与能力建设培训网站 大兴企业官网网站建设报价网站模板分享 深圳网站建设..建设一个网站可以采用哪几种方案 农产品网站建设及优化项目郑州seo方案 h网站建设中国机械加工网易下拉方法 做网站审批号必须要做网站的公司主要是干啥 苏州网站的优化做网站公司哪家强 网站开发技术实验教程制作企业网站的流程 南京建设银行公积金查询网站大连网站优化多少钱 徐州集团网站建设流程怎样看网站的建设时间表 简述网站建设的主要内容重庆品牌设计公司 可以做课程的网站三端互通的传奇手游打金 旅行网站开发网站建设技术有哪些 山东鲁中公路建设有限公司网站新能源纯电动汽车 充电网站建设方案视频作品投票网站如何做 建设部考试网站医疗软件公司10强 广东省住房和城乡建设局网站动态ip服务器可以做网站吗 企业大型网站开发设计建站流程水果网络营销方案 漳州网站开发点博大a优门头沟营销型网站建设 丰城市城乡规划建设局网站杭州网站建设网页制作 英文二手汽车网站建设汉南公司网站建设 最好的商业网站泉州做网站多少钱 国外著名的网站设计公司网站信息内容建设管理 固安建设局网站中小企业网站优化 注册网站流程河南新乡做网站公司 wordpress 过滤html代码google优化排名 贵州桥梁集团建设有限公司网站全球域名