初学单片机:Proteus介绍、Proteus与Keil联调(Windows10环境下)
Proteus是一个仿真软件,可以在里面设计电路并模拟测试,也可生成PCB的布线等等,反正就是强大的不行。初学单片机,除了开发板,这个仿真器就是一个很好的调式环境。软件安装信息:
- Proteus 8.7
- Keil uvision4
- Window 10
很多人说window10安装不成功,其他还好,刚开始装Proteus 8.7,出现了一个缺少hhctrl.ocx的组件,下载后注册,就好了。其他安装不再说明,没有什么大问题。目前Keil和Proteus联调成功:

代码如下所示:
/*------------------------------------------------------------------------------
HELLO.C Copyright 1995-2005 Keil Software, Inc.
------------------------------------------------------------------------------*/ #include <REG52.H> /* special function register declarations */
/* for the intended 8051 derivative */ #include <stdio.h> /* prototype declarations for I/O functions */ #ifdef MONITOR51 /* Debugging with Monitor-51 needs */
char code reserve [] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
/* is enabled */ /*------------------------------------------------
The main C function. Program execution starts
here after stack initialization.
------------------------------------------------*/
void main (void) { /*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
#ifndef MONITOR51
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = ; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = ; /* TR1: timer 1 run */
TI = ; /* TI: set TI to send first char of UART */
#endif /*------------------------------------------------
Note that an embedded program never exits (because
there is no operating system to return to). It
must loop and execute forever.
------------------------------------------------*/
while () {
P1 ^= 0x01; /* Toggle P1.0 each time we print */
printf ("Hello World\n"); /* Print "Hello World" */
}
}
这段代码为安装Keil之后,打开默认显示的代码,我没有修改,就直接用了,它是修改P1口的状态。
先看看Proteus的界面:

新建工程就不说了,建好之后,就是找元件了,如图:

图中标记了几处,元件库,端点POWER和GROUND,探针,其中元件初始化为空,需要自己添加,点P,打开搜索框添加。几个常用的元件名称如下(搜索时用英文名称搜索,右侧可看见符号):
- 电池组BATTERY
- 按键BUTTON
- 电容CAP
- 晶振CEYSTAL
- 发光二极管LED
- 黄色发光二极管LED-YELLOW(其他颜色类似)
- 电阻RES
- 开关SWITCH
- 单片机80C51
(元件)
(端点,连线的终端)
(探针,电流、电压)
在使用POWER的时候,需要设置全局的电压值,如图:
(打开菜单)
(新增GND和VCC,并设置电压值,在POWER属性上可以选择)
关于探针,在探针使用时不要与线路交叉重叠就行,动态显示探针的值,需要设置:System-》Set Animation Options,右侧Animation Options下面的复选框,全部勾上就行,保存。
关于Keil4与Proteus8联调,配置如下:
1.Proteus中,菜单栏Debug-》Enable Remote Debug Monitor,即允许远程调式;
2.Keil中,打开Target Options
,即选择模拟器;
3.打开DEBUG页签,如图:

4.在Use下拉框中选择Proteus VSM Simulator模拟器,新安装的如果没有的话,需要给keil安装Proteus的调试插件:vdmagdi.exe,安装时选择Keil的安装路径,会自动修改配置文件:
D:\Keil\TOOLS.INI
[UV2]
ORGANIZATION="**"
NAME="**", "**"
EMAIL="**"
BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)
[C51]
PATH="D:\Keil\C51\"
VERSION=V9.00
BOOK0=HLP\Release_Notes.htm("Release Notes",GEN)
BOOK1=HLP\C51TOOLS.chm("Complete User's Guide Selection",C)
TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver")
TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger")
TDRV2=BIN\MON390.DLL ("MON390: Dallas Contiguous Mode")
TDRV3=BIN\LPC2EMP.DLL ("LPC900 EPM Emulator/Programmer")
TDRV4=BIN\UL2UPSD.DLL ("ST-uPSD ULINK Driver")
TDRV5=BIN\UL2XC800.DLL ("Infineon XC800 ULINK Driver")
TDRV6=BIN\MONADI.DLL ("ADI Monitor Driver")
TDRV7=BIN\DAS2XC800.DLL ("Infineon DAS Client for XC800")
TDRV8=BIN\UL2LPC9.DLL ("NXP LPC95x ULINK Driver")
RTOS0=Dummy.DLL("Dummy")
RTOS1=RTXTINY.DLL ("RTX-51 Tiny")
RTOS2=RTX51.DLL ("RTX-51 Full")
LIC0=14R8T-R0VMF-C5DT5-GNLT9-76GJH-QEQ8V
TDRV9=BIN\VDM51.DLL ("Proteus VSM Simulator")
BOOK2=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[ARM]
TDRV0=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
[KARM]
TDRV0=BIN\VDMARM.DLL ("Proteus VSM Simulator")
BOOK0=HLP\VDMAGDI.HLP ("Proteus VSM AGDI Driver")
如果这个配置文件中有Proteus VSM Simulator,说明可用;
5.选择好模拟器,就可以运行程序,会自动运行Proteus的电路,可以点亮LED灯,如出现一下,请检查步骤1:

