Keil C51软件是Keil Software公司推出的uVision3,是一款可用于多种8051 MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。其提供逻辑分析器,可监控基于MCU I/O引脚和外设状态变化下的程序变量。编辑的C或汇编文件,分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的HEX文件,以供调试器使用进行源代码调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
注意晶振的频率,默认的是11.0592MHz,可以根据需要修改。调试时注意PC机与仿真器之间始终保持通信联络,导致独立Keil仿真器上一个指示数据接收的LED不断闪亮。
使用Keil C51时,打开界面,并非即刻能够编辑程序的窗口,需要新建文件和设置,其步骤如下:
打开Keil的操作界面,在“Project”中选择“New uVision Project…”新建一个文件,并命名(注意此时命名时不需要加后缀),如“温湿度”即可,确定后会弹出选择单片机的窗口。在相应的产品里选择所需要的单片机型号,本设计所用的单片机是Atmel AT89S52,则在相应的栏目里选中。然后接下来的窗口选择“是”,然后新建,在页面里面编辑程序,命名,要注意的是这次命名需要加后缀,如“温湿度.c”。
在主窗口侧边栏找到“Target 1”,右击其子标题栏“Source Group 1”选择“Add Files to Group ?Source Group 1?”。选择保存的“温湿度.c”文件添加,并在下拉单点击打开,此时,编译开始,指示灯亮。顺序编译,若出现错误,编译窗口下会出现错误提示,双击错误提示,则插入符号将出现在有错的地方,根据提示对程序进行修改,保存,再编译至无错,否则无法生成“HEX”格式。
在主菜单栏里选择“Project”按出下拉单,选择“Options for Target ?Target 1?”,在该窗口下,将晶振的频率(Xtel (MHz))设置为12MHz,然后选择“Output”在“Create HEX File”前面打钩,OK。在继续编译后出现“create hex file from…”,编译完成,此时文件就可以被单片机识别应用,导入即可。
图3.3 Keil C51软件新建工程界面
4 PROTEL99软件简介
4.1 Protel 99 SE的发展历史
Protel是Protel Technology公司在20世纪80年代末推出的EDA软件,在电子行业中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件。
20世纪90年代中期,Protel推出基于Windows 95的3.X版本,采用了新颖的主从式结构,但在自动布线方面却没有出众的表现,而且是16位与32位的混合型软件,运行不太稳定。
1998年,Protel公司推出了新版本的Protel 98,极大地增强了自动布线能力,从而获得了业内人士的一致好评。1999年,Protel公司又推出了更新一代的电子线路设计系统——Protel 99。
Protel 99 SE是Protel 99的增强版本,在文件组织方面既可以采用传统的Windows文件格式也可以采用Access数据库文件格式,同时具有更强大的功能和良好的操作性,给设计者的工作带来了更大的便利。 4.2 Protel 99 SE的主要特点
Protel 99 SE是一个Client/Server型的应用程序,它提供了一个基本的框架窗口和相应的Protel 99 SE组件之间的用户接口,在运行主程序时各服务器程序可在需要的时间调用,从而加快了主程序的启动速度,而且极大地提高了软件本身的可扩展性。Protel 99 SE中的这些服务程序基本上可以分为5大组件,即原理图设计组件、PCB设计组件、布线组件、可编程逻辑器件组件和仿真
组件。其中原理图设计组件和PCB设计组件是一般设计工作中的重点,而其他组件可以说是为这两个组件服务的。
图2-1 Protel99SE打开界面
4.2.1 原理图设计组件
包括电路图编辑器、电路图元件库编辑器和各种文本编辑器。为用户提供了智能化的高速原理图编辑方法,能够准确地生成原理图设计输出,具有自动化的连线工具,同时具有强大的电气规则检测(ERC)功能。其主要特点归纳如下。
1.模块化的原理图设计
2.具有强大的原理图编辑功能 3.功能强大的电气检测
4.完善的库元件编辑和管理功能 5.同步设计功能 4.2.2 PCB设计组件
进行电路设计最终是要设计出一个高质量的可加工的PCB,这是一个电子产品的基础。因而PCB设计系统的功能往往是用户在选用EDA软件时最关心的,而Protel 99 SE在这方面做出了突出的表现。
1.具有32位高精度设计系统 2.丰富而灵活的编辑功能
3.功能完善的元件封装编辑和管理器 4.强大的布线功能
5.完备的设计规则检查(DRC)功能
4 系统设计
4.1 硬件设计部分
采用LED动态扫描的交通灯控制系统电路原理图见附录。系统由控制模块、通行灯显示模块、时间显示模块、电源模块四部分组成。 4.2芯片介绍
4.1.1单片机——STC89C51
STC89C52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许ROM在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式控制应用系统提供灵活的解决方案。
1 主要特性
(1) 与MCS-51单片机产品兼容;
(2) 8K字节在系统可编程Flash ROM存储器; (3)256字节RAM; (4) 1000次擦写周期;
(5) 全静态操作:0Hz~33Hz; (6) 三级加密程序存储器; (7) 32个可编程I/O口线; (8) 三个16位定时器/计数器; (9) 八个中断源;
(10) 全双工UART串行通道; (11) 低功耗空闲和掉电模式; (12) 掉电后中断可唤醒;
(13) 看门狗定时器T0、T1、T2; (14) 双数据指针; (15) 掉电标识符。
如图4.1所示STC89C52芯片的引脚图
图4.1 STC89C52引脚
VCC:电源 GND:地
P0口:8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如表3-1所示。在Flash编程和校验时,P1口接收低8位地址字节。
P2口:具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动四个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在方位外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动四个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。
P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。