7 开发环境和C

上传人:油条 文档编号:27041813 上传时间:2018-01-05 格式:PPT 页数:37 大小:451KB
返回 下载 相关 举报
7 开发环境和C_第1页
第1页 / 共37页
7 开发环境和C_第2页
第2页 / 共37页
7 开发环境和C_第3页
第3页 / 共37页
7 开发环境和C_第4页
第4页 / 共37页
7 开发环境和C_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《7 开发环境和C》由会员分享,可在线阅读,更多相关《7 开发环境和C(37页珍藏版)》请在金锄头文库上搜索。

1、单片机与PLC,开发环境和C简介编者:胡学海,开发环境,开发系统主要包括:软件开发系统硬件开发系统,软件开发系统,系统主要包括:编译器:指能通过集成开发环境编译、连接,完成将用户程序转换为单片机可执行机器语言的程序 。仿真器:在一定的开发环境下,将普通微机仿真成一个特定的单片机。 编程器 :编程器则是用来将已经编译好的单片机程序写入单片机的ROM中,使之形成一个独立运行的单片机系统。,编译器,集成开发环境(编译器)在这种开发环境下,设计者不仅可以对程序进行编写,还可以完成编译、连接和汇编工作,甚至可以完成软件的仿真调试。主要有MCS51和KEIL公司推出的集成开发环境Keil Vision。M

2、CS51是一个专用汇编语言开发器,由于在中国进入市场时间较早,流行的范围较宽。Keil Vision集成程度高,应用方便。虽然这个开发环境主要是用来开发单片机C语言程序的,但也可以开发汇编语言程序,能够进行程序的仿真调试。,简单介绍MCS51,具体使用在试验课介绍,仿真器,仿真器最关键的性能指标是可仿真的单片机种类。早期的仿真器都只能仿真特定系列中特定型号的单片机,如8031/32、8051、8751或是PIC的单片机等等,通用性不强,性能较低而且价格极为昂贵。有的单片机生产厂家甚至在单片机内部集成了简单在线调试功能。,编程器 :,与仿真器类似,编程器是对特定的芯片进行编程。因此,一个编程器的

3、性能也在很大程度上取决于其能编程芯片的种类、数量。此外,编程器的编程速度、稳定性等也是在选择编程器时需要考虑的因素。近几年来,许多单片机内部集成了在线可编程技术(ISP),通过串口便可以方便的对单片机进行编程。,在线下载的电路图4-10中电路的基本原理:RST置高电平,然后向单片机串行发送编程命令。P1.7(SCK)输入移位脉冲,P1.6(MISO)串行输出,P1.5(MOSI)串行输入(要了解详细编程原理可以参考AT89S51的数据手册)。使用并口发出控制信号,74373只是用于信号转换,因为并口直接输出高电平的电压有点没到位,使用其他芯片也可以,还有人提出直接接电阻。并口引脚1控制P1.7

4、,引脚14控制P1.5,引脚15读P1.6,引脚16控制RST,引脚17接74373 LE(锁存允许),18-25这些引脚都可以接地。建议在你的单片机系统板上做个6芯的接口。注意:被烧写的单片机一定是最小系统(单片机已经接好电源、晶振,可以运行),VCC、GND是给74373提供电源的。,软件可以使用一些共享软件,如聂忠强编写的EASY 51,稳定性高,如图4-11所示。,图4-11 EASY 51软件编程环境示意图,该软件看上去简单但易于使用,有一点特别,当右击图中按钮后,可以把相关操作设置为自动模式(只有打开文件、擦除芯片、写FLASH ROM、读FLASH ROM和效验数据可以设置),单

5、击“自动完成”后会依次完成这些操作,并在开始时检测芯片。当“打开文件”设为自动后,第2次烧写同一个文件时不必再去打开文件,软件会自动刷新缓冲。软件在Windows XP、Windows 2000可以使用(管理员登陆的),在Windows 98、Windows ME使用并口模式时会更快些。这个软件同时支持串口编程器和并口下载线。操作正常结束后会有声音提示。如果没有声卡或声卡坏了,则声音会从机箱扬声器中发出。,注意:记得在CMOS设置中把并口设为ECP模式。,硬件调试环境主要包括:信号源:信号发生器,用来仿真单片机应用系统监控的被测信号示波器:实时监视和真实显示被测信号,可以监控单片机应用系统工作

6、是否正常。万用表 :用来测量电阻、电压、电流等基本电参数。在这里介绍一种直接使用计算机声卡的综合硬件调试系统,图4-12综合硬件调试系统界面图,五种工作方式如下:l X:单踪示波器;l X1 ,X2:双踪示波器;l X1X2:两路信号相加;X-Y:两路信号分别做X轴,Y轴输入。这一种方式类似通用示波器中用李萨如图形测频率的方式; 频域:显示信号的频谱分布。,它的使用非常简单,首先要制作测试电缆,简单的方法是用两个3.5的立体声插头,并将两段三芯屏蔽线接上,另一端可接上鱼夹,如果要求不高可直接使用耳机线。但这样一定要注意输入信号的幅度,否则容易烧坏声卡。启动程序后,示波器已处于工作状态,有五种工

7、作方式可供选择。,图4-13 示波器工作状态选择界面图,增益的调节如图4-14所示。,PAUSE可将示波器屏幕暂停,以便观察,再次按下结束暂停。暂停时仍能调整各项参数。可将示波器屏幕存为位图文件,需先将屏幕暂停,调整好后再保存。,图4-14中的两个滑尺用于调节左右声道增益(-12dB),上下两排按钮调节范围是-30dB,总增益为二者相加(-44dB)。,图4-14增益调节界面图,图4-15文件保存界面图,按下RECORD 可将输入信号保存为WAV文件,再次按下停止记录,如图4-15所示。,需要按下电源按钮来启动频率计,如图4-16所示,图4-16 频率计使用界面图,频率是对输入信号进行FFT得

