51单片机的在线仿真环境搭建

发布者:清晨微风最新更新时间:2024-03-19 来源: elecfans关键字:51单片机  在线仿真  环境搭建 手机看文章 扫描二维码
随时随地手机看文章

1.单击Project->NewuVision Project

pYYBAGPE-6qAFCqRAACtWB7uCNU582.png

2.输入工程名称,点击保存,工程名称支持中文

pYYBAGPE-7yASQgyAACXOdJzBfI946.png

3.输入AT89C52,选中Microchip中的AT89C52,单击确定

poYBAGPE-8mAL7UBAABi-CDpLKM860.png

4.鼠标右键单击Source Group1,选择Add New Item to Group …

poYBAGPE-9SAFO3qAAD1sIHn5sY513.png

选择C File,输入文件名和文件存储路径,单击Add,将c文件添加进工程当中

poYBAGPE--KAJ8POAAB2rW1_77A737.png

6.此时Project窗口会显示出工程中存在的c文件

poYBAGPE--6AXRQGAAC0oKO1XpA841.png

7.设置工程输出HEX文件

pYYBAGPE-_iASGK7AAC5-InaAJY302.png

8.点击红色框中的选项,开启编译输出HEX文件功能

pYYBAGPE_AaAdIALAACs-m8CzXA133.png

9.输入下面一段代码后编译程序

poYBAGPE_BWACvWEAAF7X8zak1Y959.png

注:KEIL默认是不支持中文的,输入中文会显示??,此时根据下图所示进行设置,点击Edit->Configuration

pYYBAGPE_CCASmCEAAFlhVpHpiY999.png

选择Encoding中的Chinese GB2312(Simplified),并设置首行缩进Tab size为4个字符。

pYYBAGPE_DGALGXaAAKZJzNl86c676.png

10.编译后的结果如下图所示,其中Error代表程序中错误个数,Warning代表警告个数,如果错误个数不是0,那么程序就不会编译成功,警告的个数与程序是否编译成功无关,如果显示出creating hex file … 这一条信息说明程序编译成功,成功的生成了hex,这个hex写入单片机后就可以运行程序了。

poYBAGPE_DyAAxPgAABF3ZKpBpE950.png

11.在Protuse中放置元件AT89C52,双击元件,导入HEX文件,并设置主频12MHz

poYBAGPE_EaAGMwmAAENjLF4eXY306.png

至此,51单片机的在线仿真环境搭建就完成了。


关键字:51单片机  在线仿真  环境搭建 引用地址:51单片机的在线仿真环境搭建

上一篇:基于51单片机的UART串口通信
下一篇:51单片机温度控制电路

推荐阅读最新更新时间:2024-11-02 23:27

19-基于51单片机的温湿度GSM上报
具体实现功能: (1)温湿度值测量及显示稳定、精确; (2)可以通过按键设定温湿度报警阈值,且测得的温湿度超过设定的阈值时,报警指示灯闪烁,蜂鸣器报警; (3)可将测得的温湿度值实时通过串口通信模块发送到串口调试助手。 单片机介绍 51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器
[单片机]
19-基于<font color='red'>51单片机</font>的温湿度GSM上报
51单片机实验(一)定时/计数器及其中断
我们这学期开了单片机的课,不知道为什么我们要用汇编语言写程序,感觉汇编程序真的挺难写的,所以把实验记录下来把。 如果没有学过汇编的小伙伴建议先去熟悉一下简单的汇编指令,之前简单的实验我就不记录了,我们从定时计数器实验开始吧。 首先来回顾一下和中断,定时有关的知识 51单片机中断级别 中断源 中断允许寄存器IE EA---全局中允许位。 EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。 EA=0,关闭全部中断。 -------,无效位。 ET2---定时器/计数器2中断允许位。 EA总中断开关,置1为开; ET2=1,打开T2中断。 EX0为外部中断0(INT0)开关,…… ET
[单片机]
<font color='red'>51单片机</font>实验(一)定时/计数器及其中断
单片机调试还可以这样玩?Keil与Proteus实现51单片机完美联调
之前我们介绍过Proteus单片机的程序仿真调试,但是对于绝大部分单片机爱好者来说,最熟悉的开发软件还是Keil,我们再来详细介绍下Proteus怎么结合Keil软件搭建强大的51单片机联合调试环境。 我们先来看下联合调试仿真效果 Keil C51软件版本:V9.54 Proteus软件版本:8.9 怎么搭建这种联合调试环境,我们接下来一步一步实现 我们这里需要用到一个“VDM51.dll”的文件 下载地址: VDM51.dll 163.8K · 百度网盘 第一步:将文件复制到Keil C51的安装目录下 我这里的Keil C51目录是在 D:Keil_v5C51BIN 这里需要修改 TOOLS 这个文件
[单片机]
单片机调试还可以这样玩?Keil与Proteus实现<font color='red'>51单片机</font>完美联调
51单片机流水灯左移 右移控制程序
电路很简单 8位流水灯接在单片机的P1口.如下是源代码: //============================================================= //程序名:LLL22_4.C //程序功能:流水灯控制左移 右移 //============================================================== #include reg51.h //头文件 L_M(); //流水灯左移控制程序 R_M(); //流水灯右移控制程序 //========================
[单片机]
基于51单片机设计N字节十六进制除法
1、思路 借用十进制除法竖式计算的思路,作十六进制的除法竖式计算。 将除数3字节与被除数高3字节对齐,除完后保存当前字节的商和余数,将被除数往低顺延一个字节,再执行新一轮的除法。被除数有6字节,除数有3字节,故除法需执行4轮。这是最外层的循环。 每一轮的除法可转换为多次减法,需要注意的是,对被除数来说减法需要一直执行到最高字节,以保证借位执行无误。这是中间层的循环。 每一轮的减法由单个字节的减法循环组成,减的过程中考虑借位。由于除数只有3个字节,执行完此3次减法后,除数再往上的字节内容为00H,减法就变成了XXH-CY-00H,即纯粹的借位。 为了判断中间层循环什么时候结束,需要额外写一个子程序来比较减数与被减数的
[单片机]
基于<font color='red'>51单片机</font>设计N字节十六进制除法
51单片机在设计中的的时钟及复位
单片机 的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内 电路 初始化,使单片机从一种确定的初态开始运行。 时钟电路: 8031单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚XTAL1和XTAL2外接晶体 振荡器 (简称 晶振 )或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益 反相 放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。 图中, 电容 器Col,C02起稳定振荡 频率 、快速起振的作用,其 电容 值一般在5-30pF。晶振频率的典型值为12MH2,采用6M Hz 的情况也比较多。内部振荡方式所得的时钟情号
[单片机]
<font color='red'>51单片机</font>在设计中的的时钟及复位
I2C总线的工作原理与在51单片机中的应用
I2C总线的工作原理与应用 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如 电源 和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了 电路 板的空间和芯片管脚的数量,降低了互联成本。总线的长
[单片机]
I2C总线的工作原理与在<font color='red'>51单片机</font>中的应用
51单片机】基础例程|C语言
LED点灯: 1. 通过sbit赋值 #include reg51.h sbit key1 = P2^0; sbit key2 = P2^1; sbit led1 = P1^0; sbit led2 = P1^1; void main(void){ while(1){ /* ifP2.0端口按下(按键接了一个GND,所以按下按键为低电平) 则led1赋低电平,给led2高电平 */ if(key1 == 0){ led1 = 0; led2 = 1; } /* ifP2.1端口按下,为低电平,则led2赋低电平,给led1高电平(∵LED是阳极接法) */ if(ke
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved