7 开发环境和C

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机与PLC开发环境和C简介编者:胡学海开发环境开发系统主要包括:软件开发系统硬件开发系统软件开发系统系统主要包括:编译器:指能通过集成开发环境编译、连接,完成将用户程序转换为单片机可执行机器语言的程序。仿真器:在一定的开发环境下,将普通微机仿真成一个特定的单片机。编程器:编程器则是用来将已经编译好的单片机程序写入单片机的ROM中,使之形成一个独立运行的单片机系统。编译器集成开发环境(编译器)在这种开发环境下,设计者不仅可以对程序进行编写,还可以完成编译、连接和汇编工作,甚至可以完成软件的仿真调试。主要有MCS51和KEIL公司推出的集成开发环境KeilµVision。MCS51是一个专用汇编语言开发器,由于在中国进入市场时间较早,流行的范围较宽。KeilµVision集成程度高,应用方便。虽然这个开发环境主要是用来开发单片机C语言程序的,但也可以开发汇编语言程序,能够进行程序的仿真调试。简单介绍MCS51,具体使用在试验课介绍仿真器仿真器最关键的性能指标是可仿真的单片机种类。早期的仿真器都只能仿真特定系列中特定型号的单片机,如8031/32、8051、8751或是PIC的单片机等等,通用性不强,性能较低而且价格极为昂贵。有的单片机生产厂家甚至在单片机内部集成了简单在线调试功能。编程器:与仿真器类似,编程器是对特定的芯片进行编程。因此,一个编程器的性能也在很大程度上取决于其能编程芯片的种类、数量。此外,编程器的编程速度、稳定性等也是在选择编程器时需要考虑的因素。近几年来,许多单片机内部集成了在线可编程技术(ISP),通过串口便可以方便的对单片机进行编程。在线下载的电路图4-10中电路的基本原理:RST置高电平,然后向单片机串行发送编程命令。P1.7(SCK)输入移位脉冲,P1.6(MISO)串行输出,P1.5(MOSI)串行输入(要了解详细编程原理可以参考AT89S51的数据手册)。使用并口发出控制信号,74373只是用于信号转换,因为并口直接输出高电平的电压有点没到位,使用其他芯片也可以,还有人提出直接接电阻。并口引脚1控制P1.7,引脚14控制P1.5,引脚15读P1.6,引脚16控制RST,引脚17接74373LE(锁存允许),18-25这些引脚都可以接地。建议在你的单片机系统板上做个6芯的接口。注意:被烧写的单片机一定是最小系统(单片机已经接好电源、晶振,可以运行),VCC、GND是给74373提供电源的。软件可以使用一些共享软件,如聂忠强编写的EASY51,稳定性高,如图4-11所示。图4-11EASY51软件编程环境示意图该软件看上去简单但易于使用,有一点特别,当右击图中按钮后,可以把相关操作设置为自动模式(只有打开文件、擦除芯片、写FLASHROM、读FLASHROM和效验数据可以设置),单击“自动完成”后会依次完成这些操作,并在开始时检测芯片。当“打开文件”设为自动后,第2次烧写同一个文件时不必再去打开文件,软件会自动刷新缓冲。软件在WindowsXP、Windows2000可以使用(管理员登陆的),在Windows98、WindowsME使用并口模式时会更快些。这个软件同时支持串口编程器和并口下载线。操作正常结束后会有声音提示。如果没有声卡或声卡坏了,则声音会从机箱扬声器中发出。注意:记得在CMOS设置中把并口设为ECP模式。硬件调试环境主要包括:信号源:信号发生器,用来仿真单片机应用系统监控的被测信号示波器:实时监视和真实显示被测信号,可以监控单片机应用系统工作是否正常。万用表:用来测量电阻、电压、电流等基本电参数。在这里介绍一种直接使用计算机声卡的综合硬件调试系统图4-12综合硬件调试系统界面图五种工作方式如下:lX:单踪示波器;lX1,X2:双踪示波器;lX1+X2:两路信号相加;X-Y:两路信号分别做X轴,Y轴输入。这一种方式类似通用示波器中用李萨如图形测频率的方式;频域:显示信号的频谱分布。它的使用非常简单,首先要制作测试电缆,简单的方法是用两个3.5的立体声插头,并将两段三芯屏蔽线接上,另一端可接上鱼夹,如果要求不高可直接使用耳机线。但这样一定要注意输入信号的幅度,否则容易烧坏声卡。启动程序后,示波器已处于工作状态,有五种工作方式可供选择。l图4-13示波器工作状态选择界面图增益的调节如图4-14所示。PAUSE可将示波器屏幕暂停,以便观察,再次按下结束暂停。暂停时仍能调整各项参数。可将示波器屏幕存为位图文件,需先将屏幕暂停,调整好后再保存。图4-14中的两个滑尺用于调节左右声道增益(-12dB),上下两排按钮调节范围是-30dB,总增益为二者相加(-44dB)。图4-14增益调节界面图l图4-15文件保存界面图按下RECORD可将输入信号保存为WAV文件,再次按下停止记录,如图4-15所示。需要按下电源按钮来启动频率计,如图4-16所示图4-16频率计使用界面图频率是对输入信号进行FFT得到的,每秒可以更新约10次,显示误差约有10hz,如果想得到准确的频率值,可利用信号发生器的输出信号和示波器利用李萨如图形法测得。如果将FFT取样数提高,误差可以小于1hz,但会加大运算量,在实际中似乎没有必要,如图4-17所示。信号发生器(如图4-18所示):需要按下电源按钮来启动信号发生器。这是一个频率很准确的双路正弦波发生器,由于采样的特性所限,高频部分有所失真,但在50Hz-15KHz时波形都相当好,输出幅度可通过调节增益按钮实现,可以拉动滑尺调节频率,按下左边的按钮可精确设置输出频率。万用表(如图4-19所示)是一个有趣的附件,需要按下电源按钮来启动它。它可以测电阻、电容、电感和交流电压的有效值。测电阻、电容、电感时需要同时打开信号发生器,选择合适的输出信号频率。按照原理图把待测元件和标准元件接入电路。按下输入基准,把基准值输入,选择测量方式,LED屏上即可显出待测值,如图4-20所示。图4-19万用表界面图图4-20LED显示结果图声卡的正确设置是该软件正常工作的前提,设置时大致按以下步骤进行:(1)打开声音高级控制。(2)选择录音属性,打开录音音量控制面板,将输入方式选择“LINE”。(3)关闭不必要的声音特效,如混响环绕等,以避免左右声道互相干扰。(4)如果无信号时背景噪声较大,可尝试将一些选项静音,特别是CD音频。(5)调整输出和输入的平衡,可借助示波器部分和信号发生器部分实现。如果使用其他声卡,可参照以上步骤设置。51单片机C语言程序设计51的C语言与ANSIC语言兼容,但是具有单片机的一些特殊表达方法。C51的编程高手是先学习汇编语言的人。他能根据单片机结构特点编写出最简短有效的程序。当前常见的C51编译器是:KeilCKeilC可以从许多网站下载KeilC支持多种单片机仿真,对一些单片机的仿真功能需要购买。KeilC还支持一种在SST89C58单片机中固化了仿真软件的自制仿真器,只需安装一个RS232C驱动电路就可以进行硬件仿真C51变量定义特点位变量:SBIT变量名=可位寻址字节^位号,可位寻址字节可为SFR中寄存器的位,也可以是用BDATA定义过的片内RAM中可位寻址的变量。存储类型:data直接寻址片内数据区(00-7fH)长度8位bdata可位寻址片内数据区(20-2fH)长度8位idata间接寻址片内数据区(00-ffH)特别52系列的80~FFH区间,汇编中必须使用@r0,@r1寻址。pdata分页片外数据区类似movxa,@r0xdata片外数据区类似movxa,@dptrcode代码存储区8位变量:用CHAR定义,它实际已经可以不代表字符。前面冠以Unsigned定义0~FFH的8位变量,signed定义-128~+127之间的变量。C51的头文件简介用#include函数.h语句REG51.h:专用寄存器include文件。例如8031/8051均为REG51.h其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。Keilc在你选择芯片型号时能自动选择对应文件。absacc.h:绝对地址include文件。该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。stdlib.h:动态内存分配函数。string.h:缓冲区处理函数。其中包括拷贝比较移动等函数如:memccpymemchrmemcmpmemcpymemmovememset这样很方便地对缓冲区进行处理。stdio.h:输入输出流函数。流函数通8051的串口或用户定义的I/O口读写数据,缺省为8051串口,如要修改,比如改为LCD显示,可修改lib目录中的getkey.c及putchar.c源文件,然后在库中替换它们即可。intrins.h:本征库函数(参看下页)。intrins.h:本征库函数C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回_nop_:相当于插入NOP_testbit_:相当于JBCbitvar测试该位变量并跳转同时清除。_chkfloat_:测试并返回源点数状态。KEIL环境下编程作为单片机的开发,首先是要在开发环境中选择合适的目标——CPU,keil支持很多种51核的单片机。在keil中选择单片机型号,如图4-0、图4-1所示。图4-0单片机型号的选择示意图1(1)图4-0是keil的主界面,在图4-0执行“Project”/“NewProject”命令,即出现图4-1的画面,然后选择所用的单片机即可。S52和C52的内部结构完全一致,只是前者多了ISP功能,所以选择AT89C52作开发可以完全烧写到S52单片机中。图4-1单片机型号的选择示意图2(2)选择好单片机后,建立一个新文件,并保存为后缀为“.c”的文件。(3)然后在新建的文件中添加头文件,AT89X52.H。(4)接下来向工程中添加文件,如下图4-2、图4-3所示。图4-2文件添加示意图1图4-3文件添加示意图2(5)然后再依次加入相应的文件,头文件等就构成了一个开发工程。当所有编程工作完成后选择工具栏的编译按钮即可对工程进行编译,如图4-4所示。图4-4程序编译调用示意图结果如图4-5所示。图4-5程序编译结果示意图从上面可以看出程序的大小等信息,如代码长度为4006个字节,即占用ROM4k左右的空间。如没有错误即可进行仿真调试。使用工具栏上“debug”中的“红色的d”按钮进入,如图3-6所示。图4-6仿真调试按钮位置图进入调试的画面如图4-7所示。通过选择外设菜单(peripherals)下面的子菜单,可以打开I/0端口窗口、中断串口和串口窗口等。调试通过后,即可生成hex代码,但需要进行设置才能生成,方法是在“project”窗口执行“Target”/“optionfortarget”命令,如图4-8所示。l图4-8hex代码生成设置图再随后出现的窗口中选择“createhexfile”,如图4-9所示。l图4-9hex文件创建图完成后单击“确定”按钮,再重新编译项目,即可在相应的工程文件目录中生成hex文件,利用此文件通过ISP口就可以将写好的程序写入单片机中。前面所述的调试是软件调试,keil也支持硬件调试,但需要相应的硬件仿真器,具体操作可参考相应生产厂商的手册。KEILC应用要点1.打开KeilμVision2编译器(双击桌面图标)。2.点击菜单栏中的“Project(工程)”,然后选择“NewProject”,在弹出的对话框的文件名中输入你想保存的工程名。然后点击“保存”。3.在“Project”下拉菜单中选择“SelectDeviceforTarget‘Target1’”,选择我们要用到的单片机,这里我们选择“Intel”中的“805

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功