1、 物联网课程设计物联网课程设计 课题:课题:ADCADC 调用步进电机调用步进电机 专业、班级: 10 计算机科学与技术 2 班 学 号 : 姓 名: 指 导 教 师: 设 计 时 间: 2012 年 12 月 29 日 ADC 实验调用步进电机 一、实验目的一、实验目的 1 学习数模转换的原理及 C8051F1xx 单片机是如何处理数模转换的 的方法并了解步进电机的基本原理。 2掌握针对步进电机的编程方法。 二、实验内容二、实验内容 通过ADC调用步进电机,进而控制步进电机的正转与反转。 三、实验设备三、实验设备 1装有KeilC 开发及调试环境的PC。 2通用调试器母板 3通用调试母板 +
2、 直流与步进电机 4、串口线 四、预备知识四、预备知识 仔细阅读 C8051F12x 器件手册关于ADC 的说明和使用步进电机的 知识。 五、实验原理及说明五、实验原理及说明 本扩展板集成了直流电机和步进电机, 在通用调试板上C8051F1xx 的 控制下,可以对步进电机进行正反转动的操作C8051F120/的ADC0 子 系统包括一个9 通道的可编程模拟多路选择器(AMUX0),一个可编 程增益放大器(PGA0)和一个100ksps、12 位分辨率的逐次逼近寄存 器型 ADC, ADC 中集成了跟踪保持电路和可编程窗口检测器 (见图5.1 的原理框图) 。AMUX0、PGA0、数据转换方式及
3、窗口检测器都可用软 件通过图5.1 所示的特殊功能寄存器来控制。ADC0 所 使用的电压基准按“9.电压基准所述选择。只有当 ADC0 控制寄存器 中的AD0EN 位被置1时ADC0 子系统(ADC0、跟踪保持器和PGA0) 才被允许工作。当AD0EN 位为0时,ADC0 子系统处于低功耗关断 方式。 六、六、 实验步骤实验步骤 1.启动 Keil Vision3,打开工程adcbjdj.Uv2; 2.连好实验设备。 3. 将目标板的串口PC-COM-120和计算机通过串口线连接起来,编译 程序并生成可执行文件,将程序下载到目标板上。在此过程中必须点 击“Download to Flash M
4、emory”选项将程序烧到目标板上。 如图所示; 4.打开串口调试工具,相关配置如图所示 5.断电后重启开发板,点击“连接” 旋转 RP2-120 旋钮,如图所示。可以观察到步进电机随着旋钮旋转 而旋转, 即旋钮逆时针旋转步进电机也逆时针旋转, 旋钮顺时针旋转 步进电机也顺时针旋转。 七、程序框图七、程序框图 八、八、 实验参考程序实验参考程序 #include #include sfr16 ADC0 = 0xbe; sfr16 RCAP2 = 0xca; sfr16 RCAP3 = 0xca; sfr16 TMR2 = 0xcc; sfr16 TMR3 = 0xcc; #define BAU
5、DRATE 115200 #define SYSCLK 49000000 #define SAMPLE_RATE 50000 #define INT_DEC 256 #define SAR_CLK 2500000 #define SAMPLE_DELAY 200 sbit LED = P16; sbit SW1 = P37; /SW1=0 按开关 sbit LED1 = P02; /控制 LED1=1 灯亮 sbit LED2 = P03; /控制 LED=1 灯亮 sbit ctrl1 = P1 2; sbit ctrl2 = P13; sbit ctrl3 = P14; sbit ctrl4 = P15; char RELAY = 1 ; void OSCILLATOR_Init (void); void PORT_Init (void); void UART1_Init (void); void ADC0_Init (void); void TIMER3_Init (int counts); void ADC0_ISR (void); void Wait_MS (unsigned int ms); void Ext_Interrupt_Init (void); long Resu