上位机部分:.DOCVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上位机部分:

前进号小车设计报告 一 设计方案 1.自动控制寻迹 在地面上任意贴出一条曲折地黑线,小车通过光电传感器能辨认出,从而能沿着黑线自动寻迹。. 2. 远程控制 使小车与计算机实现串口通信,用VC编制一个控制界面,可以通过键盘上的上下左右按扭或则鼠标键实现小车实时控制和加速控制。. 3. 小车运行状态显示 为小车添加光电编码器,单片机根据测得的小车两轮的速度,将数据发给上位机,并在上位机上实时的画出小车的运行轨迹,并显示小车运行状态。 二 单片机下位机部分 2.1 主控制模块 本次设计采用的是美国cygnal公司的一款基于8051内核的双列直插式芯片C8051F330D,主要考虑的是该芯片调试的方便。 该芯片具有以下特点: 高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS) 全速、非侵入式的在系统调试接口(片内) 真正10位200 ksps的16通道单端/差分ADC,带模拟多路器 10位电流输出DAC 高精度可编程的25MHz内部振荡器 8KB可在系统编程的FLASH存储器 768字节片内RAM 硬件实现的SMBus/ I2C、增强型UART和增强型SPI串行接口 4个通用的16位定时器 具有3个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列 片内上电复位、VDD监视器和温度传感器 片内电压比较器 17个端口I/O(容许5V输入) 2.2 电源模块 由于主芯片所需供电电压为3.3v伏,电机驱动需要9v伏,传感器为5伏,因此在这里需要两组稳压芯片,分别将电源稳压到5v和3.3v,电路图如下所示。 2.3 传感器模块 传感器采用的是发射和接收集成在一起的红外线光耦,用于采集、检测到小车相对于黑线的姿态,设计的电路如下所示: 2.4 电机驱动模块 本次设计选择的集成的电机驱动芯片L298,主要考虑的是设计简单和增加系统的稳定性,而没有选择自己搭建三极管桥电路,电路图如下所示。 下位机的程序如下所示,所有程序采用c语言编写,主要考虑到c语言具有模块化的特点,具有更好的可读性和修改性,程序如下所示: 2.5 单片机串口通信部分 单片机下位机部分主要负责接收上位机传过来的控制信号,并对其信号进行解码。 串口控制程序一般分为查询和中断两者方式。查询方式适用于简单的应用,简单可靠,但是缺点是需要占用处理器资源,在发送或者接收数据的时候不能做其它的事情,处理器利用率低。中断方式下,在发送或者接受数据的时候处理器还可以做其它的工作,效率较高。对于稍微复杂的系统来说,中断方式管理串口程序将会更加有效。1: 启动小车低速前进 2: 启动小车低速后退 3: 小车左转 4: 小车右转 5: 小车后左转 6: 小车后右转 7: 小车原地左转 8: 小车原地右转 9: 小车加速 在循线模式中 1 启动小车循线 2 结束停止小车循线 #include c8051F330.h typedef unsigned char uchar; typedef unsigned int uint; sfr16 ADC0VAL=0xbd; //ADC0转换值=ADC0L+ADC0H sfr16 PCA0CP0=0xfb; //CEX0捕捉比较寄存器=PCA0CPL0+PCA0CPH0 sfr16 PCA0CP1=0xe9; sfr16 PCA0CP2=0xeb; sfr16 TMR2=0xcc; //定时器2计数器寄存器 sfr16 TMR2RL=0xca; //定时器2重载寄存器 sfr16 TMR3=0x94; //定时器3计数器寄存器 sfr16 TMR3RL=0x92; //定时器3重载寄存器 #define SYSCLK //采用外部晶振,24M #define T2_Freq = 500 //T2系统时基500Hz #define BAUDRATE 9600 //串口通信波特率 #define Buffer_COUNT 4 //定义接收缓冲区大小 #define car_mode_front 0x0a //1010 小车后

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档