如出现一下情况,则表明没有选对模拟器,如图:

以上就是我的总结,最后,放一张设计的80C51的电路图结束。

转载请注明出处

初学单片机:Proteus介绍、Proteus与Keil联调(Windows10环境下)的更多相关文章
- 搭建Keil C51开发环境
安装Keil 首先需要获取Keil的安装程序,然后双击开始安装.安装过程非常简单,基本都是一路next.具体步骤如下图: 注册 如果不注册,会有许多功能限制,例如限制生成的代码的大小.为了学习和和教学 ...
- .Net环境下的缓存技术介绍 (转)
.Net环境下的缓存技术介绍 (转) 摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1 概念 ...
- .Net环境下的缓存技术介绍
.Net环境下的缓存技术介绍 摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1 概念 1.1 ...
- 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍
浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...
- day02编程语言,Python语言介绍,Python解释器安装,环境变量,Python代码执行,pip,应用程序使用文件的三步骤,变量,变量的三大组成,比较,pycharm
复习 重点: 1.进制转换:二进制 与十六进制 2.内存分布:栈区 与堆区 # 二进制1111转换十六进制 => 8 4 2 1 => f 10101100111011 => 2a7 ...
- FFmpeg开发笔记(三):ffmpeg介绍、windows编译以及开发环境搭建
前言 本篇章是对之前windows环境的补充,之前windows的是无需进行编译的,此篇使用源码进行编译,版本就使用3.4.8. FFmpeg简介 FFmpeg是领先的多媒体框架,能够解码 ...
- 【C51】单片机定时器介绍
标准51架构的单片机有2个定时器 :T0 和 T1,他们2个的用法几乎一样.下面主要讲T0定时器的用法. 初步认知 定时器 和 计数器 都是单片机中同一个模块.他们的实质都是: 加法存储计数器.对 ...
- 2-物联网开发标配方案(51单片机程序介绍+WIFI程序介绍)
上一节 https://www.cnblogs.com/yangfengwu/p/9944438.html 购买云服务器安装MQTT就不用说了,以前写过文章介绍 https://www.cnblog ...
- laravel 初学路由简单介绍
文档中的路由详细演示[初学laravel]对应laravel 的框架目录:routes/web.php 路由的格式一:Route::get($uri,$callback); 1.简单的浏览器输出 Ro ...
随机推荐
- Nginx优化_访问并发量(进程可以打开的最大文件数量)
如果客户端访问服务器提示“Too many open files”如何解决? [root@proxy ~]# ab -n 2000 -c 2000 http://192.168.1.100/ # ...
- Java并发编程实战 第8章 线程池的使用
合理的控制线程池的大小: 下面内容来自网络.不过跟作者说的一致.不想自己敲了.留个记录. 要想合理的配置线程池的大小,首先得分析任务的特性,可以从以下几个角度分析: 任务的性质:CPU密集型任务.IO ...
- 八、asynicio模块以及爬虫应用asynicio模块(高性能爬虫)
asynicio模块以及爬虫应用asynicio模块(高性能爬虫) 一.背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行, ...
- 《Head First 软件开发》阅读五
结束开发循环:娟娟细流归大海 几乎完成了任务,而开发循环结束所要面对的问题是用户测试的安排.新的一轮重构和重新设计. 开发循环已经完成,但是还是有很多事情可以去做.系统测试必不可少,但是是由谁来做系统 ...
- easygui _1
GUI---图形用户界面 什么是GUI? GUI是Graphical User Interface(图形用户界面)的缩写.在GUI中,并不是键入文本和返回值,用户可以看到文本框,窗口,按钮等图形 ...
- 【leetcode】689. Maximum Sum of 3 Non-Overlapping Subarrays
题目如下: In a given array nums of positive integers, find three non-overlapping subarrays with maximum ...
- 对DOMContentLoaded的研究 -----------------------引用
1. 什么是 DOMContentLoaded.打开 Chrome DevTools,切到 Network 面板,重新加载网页,得到如下截图: 标记 1 指向的蓝线以及标记 2 指向的蓝色字 “ ...
- Cassandra 安装部署
Linux 系统安装Cassandra 一.Cassandra需要安装jdk支持,首先安装jdk 自行百度查找安装 二.下载Cassandra 官网地址: https://cassandra.apac ...
- springboot(十)使用LogBack作为日志组件
简介: 企业级项目在搭建的时候,最不可或缺的一部分就是日志,日志可以用来调试程序,打印运行日志以及错误信息方便于我们后期对系统的维护,在SpringBoot兴起之前记录日志最出色的莫过于log4j了, ...
- CF452E Three strings 广义后缀自动机
建一个广义后缀自动机统计一下就行,好长时间不敲后缀自动机调了半天~ #include <bits/stdc++.h> using namespace std; namespace IO { ...