黄冈职业技术学院(论文)
C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别 由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision4 IDE可为它们提供单一而灵活的开发环境。 第二部分 uVision4集成开发环境 一.项目管理
工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。
一个单一的uVision4工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。
uVision4包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定 微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特 性。
uVision4可以为片外存储器产生必要的连接选项:确定起始地址和规模。 第三部分编辑器和调试器 一、源代码编辑器
uVision4编辑器包含了所有用户熟悉的特性。彩色语法显像和文件辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。 二、断点
uVision4允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。
在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的部分。 三、调试函数语言
uVision4中,你可以编写或使用类似C的数语言进行调试。 1.内部函数:如printf, memset, rand及其它功能的函数。 2.信号函数:模拟产生CPU的模拟信号和脉冲信号(simulate analog and digital inputs to CPU)。
16
黄冈职业技术学院(论文)
3.用户函数:扩展指令范围,合并重复动作。
3 系统硬件电路的设计
3.1 单片机最小系统
单片机最小系统如图3-1
图 3-1 单片机最小系统 对图3-1说明如下: (1) 单片机晶振电路
单片机外围的晶振电路是通过单片机的第18(XTAL1),19(XTAL2)引脚接
17
黄冈职业技术学院(论文)
入,XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。
对于STC11CF01一般的晶振频率可以在12MHz—35MHz之间选择,这时电容C可以对应的选择10pF—30pF。对于本设计的电容C用30pF,晶振选用35MHz。晶振电路解法图3-1,一条引脚接在XTAL1,另一条接在XTAL2。 (2) 单片机的复位电路
RST:复位输入。晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。为了防止程序执行过程中失步或运行紊乱,此处我们采用了上电复位及手动复位电路,
(3)EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。
(4)ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可以用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
3.2 单片机的接口电路
(1)ZLG7289芯片引脚介绍
1-2 VDD 正电源 3 5 NC 悬空 4 VSS 接地
6 CS 片选输入端此引脚为低电平时可向芯片发送指令及读取键盘数据 7 CLK 同步时钟输入端向芯片发送数据及读取键盘数据时此引脚电平上 升沿表示数据有效
8 DATA 串行数据输入/输出端当芯片接收指令时此引脚为输入端当读取 键盘数据时此引脚在读指令最后一个时钟的下降沿变为输出端
18
黄冈职业技术学院(论文)
9 KEY 按键有效输出端平时为高电平当检测到有效按键时此引脚变为低电平 10-16 SG-SA 段g—段a 驱动输出 17 DP 小数点驱动输出
18-25 DIG0-DIG7数字0 数字7 驱动输出 26 OSC2 振荡器输出端 27 OSC1 振荡器输入端 28 RESET
zlg7289A 的指令结构有三种类型1.不带数据的纯指令指令的宽度为8 个BIT 即微处理器需发送8 个CLK 脉冲2.带有数据的指令宽度为16 个BIT 即微处理器需发送16 个CLK 脉冲3.读取键盘数据指令宽度为16 个BIT 前8 个为微处理器发送到zlg7289A 的指令后8 个BIT 为zlg7289A 返回的键盘代码执行此指令时zlg7289A 的DATA 端在第9 个CLK 脉冲的上升沿变为输出状态并与第16 个脉冲的下降沿恢复为输入状态等待接收下一个指令 串行接口的时序如下图: 1.纯指令:
CST1T3T2CLKDATA
图3-2 纯指令时序图
2.带数据指令:
CST4CLKDATA8位指令(高位在前)8位指令(高位在前)
图3-2 带数据指令时序图
3.读键盘指令:
19
黄冈职业技术学院(论文)
CST5T7T8CLKT6DATA读键盘指令(8位,高位在前)输出键盘代码(8为,高位在前)
图3-3 读键盘指令时序图
T1=50?S,T2=T3,T5=25?S,T6=8?S,
(2)ZLG7289的接口电路图如图3-4所示。
zlg7289A应连接共阴式数码管应用中无需用到的数码管和键盘可以不连接省去数码管和对数码管设置消隐属性均不会影响键盘的使用如果不用键盘则典型电路中连接到键盘的8只10K电阻和8只100K下拉电阻均可以省去如果使用了键盘则电路中的8只10K电阻和8只100K 下拉电阻均不得省略除非不接数码管否则串入DP 及SA-SG 连线的8 只电阻均不能省去实际应用中8只下拉电阻和8只键盘连接位选线DIG0-DIG7的8只电阻位选电阻应遵从一定的比例关系下拉电阻应大于位选电阻的5倍而小于其50倍典型值为10倍下拉电阻的取值范围是10K-100K位选电阻的取值范围是1K-10K在不影响显示的前提下下拉电阻应尽可能的取较小的值这样可以提高键盘部分的抗干扰能力因为采用循环扫描的工作方式如果采用普通的数码管亮度有可能不够采用高亮或超高亮的型号可以解决这个问题数码管的尺寸也不宜选的过大一般字符高度不超过1 英寸如使用大型的数码管应使用适当的驱动电路zlg7289A 需要一外接晶体振荡电路供系统工作其典型值分别为F=16MHz C=15P如果芯片无法正常工作请首先检查此振荡电路在印刷电路板布线时所有元件尤其是振荡电路的元件应尽量靠近zlg7289A 并尽量使电路联线最短zlg7289A 的RESET 复位端在一般应用情况下可以直接和VCC 相连在需要较高可靠性的情况下可以连接一外部复位电路或直接由MCU 控制在上电或RESET 端由低电平变为高电平zlg7289A 大约要经过18-25MS 的时间才会进入正常工作状态上电后所有的显示均为空所有显示位的显示属性均为显示及不闪烁当有键按下时KEY 引脚输出低电平此时如果接收到读键盘指令。
zlg7289A 将输出所按下键的代码键盘代码的定义中代码以10进制表示如果在没有按键的情况下收到读键盘指令zlg7289A 将输出0FFH 255程序中尽可能地减少CPU 对zlg7289A 的访问次数可以使得程序更有效率因为芯片直接驱动LED 数码管显示电流较大且为动态扫描方式故如果该部分电路电源连线较细较长可能会引入较大的电源噪声干扰在电源的正负极并入一47U 到220U的电容可以提高电路抗干扰的能力注意如果有2 个键同时按下zlg7289A 将只能给出其中一个
20