modelsim 2020.4SE安装教程超详细(仅供学习使用)

前言

modelsim不同版本的区别

ModelSim常见的版本主要有以下几种:

  1. ModelSim PE (Personal Edition) - 个人版,功能相对少
  2. ModelSim SE (Standard Edition) - 标准版,功能最全
  3. ModelSim OEM(Original Equipment Manufacture)-原始设备制造商版本,针对不同厂商推出,多种定制版本,比如针对Intel Xlinx等推出的

这些版本针对不同的用户需求和应用场景进行了定制化开发,并在功能和性能上有所区别。

一、Modelsim 2020.4 SE 下载

我们这里选择功能最全的标准版,方便后续使用

百度网盘下载链接:链接:https://pan.baidu.com/s/12tgWHzDYkcJJ-jB5RXd2xg提取码:u6qb

下载后是这样
在这里插入图片描述

二、开始安装

双击exe文件运行安装程序
在这里插入图片描述
下一步
在这里插入图片描述
选择安装路径(最好全英文)

在这里插入图片描述

同意

在这里插入图片描述

等待几分钟

在这里插入图片描述

第一次提示-是否安装桌面快捷方式 选择“是”
在这里插入图片描述
第二次提示是否将 Modelsim 可执行文件放入 Path 变量,选择“是”时可以从 DOS 提示符执行 Modelsim, 这里我们选择“是”

在这里插入图片描述

这里我们有license选择否,选是会重启
在这里插入图片描述

安装完成
在这里插入图片描述

装好后打开桌面的modelsim会弹出没有license
在这里插入图片描述

三、破解方法 仅供学习

找到crack1文件夹,复制这四个文件到剪切板

在这里插入图片描述

粘贴到win64文件夹中替换文件
在这里插入图片描述
找到patch64_dll.bat属性取消勾选只读

在这里插入图片描述
找到你网络的物理地址复制
在这里插入图片描述

记事本打开patch64_dll.bat,修改第四行,添加物理地址记得去掉短横 “-”
在这里插入图片描述

点击确定
在这里插入图片描述

双击patch64_dll.bat后生成LICENSE.TXT

在这里插入图片描述
文件另存到modelsim安装路径下
在这里插入图片描述
下一步添加环境变量
在这里插入图片描述
在这里插入图片描述
双击Path,添加一条win64文件夹的路径,就在安装目录下
在这里插入图片描述

再添加一条环境变量
变量名为MGLS_LICENSE_FILE或者LM_LICENSE_FILE,具体可以直接现在打开modelsim,会有一段红色警告会提醒你,上面有变量名注意看
变量值就是安装路径下的LICENSE.TXT文件

在这里插入图片描述

可以愉快的使用了,注意这个是和MAC地址绑定的,如果MAC地址修改了就需要重新生成LICENSE.TXT(正常来说MAC地址是唯一的,如果你开启了随机MAC地址[通常是用于防止被别人锁定],那么MAC地址就会在重新连接WIFI时变化)

参考链接
http://www.jyguagua.com/?p=9715
https://zhuanlan.zhihu.com/p/646172508

