声音导引系统的设计_第1页
声音导引系统的设计_第2页
声音导引系统的设计_第3页
声音导引系统的设计_第4页
声音导引系统的设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录附录3程序#include<reg52.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedint//*****函数定义****voidlong_delay(void);//长延时voidshort_delay(void);//短延时voiddelay10ms(unsignedchar);//延时10MSunsignedcharcodekeybcd[]={0,0x0c,9,5,1,0x0e,0x0a,7,3,0x0d,0,6,2,0x0f,0x0b,8,4};charii=0;//******I/O定义***变量***sbiten1=P0^7;/*MMC的EnableA*/sbiten2=P0^2;/*MMC的EnableB*/sbits1=P0^6;/*MMC的Input1*/sbits2=P0^4;/*MMC的Input2*/sbits3=P0^3;/*MMC的Input3*/sbits4=P0^5;/*MMC的Input4*/uchart=0;/*中断计数器*/ucharm1=0;/*电机1速度值*/ucharm2=0;/*电机2速度值*/uchartmp1,tmp2;/*电机当前速度值*/unsignedchardigit[5];unsignedcharkey_number,j,k;unsignedinttmr;unsignedlongwait_cnter;sbita=P2^0;sbitb=P2^1;sbitc=P2^2;//cssbitclk=P2^3;//clksbitdat=P2^4;//datsbitkey=P3^2;//key//******显示指令******#defineCMD_RESET0xa4//复位#defineCMD_TEST0xbf//测试#defineDECODE00x80//译码0#defineDECODE10xc8//译码1#defineDECODE80xcf#defineCMD_READ0x15#defineUNDECODE0x90//不译码#defineRTL_CYCLE0xa3//循环左移#defineRTR_CYCLE0xa2//循环右移#defineRTL_UNCYL0xa1//左移#defineRTR_UNCYL0xa0//右移#defineACTCTL0x98//消隐#defineSEGON0xe0//段点亮#defineSEGOFF0xc0//段关闭#defineBLINKCTL0x88//闪烁//********************************************//voidwrite(unsignedcharcmd,unsignedchardta){send_byte(cmd);send_byte(dta);}unsignedcharread(unsignedcharcommand){send_byte(command);return(receive_byte());}voidsend_byte(unsignedcharout_byte){unsignedchari;a=0; b=0; c=0;long_delay();for(i=0;i<8;i++){if(out_byte&0x80){dat=1;}else{dat=0;}clk=1;short_delay();clk=0;short_delay();out_byte=out_byte*2;}dat=0;}unsignedcharreceive_byte(void){unsignedchari,in_byte;dat=1;//long_delay();for(i=0;i<8;i++){clk=1;short_delay();in_byte=in_byte*2;if(dat){in_byte=in_byte|0x01;}clk=0;short_delay();}dat=0;return(in_byte);}voidlong_delay(void){unsignedchari;for(i=0;i<0x30;i++);}voidshort_delay(void){unsignedchari;for(i=0;i<8;i++);}//*********************n*10ms**********************voiddelay10ms(unsignedchartime){unsignedchari;unsignedintj;for(i=0;i<time;i++){for(j=0;j<0x390;j++){if(!key){;}}}}//************************************************voidtimer0()interrupt1/*T0中断服务程序*/{if(t==0)/*1个PWM周期完成后才会接受新数值*/{tmp1=m1;tmp2=m2;}if(t<tmp1)en1=1;elseen1=0;/*产生电机1的PWM信号*/if(t<tmp2)en2=1;elseen2=0;/*产生电机2的PWM信号*/t++;if(t>=100)t=0;/*1个PWM信号由100次中断产生*/}//************************************************/*电机控制函数index-电机号(1,2);speed-电机速度(-100—100)*/voidmotor(ucharindex,charspeed){if(speed>=-100&&speed<=100){if(index==1)/*电机1的处理*/{m1=abs(speed);/*取速度的绝对值*/if(speed<0)/*速度值为负则反转*/{s1=0;s2=1;}else/*不为负数则正转*/{s1=1;s2=0;}}if(index==2)/*电机2的处理*/{m2=abs(speed);/*电机2的速度控制*/if(speed<0)/*电机2的方向控制*/{s3=0;s4=1;}else{s3=1;s4=0;}}}}//***主程序***main(){for(tmr=0;tmr<0x2000;tmr++);//上电延时send_byte(CMD_RESET);//复位HD7279Asend_byte(CMD_TEST);//测试指令delay10ms(50);//延时1Ssend_byte(CMD_RESET);//复位while(1){wait_cnter=0;key_number=0xff;if(!key)/*key_dis();*/ TMOD=0x02;/*设定T0的工作模式为2*/ TH0=0x9B;/*装入定时器的初值*/ TL0=0x9B; EA=1;/*开中断*/ ET0=1;/*定时器0允许中断*/ TR0=1;/*启动定时器0*/ for(j=0;j<=100;j++)/*正转加速*/ { motor(1,j); motor(2,j); delay10ms(5); } for(j=100;j>0;j--)/*正转减速*/ { motor(1,j); motor(2,j); delay10ms(5); } EA=0;/*开中断*/ ET0=0;/*定时器0允许中断*/ TR0=0;/*启动定时器0*/ break; case0x1b: write7279(DECODE8,0x0f); TMOD=0x02;/*设定T0的工作模式为2*/ TH0=0x9B;/*装入定时器的初值*/ TL0=0x9B; EA=1;/*开中断*/ ET0=1;/*定时器0允许中断*/ TR0=1;/*启动定时器0*/ for(j=0;j<=100;j++)/*反转加速*/ { motor(1,-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论