资源描述:
《单片机控制变速往复运动实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机控制变速往复运动实验一、实验目的1、熟练掌握单片机键盘和显示功能应用2、学会利用单片机对运动小车进行变速控制二、实验器材1、DCP-002单片机89S51电路2、DCP-003键盘及LED数字显示电路3、DCP-0011D/A转换电路4、DCP-009脉宽调制电路三、实验原理通过单片机产生可变的数字电压,经过D/A转换为模拟电压并可调为正负电压值,再通过脉宽调制电路对输出电压进行电压放大和功率放大,以达到驱动减速电机所需要的电压。通过键盘改变数字电压递增或递减的数值,可改变小车的加速度,即可观看到小车的速
2、度从最低到最高再回到最低所需要时间的不同。LED数码管可方便、简单显示小车的实时运动方向。如下图所示:四、实验步骤1、把DCP-003的CS、RST短接后接到DCP-002的GND,DCP-003的CLK接到DCP-002的ALE。把DCP-003的P1接到DCP-002的P2。把DCP-003的INT接到DCP-002的P3.2。2、把DCP-002的Y00-Y07接到DCP-0011的D0-D7上。3、把DCP-009Vin接到DCP-0011的VoutC上,DCP-009的VoutC和GND分别接到运动小
3、车平台的电机输入的红黑接线柱上。4、调节DCP-0011的RW1,使其放大倍数为2,调节RW2,使R6的左端的电压为-2.5V,即当D0-D7分别为0,128,255时,对应的VoutC输出为-5V,0V,5V。调节DCP-009的RW1使其放大倍数为2,调节RW2,使其输出的正负电压相等。5、把各模块的电源接上,并注意共地。6、把“单片机控制的变速往复运动实验.HEX”文件下载到单片机中,并运行。7、可按下键盘的1、2、3键分别调制小车的加速度,观察其现象。接线图参考程序//-----头文件引用------#
4、include#include//XBYTE函数在该库中//-----宏声明-----#defineDAC0808XBYTE[0xA800]//DA地址#defineD8279XBYTE[0x9000]//8279数据口地址#defineC8279XBYTE[0xB000]//8279命令口地址/***************变量定义**************/#defineucharunsignedchar#defineuintunsignedintuinti,flag
5、,n;unsignedcharcodedispbitcode1[8][8]={0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00
6、,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04};unsignedcharcodedispbitcode2[8][8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,
7、0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/***************延时函数**************/voiddelays(unsignedcha
8、rk){unsignedchari,j;for(i=k;i>0;i--)for(j=110;j>0;j--);}/***************显示函数**************/voiddisplay1(void){uinti,j;C8279=0x90;//写显示命令for(j=0;j<8;j++)for(i=0;i<8;i++){D8279=dispbitcode1[j][i];