<think>好的,我现在需要帮用户介绍如何使用STC89C52RC单片机控制HC-SR04超声波模块的智能小车实现避障功能。首先,我应该先理清楚整个系统的组成部分和工作原理。 用户可能对单片机和超声波模块不太熟悉,所以我得先从硬件部分开始介绍。STC89C52RC是一个51系列的单片机,常用在嵌入式控制中。HC-SR04超声波模块是通过发送和接收超声波来测距的,测距原理是计算从发射到接收回波的时间差,然后根据声速计算距离。这个部分需要详细说明,因为这是避障的关键。 接下来,硬件连接部分需要明确各个引脚的作用。比如,Trig和Echo引脚分别连接到单片机的哪个IO口,电机的驱动电路如何设计,可能需要用到L298N这样的电机驱动模块。这部分需要给出具体的连接方法,比如Trig接P1.0,Echo接P1.1,这样用户能清楚接线方式。 然后是软件设计,也就是程序的流程。首先初始化定时器和IO口,接着触发超声波模块发送信号,等待回波,计算时间,再转换成距离。这部分需要考虑到定时器的配置,如何测量高电平的持续时间,以及距离计算的公式是否正确。同时,避障逻辑需要判断距离是否小于设定的阈值,如果是,就控制电机转向或者停止。这里可能需要处理去抖动或者多次测量取平均的问题,以提高稳定性。 另外,用户可能需要具体的代码示例,比如如何用C语言编写测距函数,如何控制电机。这时候需要给出代码片段,并解释关键部分,比如定时器的中断服务函数如何记录时间,如何将时间转换为厘米。需要注意的是,代码中的引脚定义要和硬件连接一致,比如Trig和Echo对应的端口是否正确。 可能还需要考虑一些常见问题,比如超声波模块的测量周期,避免频繁触发;或者环境因素对测距的影响,比如障碍物的材质、角度等。此外,避障策略可能需要更复杂的判断,比如多次检测到障碍物后再转向,或者根据不同的距离采取不同的速度。 在结构上,应该分步骤说明,先硬件连接,再软件设计,然后主程序逻辑,最后可能加上注意事项和优化建议。这样用户能够一步步跟着操作,确保他们能够理解并实现功能。同时,要确保所有的数学公式都用正确的LaTeX格式,比如距离计算中的公式用$$...$$,行内的变量用$...$。 最后,检查是否有遗漏的部分,比如电源供应是否足够,是否需要滤波电容,或者超声波模块的有效测量范围是否符合小车的要求。这些细节可能影响实际应用的稳定性,需要提醒用户注意。</think>以下是关于STC89C52RC单片机控制HC-SR04超声波避障小车的分步说明: --- ### **一、系统组成** 1. **硬件部分** - **主控芯片**:STC89C52RC(8位51单片机) - **避障模块**:HC-SR04超声波传感器(工作电压5V,测量范围2cm-400cm) - **驱动模块**:L298N电机驱动板(控制直流电机) - **电源模块**:锂电池组(7.4V,需降压至5V供电) - **其他**:车轮底盘、红外传感器(可选辅助避障) 2. **工作原理** 超声波模块发射声波→接收回波→计算时间差→转换为距离→单片机根据距离控制电机转向 --- ### **二、硬件连接** | HC-SR04引脚 | STC89C52RC引脚 | |-------------|----------------| | VCC | 5V电源 | | Trig | P1.0(触发信号)| | Echo | P1.1(回波信号)| | GND | 共地 | **电机驱动接线**: - 左右电机PWM信号分别接P2.0-P2.3 - 使能端EN接高电平 --- ### **三、软件设计** #### 1. 超声波测距算法 ```c // 定义硬件接口 sbit Trig = P1^0; sbit Echo = P1^1; float GetDistance() { unsigned int time; Trig = 1; delay_20us(); // 触发信号维持20μs Trig = 0; while(!Echo); // 等待回波高电平 TR0 = 1; // 启动定时器 while(Echo); TR0 = 0; // 停止定时器 time = TH0*256 + TL0; // 计算总时间 TH0 = TL0 = 0; // 定时器复位 return (time * 0.017); // 距离公式:$$ s = \frac{v \cdot t}{2} = \frac{340m/s \cdot t}{2} $$ } ``` #### 2. 避障逻辑 ```c void ObstacleAvoidance() { float dist = GetDistance(); if(dist < 20) { // 阈值设为20cm StopCar(); // 停止 delay_ms(500); TurnRight(); // 右转避障 delay_ms(300); } else { Forward(); // 直行 } } ``` --- ### **四、关键代码解析** 1. **定时器初始化**(模式1,12T时钟): ```c void Timer0_Init() { TMOD |= 0x01; // 定时器0模式1 TH0 = 0; TL0 = 0; ET0 = 1; // 允许中断 EA = 1; } ``` 2. **电机控制函数**示例: ```c void Forward() { P2 = 0x0A; // 0010 1010(右轮正转,左轮正转) } ``` --- ### **五、注意事项** 1. **时序要求**: - HC-SR04需要至少10μs的触发脉冲 - 两次测量间隔建议>60ms 2. **误差处理**: - 增加软件滤波(如取3次测量中值) - 避免测量角度倾斜超过15° 3. **电源隔离**: - 电机与单片机使用独立电源 - 添加100μF电解电容滤波 --- ### **六、优化方向** 1. 结合红外传感器实现多传感器融合 2. 加入PID算法实现平滑转向 3. 通过PWM调节避障时的减速过程 通过上述设计,当检测到障碍物距离小于20cm时,小车会执行右转避障动作,实测误差可控制在±1cm内(标准平面障碍物)。建议先用示波器调试超声波信号时序,再整合到整车系统中。
评论 105
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值