1 / 15
文档名称:

大连理工大学电子工程训练实验报告.doc

格式:doc   大小:4,771KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

大连理工大学电子工程训练实验报告.doc

上传人:薄荷牛奶 2017/5/22 文件大小:4.66 MB

下载得到文件列表

大连理工大学电子工程训练实验报告.doc

文档介绍

文档介绍:大连理工大学本科实验报告题目:基于单片机的小车控制系统课程名称: 电子工程训练学院(系): 电信学部专业: 电子信息工程班级: 电子 1301 学号: 201383022 实验序号: 学生姓名: 陈冠谋成绩: 2017 年1月2日成绩评定项目各项总分得分焊接 30 最小系统与电源 10 功能实现 45 实验报告 10 出勤 5总分电子安装实验室安全守则题目:基于单片机的小车控制系统 1 设计要求根据要求可将本次实验分为以下 5个模块: 电源模块小车控制模块数码管显示模块最小系统模块蓝牙模块 2 设计分析及系统方案设计(1)电源模块:接电脑 USB 供电,采用整流电桥,按电路图连接(2) 最小系统模块:实现 40 个引脚合理分配,使数码管使用三个使能端, 8 个输出端,小车使用 4个驱动引脚控制小车(3)小车控制模块:使用 引脚间电位差使得小车马达得以驱动,实现小车正转,左转,右转,加速,停止功能(4) 数码管显示模块:采用 作为使能端, ~ 作为输出端 3各功能模块硬件电路设计 电源模块电路图如图,接电脑 USB 供电,采用整流电桥,按电路图连接 最小系统模块单片机的最小系统,电路图如下图 单片机 CPU 部分: 40 个引脚,用 40 个排针输出, 40 脚接 VCC , 20 图 2 电源电路图脚接 GND , VCC 与 GND 之间用电容耦合。 电源供电部分:直接采用 USB 给电路供电 晶振部分采用 晶振,电容采用 30pf ,晶振部分采用了一个晶振插座,可以更换升级晶振。 作为使能端, ~ 作为输出端 小车控制模块实验要求电机具有启动、停止、正转、反转和转向等功能。因此采用直流电机。采用常见的 H桥电路实现。通过控制端口的电平经过两 NPN 加大驱动能力后接上 H桥,两控制端电平相同时停转,电平相反时电机转动,通过控制两控制端电平正反可以控制电机转动方向,电路如图: 4 系统软件设计软件流程图如图所示: 开始初始化延时 中断到来 LED 显示状态和方向关闭外部中断定时器赋初值进入定时器中断定时器赋初值( ) 接收数据 IR_count=14? ess() : 保存数据,改变电机工作模式并退出中断源程序代码: 主函数: #include "" #include "" int Speed; void main(void) { System_Init(); while(1) { LCD_Dis(); }}控制函数: #include "" #include "" void System_Init(void) {P0M0 =0x00; //均为普通输入输出口 P0M1 =0x00; P1M0 =0x00; P1M1 =0x00; P2M0 =0x00; P2M1 =0x00; P3M0 =0x00; P3M1 =0x00; P4M0 =0x00; P4M1 =0x00; P5M0 =0x00; P5M1 =0x00; P6M0 =0x00; P6M1 =0x00; P7M0 =0x00; P7M1 =0x00; LCD_Init(); delay(500); LCD_Clear(); LCD_Write_String(0,1,"----YL----"); LCD_Write_String(0,0, "Speed:"); LCD_Write_String(10,0,"INIT" ); //* 初始化电机转速为 0Left =0; Right =0; PWM_Out(3,1); PWM_Out(4,1); Uart_init(); Buzzer=0; }void delay(unsigned int mms)// 延时,时长未知{unsigned int i=0, j=0; for (i=0; i<mms; i++) for (j=0; j<500; j++) ;}void PWM_Out(unsigned char pwmi,unsigned char duty)//PWM 调用,输入参数: PWM 号,占空比{PIN_SW2 |=0x80; //使能访问 XSFR PWMCFG =0x00; PWMCKS =0x00; //选择 PWM 的时钟为 Fosc/(0+1) PWMC =CYCLE; //设置 PWM 周期 if(pwmi==3) { PWM3T1 =0x0000; //设置 PWM3 第1次反转的 PWM 计数