基于KEIL 51的单片机开发系统设计

发布者:xrmilk最新更新时间:2012-03-09 来源: 微计算机信息 关键字:KEIL  单片机  开发系统 手机看文章 扫描二维码
随时随地手机看文章

1.引言

    近年来随着KEIL 51不断升级,高版本的KEIL 51编译器,尤其是Keil μVision2(基于Windows的C51集成编译环境)以其性能优越、使用方便,受到众多单片机爱好者的欢迎。KEIL 51以软件包的形式向用户提供包括C51交叉编译器、A51宏汇编、BL连接定位器等一系列工具和μVision2软件仿真器dScope51等开发平台。但是目前支持高版本KEIL 51编程的仿真器价格较高。为此提供了基于KEIL 51开发系统的设计方案。

2.硬件电路设计

    基于KEIL 51开发环境设计开发系统电路原理如图1所示。在图1中存放程序的32K字节外部的数据存储器62256的 (输出允许脚),是将CPU的信号相与后再与之连接,此时的外部数据存储器在 有效时,就相当于程序存储器,当然监控程序的存放地址空间不能与这种接法的外部数据存储空间相重复。这种接法的另一个作用是调试时可以在用户程序代码设置断点,监控程序修改用户程序代码在所有的断点处插入ACALL指令。



图1 基于KEIL 51环境的开发系统电路原理图

3.监控程序设计

    开发系统的监控程序可用KEIL 51提供的INSTALL.BAT批处理文件生成,此文件在KEILC51MON51路径下,需在DOS环境下执行,语法如下:

    INSTALL serialtype [xdatastart [codestart [BANK]PROMCHECK]]],[]为可选项。

    命令中的参数解释如下:

    serialtype:串行通信设置,现将有关MCS-51系列单片机的serialtype设置的含义列于表1中。
    表1 MCS-51系列单片机的serialtype设置的含义


    xdatastart:指定Monitor-51监控程序使用的外部存储单元的页号(一页为256字节),即所需要的硬件资源的第二页,取值为0~FF之间的十六进制数,缺省值为FF。例:xdatastart=FF,则X:0xFF00…X:FFFF(X表示外部数据存储单元)被Monitor-51监控程序存放内部变量,用户应用程序不能使用。

    codestart:指定监控程序代码在程序存储器起始页数,即开始位置,取值为0~F0之间的十六进制数,缺省值为0。

    BANK:可选项,为代码区分组的应用程序安排,应用程序不超过64K,一般不选此项。
    PROMCHECK:可选项,Monitor-51监控程序在CPU复位时检查在程序存储区0地址处是EPROM还是RAM。

    例:INSTALL 0 7F 0

    这条指令将设置波特率为9600bps,内部定时器1为波特率发生器,要求CPU时钟为11.0592MHz,Monitor-51内部变量空间为:X:0x7F00…X:0x7FFF,Monitor-51监控程序代码的起始地址为:C:0x0000(C表示程序存储单元)。该命令生成一个 MON51.HEX,将其固化在AT89S52内部即可使用。

    INSTALL.A51中修改项主要有两项:

    (1)断偏移量设置:当Monitor-51监控程序在ROM中起始地址为0时,用户将无法使用MCS-51的中断功能。为此Monitor-51将所有的中断入口地址转移至高地址的RAM区(大于监控程序的长度),这样用户程序就可以使用中断功能了。当Monitor-51监控程序代码的起始地址不是0 时,中断偏移量设置无意义。

    例:监控程序代码的起始地址为0,采用Von Neumann接法的外部数据存储器的起始地址为8000H,则中断偏移量必须设置成8000H,而用户用用程序将存放在8000H之后。INSTALL.A51中的INT_ADR_OFF定义如下:
    INT_ADR_OFF EQU 8000H

    (2)波特率修改:Monitor-51的波特率一般设置成9600bps或自适应。若要改变成其它波特率,如4800bps,则修改“InitSerial:”字中的定时器初始化值。

    INSTALL.A51中还有许多其它设置,一般不做修改。
    MON_BANK.A51是为代码区分组的应用程序安排的,此处不做讨论。

    4. 开发过程中的几个问题

    由于Monitor-51开发系统比较简单,占用了一些系统资源,有时给使用者带来了不便。实际编程中常要解决一下两个问题:

    (1)串行接口功能:串行通信是MCS-51单片机经常要用到的功能,而这里选用的MCS-51系列单片机AT89S52只有一个串行通信口,在与PC机相连接的仿真状态时,串行口用于与PC机通信。若在应用程序中也用到串行口,就会发生冲突。解决方法一是用户程序装载完毕后,运行用户程序,再断开仿真板与PC机的串行通信线,这样串口就可以归用户程序使用了,当然这时PC机就不能在线调试了;另外,还可以选用其它的带两个串行口的MCS-51系列芯片。

    (2)外部存储空间:用户程序越长,占用的外部数据存储空间将越大。解决的方法是对较长的程序进行分段调试。

参考文献

[1] 王建校、王建国.51系列单片机及C51程序设计[M].北京:科学出版社,2002.
[2] 徐维祥、刘旭敏.单片机微型计算机原理及应用[M].大连:大连理工大学出版社,2002.7.
[3] 马忠梅、籍顺心.单片机的C语言应用程序设计[M]. 北京:北京航天大学出版社,2003.11.

关键字:KEIL  单片机  开发系统 引用地址:基于KEIL 51的单片机开发系统设计

上一篇:AT89C2051单片机与MT8880接口设计
下一篇:一种单片机控制的指令转换器的设计

推荐阅读最新更新时间:2024-03-16 12:55

89C51单片机40s倒记时数码管动态显示
此程序已经通过测试,电路连接是:一个2位的共阴数码管,位选是P3.6,P3.7口,段选是P0口,还有如下3个按键 sbit buzz = P2^2; sbit clear = P2^0; sbit start = P2^1; 分别是喇叭,清除和开始 与gnd相连即可. #include reg51.h #include intrins.h const unsigned char LED7Code ={ 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x
[单片机]
基于51单片机声音噪声分贝检测采集显示设计
硬件设计 功能说明: 1.基于STC89C51/52(与AT89S51/52、AT89C51/52通用)单片机作为主控制器 2、采用LCD1602液晶显示屏实时显示分贝值; 3、使用小麦克风采集声音经过LM358放大信号后经过ADC0832进行采集,最终转换成分贝值。 4、可以通过按键进行设定分贝限值,设定的分贝限值存储于STC单片机内部eeprom,具有掉电存储的功能;(AT单片机没有掉电存储功能) 5、当实测分贝值低于设定值时绿色指示灯亮,当实测分贝值高于设定值时红色指示灯亮并蜂鸣器报警; 仿真图: 程序设计 部分代码如下: *******************************************
[单片机]
基于<font color='red'>51</font><font color='red'>单片机</font>声音噪声分贝检测采集显示设计
基于CPLD芯片和C8051F020实现声探测系统数字电路的设计
被动声源探测定位技术是一种利用声学传声器阵列和电子装置接收运动目标的辐射噪声,以确定目标所处位置的技术。 本文正是基于声探测技术原理和成熟的微电子技术, 采用TI公司的32位浮点DSP芯片TMS320VC33-150来实现声源目标的探测定位算法,并辅之以ADC、CPLD、单片机等器件来实现声源信号的采集、系统逻辑控制以及通信功能。对于数字电路的逻辑控制功能,本文选用了Altera公司的CPLD芯片EPM7128AETC100-10来实现。该芯片功耗低、资源丰富、内部延时固定,有助于时序逻辑电路的设计。本系统主要分为两部分:声探测系统数字电路的硬件实现和DSP软件设计。系统现已完成调试,运行稳定,探测效果较好。 系统功能 声
[单片机]
基于CPLD芯片和C80<font color='red'>51</font>F020实现声探测<font color='red'>系统</font>数字电路的设计
基于单片机应用AVR 18B20程序编写
#include//包含型号头文件#include//包含“位”操作头文件#include//标准输入输出头文件#include//包含自定义常量头文件#include“SMG.C”//包含数码管显示函数/***************************************** #include//包含型号头文件 #include//包含“位”操作头文件 #include//标准输入输出头文件 #include《AVR_PQ1A.h》//包含自定义常量头文件 #include“SMG.C”//包含数码管显示函数 /******************************************* 函数名称:B2
[单片机]
基于<font color='red'>单片机</font>应用AVR 18B20程序编写
基于STM32单片机对HCSR04超声波的控制
注意:定义GPIOB2为超声输出;GPIOB10为输入,定时器用tim2 #include “HCSR04.h” #include “delay.h” #include “sys.h” int overcount; float length=0; void HCSR04_init() { GPIO_InitTypeDef GPIO_InitStructure; TIM_TImeBaseInitTypeDef TIM_TImeBaseInitStructer; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , EN
[单片机]
基于STM32<font color='red'>单片机</font>对HCSR04超声波的控制
Nordic加强nRF51系列蓝牙智能/ANT多协议SoC器件
增强型nRF51-DK 的RAM容量翻倍至32kB,显着改进了应用性能;而其超紧凑封装可实现更小的可穿戴设计。 挪威奥斯陆–2014 年 10月29日– 超低功耗(ULP)射频(RF)专业厂商 Nordic Semiconductor ASA (OSE: NOD) 宣布改进其获奖的nRF51 系列系统级芯片(SoC),最新增强特性包括32kB RAM和128kB快闪晶圆级芯片规模封装(WLCSP)选项。这些改进适用于nRF51822 蓝牙智能 (Bluetooth® Smart) 和2.4GHz专有SoC,以及nRF51422 ANT 和ANT/蓝牙智能SoC器件。 Nordic Semiconductor 于20
[网络通信]
MCS-51单片机I/O端口的存取
MCS-51单片机通常有4个8位I/O端口, 向各端口的写数据均写入到对应端口的锁存器中, 但对各端口的读操作却有两个方式:读锁存器和读引脚 1 读-修改-写操作 Pn(指P0,P1,P2,P3)在51汇编语言中是特殊的标识符,既代表Pn端口引脚,又代表Pn锁存器(Pn SFR)。在MCS-51指令系统中有些指令读锁存器的值, 有些指令则读引脚上的值。读锁存器指令是从锁存器中读取一个值并进行处理, 把处理后的值(原值或已修改后的值)重新写入锁存器中。这类指令称为读-修改-写指令, 表1列举了有该功能的指令 当目的操作数是Pn端口或Pn端口的某一位时. 该指令读取锁存器的值. 这些指令的一个共同特点, 就是要先并行读
[单片机]
MCS-<font color='red'>51</font><font color='red'>单片机</font>I/O端口的存取
纯软件实现单片机远程通信
GMS972051是韩国LG公司生产的MW内部带2K E2PROM的与MCS-51兼容的单片机。GMS97C2051省去了MCS-51的P0和P3口,但是多了一个内部硬件比较器。由于单片机的通信信号为TTL电平,如果不采取其它的措施,其在通信速率为9600bps时通信距离不超过5米。一般为了延长单片机的通信距离,采用RS-232/RS-485转换器、 RS-232/RS-422转换器或光隔远程收发器。本文介绍的方法可将GMS97C2051单片机之间通信距离延长到1200米以上,而且不需要添加任何硬件措施,完全用软件来实现。 要用纯软件方法实现GMS97C2051单片机之间的远程通信,首先必须将单片机的TTL电平的软件
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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