手机版
您的当前位置: 钻爱网 > 方案 > 典礼 > Keil和Proteus联调在单片机教学中的应用实例 单片机调压

Keil和Proteus联调在单片机教学中的应用实例 单片机调压

来源:典礼 时间:2019-10-12 07:56:19 点击:

Keil和Proteus联调在单片机教学中的应用实例

Keil和Proteus联调在单片机教学中的应用实例 摘 要 在单片机学习过程中,初学者经常会遇到各种问 题,结合实例介绍用Keil和Proteus进行联调来解决问题的 过程。

中图分类号:G712 文献标识码:B 文章编号:1671-489X(2015)20-0047-02 An Application Example of Combining Keil with Proteus in Tea- ching of Single Chip Microcomputer//WU Fang, JIANG Rugen, ZHU Xuan Abstract In the learning process of single chip microcomputer, beginners often encounter all sorts of problems, the paper introduces an examples combining Keil with Proteus to solve the problems. Key words Keil;

Proteus;

single chip microcomputer study1 前言 单片机是一种功能强大的芯片,在日常生活中,随处可 见由单片机作为核心器件的电子产品。因此,学习单片机也 成为一项技能。如何学好单片机?有两款软件是单片机学习 者的“必备武器”:Keil和Proteus。

Keil是美国Keil Software公司出品的51系列兼容单片 机C语言软件开发系统,它的源文件既可以是C语言,也可以 是汇编语言,但与汇编相比,C语言在功能、结构性、可读 性、可维护性等方面有明显的优势,更适合初学者和高职类 院校使用。

Proteus软件是英国Lab Center Electronics公司出版 的EDA工具软件,它不仅具有其他EDA工具软件的仿真功能, 还满足从原理图布图、代码调试到单片机与外围电路的协同 仿真。Proteus简单易学,对单片机初学者来说是一款极好 的仿真软件,也适用于高校的单片机教学。

2 Keil和Proteus联调实例 如何将两者的功能发挥到极致呢?本文以在教学中遇到的一个实例来介绍Keil和Proteus联调给单片机学习带来 的便捷。

实验内容 利用AT89C51单片机和DAC0832完成一个正弦 波发生器,通过虚拟示波器来检测产生的正弦波信号。一初 学者的部分实例源程序:
#include “reg51.h” void delay();

unsigned char code tab[128]= {64,67,70,73,76,79,82,85,88,91,94,96, 99,102,104,106, 109,111,113,115,117,118,120,121,123,124, 125,126,126, 127,127,127,127,127,127,127,126,126,125, 124,123,121, 120,118,117,115,113,111,109,106,104,102,99,96,94,91, 88,85,82,79,76,73,70,67,64,60,57,54, 51,48,45,42,39, 36,33,31,28,25,23,21,18,16,14,12,10, 9,7,6,4,3,2,1, 1,0,0,0,0,0,0,0,1,1,2,3,4,6,7,9, 10,12,14,16,18,21,23, 25,28,31,33,36,39,42,45,48,51,54,57, 60};
[1] void main() { char i;

P1 = 0xff;

while(1){ for(i=0;
i<128;
i++) { P1 = tab[i];

delay();

} } } 仿真结果 希望得到一个连续的正弦波形如图1(a)所 示,而仿真运行后虚拟示波器显示如图1(b)所示。

处理方法:Keil和Proteus联调 对于C语言基础不太好 的初学者来说,很难找出问题的根源所在,这时候就可以通 过Keil和Proteus的联调来解决。两种软件的安装方法和两软件动态链接库的关联在这里就不再赘述,具体的处理方法 如下。

1)设置:在Keil工程中点击“Project”,打开“Options for target‘Target 1’”对话框,选中“Debug”,设置 如图2所示。

点击后面的settings,本机联调:host为172.0.0.1, port为8000。

Proteus的设置:运行Proteus的ISIS,点击菜单“DEBUG”, 使“use remote debugger monitor”选中。

2)Keil和Proteus联调。如图3所示,点击Keil中的调 试按钮1;
分别按2~5设置,打开观察窗口和端口,设置好 要监测的变量;
根据需要点击按钮6中的调试图标。开始 Proteus和Keil的联调。

观察watch中的i值,发现i变化到127后,再加1并没有 变化为128,而是变化到了-128!找到问题症结!将i的类型 修改变unsigned char之后,仿真结果正确,如图1(a)所 示。问题解析 在C中,默认的基础数据类型均为signed[2]。

在内存中,char与unsigned char存储空间相同,为一 个字节;
两者的区别是:char的最高位为符号位,表示范围 为-128~127;
unsigned char无符号位,表示范围为0~ 255[3]。在实际使用过程中,在普通的赋值、读写文件和网 络字节流没有区别,但显示会出现不一样的情况。在表示字 节时,建议使用unsigned char类型。

3 结语 在单片机学习过程中,往往会出现程序运行的结果与期 望的不同,而一时又找不到问题症结所在,在出现问题的关 键时刻,运用Proteus和Keil的联调可以轻松找到答案。本 文实例不仅让初学者了解了程序的运行过程,也用一种更直 观的方式向初学者展示了不同数据类型的取值范围和对程 序的影响,加深了初学者对数据类型的认识,提高了对单片 机的学习兴趣。这种方式的学习比单纯的理论讲解更有效, 相信初学者在今后不会再犯同样的错误。

参考文献[1]陈贵银.单片机原理及接口技术[M].北京:电子工业 出版社,2011:234. [2]刘建清.从零开始学单片机C语言[M].北京:国防工 业出版社,2006:79.

推荐内容

钻爱网 www.zuanai.cn

Copyright © 2002-2018 . 钻爱网 版权所有 湘ICP备12008529号-1

Top