8、到的,每秒可以更新约10次,显示误差约有10hz,如果想得到准确的频率值,可利用信号发生器的输出信号和示波器利用李萨如图形法测得。如果将FFT取样数提高,误差可以小于1hz,但会加大运算量,在实际中似乎没有必要,如图4-17所示。,信号发生器(如图4-18所示):需要按下电源按钮来启动信号发生器。这是一个频率很准确的双路正弦波发生器,由于采样的特性所限,高频部分有所失真,但在50Hz-15KHz时波形都相当好,输出幅度可通过调节增益按钮实现,可以拉动滑尺调节频率,按下左边的按钮可精确设置输出频率。,万用表(如图4-19所示)是一个有趣的附件,需要按下电源按钮来启动它。它可以测电阻、电容、电感和

9、交流电压的有效值。测电阻、电容、电感时需要同时打开信号发生器,选择合适的输出信号频率。按照原理图把待测元件和标准元件接入电路。按下输入基准,把基准值输入,选择测量方式,LED屏上即可显出待测值,如图4-20所示。图4-19万用表界面图 图4-20LED显示结果图,声卡的正确设置是该软件正常工作的前提, 设置时大致按以下步骤进行:(1)打开声音高级控制。(2)选择录音属性,打开录音音量控制面板,将输入方式选择“LINE”。(3)关闭不必要的声音特效,如混响环绕等,以避免左右声道互相干扰。(4)如果无信号时背景噪声较大,可尝试将一些选项静音,特别是CD音频。 (5)调整输出和输入的平衡,可借助示波

10、器部分和信号发生器部分实现。如果使用其他声卡,可参照以上步骤设置。,51单片机C语言程序设计,51的C语言与ANSI C语言兼容,但是具有单片机的一些特殊表达方法。C51的编程高手是先学习汇编语言的人。他能根据单片机结构特点编写出最简短有效的程序。当前常见的C51编译器是:Keil CKeil C 可以从许多网站下载Keil C 支持多种单片机仿真,对一些单片机的仿真功能需要购买。Keil C 还支持一种在SST89C58单片机中固化了仿真软件的自制仿真器,只需安装一个RS232C驱动电路就可以进行硬件仿真,C51变量定义特点,位变量:SBIT 变量名可位寻址字节位号,可位寻址字节可为SFR中

11、寄存器的位,也可以是用BDATA定义过的片内RAM中可位寻址的变量。存储类型:data直接寻址片内数据区(00-7fH)长度8位bdata可位寻址片内数据区(20-2fH) 长度8位idata间接寻址片内数据区(00-ffH) 特别52系列的80FFH区间,汇编中必须使用r0,r1寻址。pdata分页片外数据区 类似movx a, r0xdata片外数据区 类似movx a, dptr code代码存储区 8位变量:用 CHAR 定义,它实际已经可以不代表字符。前面冠以Unsigned 定义0FFH的8位变量,signed 定义-128+127之间的变量。,C51的头文件简介,用 #inclu

12、de 语句REG51.h:专用寄存器include文件。例如8031/8051均为REG51.h 其中包括了所有8051的SFR及其位定义,一般系统都必须包括本文件。Keil c在你选择芯片型号时能自动选择对应文件。absacc.h:绝对地址include文件。该文件中实际只定义了几个宏,以确定各存储空间的绝对地址。stdlib.h:动态内存分配函数。string.h:缓冲区处理函数。 其中包括拷贝比较移动等函数如:memccpy memchr memcmp memcpy memmove memset这样很方便地对缓冲区进行处理。stdio.h:输入输出流函数。 流函数通8051的串口或用户定

13、义的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_: 相当于JBC bit

14、var测试该位变量并跳转同时清除。_chkfloat_: 测试并返回源点数状态。,KEIL环境下编程,作为单片机的开发,首先是要在开发环境中选择合适的目标CPU,keil支持很多种51核的单片机。在keil中选择单片机型号,如图4-0、图4-1所示。,图4-0 单片机型号的选择示意图1,(1)图4-0是keil的主界面,在图4-0执行“Project”/“New Project”命令,即出现图4-1的画面,然后选择所用的单片机即可。S52和C52的内部结构完全一致,只是前者多了ISP功能,所以选择AT89C52作开发可以完全烧写到S52单片机中。,图4-1单片机型号的选择示意图2,(2)选择好

15、单片机后,建立一个新文件,并保存为后缀为“.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

16、”按钮进入,如图3-6所示。图4-6仿真调试按钮位置图,进入调试的画面如图4-7所示。,通过选择外设菜单(peripherals)下面的子菜单,可以打开I/0端口窗口、中断串口和串口窗口等。,调试通过后,即可生成hex代码,但需要进行设置才能生成,方法是在“project”窗口执行“Target”/“option for target”命令,如图4-8所示。,图4-8hex代码生成设置图,再随后出现的窗口中选择“create hex file”,如图4-9所示。,图4-9hex文件创建图,完成后单击“确定”按钮,再重新编译项目,即可在相应的工程文件目录中生成hex文件,利用此文件通过ISP口就可以将写好的程序写入单片机中。前面所述的调试是软件调试,keil也支持硬件调试,但需要相应的硬件仿真器,具体操作可参考相应生产厂商的手册。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号