电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

步进电机稳压直流稳压电源模块程序VIP免费

步进电机稳压直流稳压电源模块程序_第1页
1/12
步进电机稳压直流稳压电源模块程序_第2页
2/12
步进电机稳压直流稳压电源模块程序_第3页
3/12
个人整理精品文档,仅供个人学习使用1/23(1)步进电机稳压直流稳压电源模块程序#includeunsignedcharR1,R2,R3,TXDATA,LEDF,BJF,COUNTW,data;unsignedinti;constchartable[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xFF};//不带小数点的显示段码表constchartable0[11]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0xFF};//带小数点的的显示段码表unsignedchars[4];//定义一个显示缓冲数组//把需要显示的数字装入显示缓冲数组voidsfz(){s[0]=R3;s[1]=R2;s[2]=R1;s[3]=0x0A;//最后一个LED显示"DARK"}//系统各寄存器初始化子程序voidinitial(){R1=0X00;R2=0X00;R3=0X00;sfz();//把需要显示的数字装入显示缓冲数组TXDATA=0X00;LEDF=0X01;BJF=0X01;TRISB1=0;TRISB2=0;TRISB4=1;TRISB5=1;//设置与键盘相关的各口的输入输出方式RB1=0;RB2=0;//设置扫描初始条件}//SPI方式显示初始化子程序voidSPIINIT(){PIR1=0;SSPCON=0x30;SSPSTAT=0xC0;//设置SPI的控制方式,允许SSP方式,并且时钟下降沿发送,与"74HC595,当其//SCLK从低到高跳变时,串行输入寄存器"的特点相对应个人整理精品文档,仅供个人学习使用2/23TRISC=0xD7;//SDO引脚为输出,SCK引脚为输出TRISA5=0;//RA5引脚设置为输出,以输出显示锁存信号}//I2C初始化子程序voidi2cint(){SSPCON=0X08;//初始化SSPCON寄存器TRISC3=1;//设置SCL为输入口TRISC4=1;//设置SDA为输入口TRISA4=0;SSPSTAT=0X80;//初始化SSPSTAT寄存器SSPADD=0X02;//设定I2C时钟频率SSPCON2=0X00;//初始化SSPCON2寄存器di();//关闭总中断SSPIF=0;//清SSP中断标志RA4=0;//关掉74HC165的移位时钟使能,以免74HC165//移位数据输出与I2C总线的数据线发生冲突SSPEN=1;//SSP模块使能}//软件延时子程序voidDELAY(){for(i=3553;--i;)continue;}//键服务子程序voidkeyserve(){PORTB=0XFD;if(RB5==0)BJF=0X01;//S9键按下,步进加标志置1PORTB=0XFB;if(RB5==0)BJF=0X00;//S11键按下,步进加标志清0RB1=0;//恢复PORTB的值RB2=0;}//键扫描子程序voidKEYSCAN(){while(1){while(1){if(RB5==0)break;}DELAY();//若有键按下,则软件延时if(RB5==0)break;//若还有键按下,则终止循环扫描,返回}个人整理精品文档,仅供个人学习使用3/23}//SPI传送数据子程序voidSPILED(data){SSPBUF=data;//启动发送do{;}while(SSPIF==0);SSPIF=0;}//显示子程序voiddisplay(){SPIINIT();//spi方式显示初始化RA5=0;//准备锁存for(COUNTW=0;COUNTW<4;COUNTW++){data=s[COUNTW];if(COUNTW==1)data=table0[data];//第二位需要显示小数点elsedata=table[data];SPILED(data);//发送显示段码}for(COUNTW=0;COUNTW<4;COUNTW++){data=0xFF;SPILED(data);//连续发送4个DARK,使显示美观}RA5=1;//最后给一个锁存信号,代表显示任务完成}//I2C总线输出数据子程序voidi2cout(){i2cint();//因为SPI输出和I2C输出不能同时工作,则需要//不断在两种方式间切换SEN=1;//产生I2C启动信号for(i=0x02;--i;)continue;//给予一定的延时,保证启动do{RSEN=1;//产生I2C启动信号}while(SSPIF==0);//如果没能启动,则反复启动,直到启动为止SSPIF=0;//SSPIF标志清0SSPBUF=0X58;//I2C总线发送地址字节do{;}while(SSPIF==0);//等待地址发送完毕个人整理精品文档,仅供个人学习使用4/23SSPIF=0;//SSPIF标志清0SSPBUF=0X01;//I2C总线发送命令字节do{;}while(SSPIF==0);//等待命令发送完毕SSPIF=0;//SSPIF标志清0SSPBUF=TXDATA;//I2C总线发送数据字节do{;}while(SSPIF==0);//等待数据发送完毕SSPIF=0;//SSPIF标志清0PEN=1;//产生停止条件do{;}while(SSPIF==0);//等待停止条件产生SSPIF=0;//SSPIF标志清0}//步进加子程序voidBJADD(){R1++;TXDATA=TXDATA+2;if(R1>9){R1=0;R2++;if(R2>9){R2=0;R3++;}}if((R3==1)&&(R2==2)&&(R1==1)){R3=0;R2=0;R1=0;//若R3,R2,R1超过120,则又从0计起TXDATA=0;}sfz();//把需要显示的数字装入显示缓冲数组}//步进减子程序voidBJSUB(){...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

步进电机稳压直流稳压电源模块程序

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部