单片机c语言教程 第一课 建立您的第一个C项目

发布者:SparkCrafter最新更新时间:2016-03-24 来源: eefocus关键字:单片机  c语言教程  C项目 手机看文章 扫描二维码
随时随地手机看文章
51单片机C语言学习杂记

学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头疼的事。在众多单片机中51架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。51的编程语言常用的有二种,一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编语言很多。综合以上C语言的优点,我在学习时选择了C语言。以后的教程也只是我在学习过程中的一些学习笔记和随笔,在这里加以整理和修改,希望和大家一起肥翼,一起交流,一起学习,一起进步。

*注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,有望各位大侠高手指点错误提出建议。

明浩 2003-3-30 pnzwzw@cdle.net

 

第一课 建立您的第一个C项目

使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51应用的工程师或普通的单片机爱好者,都对它十肥也欢。

以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了)

安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让我们一起来建立一个小程序项目吧。或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。

首先当然是运行KEIL51软件。怎么打开?噢,天!那你要从头学电脑了。呵呵,开个玩笑,这个问题我想读者们也不会提的了:P。运行几秒后,出现如图1-1的屏幕。

 

 

图1-1 启动时的屏幕

 

接着按下面的步骤建立您的第一个项目:

(1)点击Project菜单,选择弹出的下拉式菜单中的New Project,如图1-2。接着弹出一个标准Windows文件对话窗口,如图1-3,这个东东想必大家是见了N次的了,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在"文件名"中输入您的第一个C程序项目名称,这里我们用"test",这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows文件规则的文件名都行。"保存"后的文件扩展名为uv2,这是KEIL uVision2项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。

 

 

图1-2 New Project菜单

 

 

图1-3 文件窗口

 

(2)选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。此时屏幕如图1-4所示。AT89C51有什么功能、特点呢?不用急,看图中右边有简单的介绍,稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行程序的编写了。

(3)首先我们要在项目中创建新的程序文件或加入旧程序文件。如果你没有现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点击图1-5中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New或快捷键Ctrl+N来实现。好了,现在可以编写程序了,光标已出现在文本编辑窗口中,等待我们的输入了。第一程序嘛,写个简单明了的吧。下面是经典的一段程序,呵,如果你看过别的程序书也许也有类似的程序:

 

#include

#include

 

void main(void)

{

SCON =0x50; //串口方式1,允许接收

TMOD = 0x20; //定时器1定时方式2

TCON =0x40; //设定时器1开始计数

TH1 =0xE8; //11.0592MHz 1200波特率

TL1 =0xE8;

TI =1;

TR1 =1; //启动定时器

 

while(1)

{

printf ("Hello World!\n"); //显示Hello World

}

}

 

 

 

图1-4选取芯片

 

 

图1-5新建程序文件

 

这段程序的功能是不断从串口输出"Hello World!"字符,我们先不管程序的语法和意思吧,先看看如何把它加入到项目中和如何编译试运行。

(4)点击图1-5中的3保存新建的程序,也可以用菜单File-Save或快捷键Ctrl+S进行保存。因是新文件所以保存时会弹出类似图1-3的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时你会发现程序单词有了不同的颜色,说明KEIL的C语法检查生效了。如图1-6鼠标在屏幕左边的Source Group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们?quot;Add File to Group 'Source Group 1'"弹出文件窗口,选择刚刚保存的文件,按ADD按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。

 

 

图1-6把文件加入到项目文件组中

 

(5)C程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件,如何设置生成HEX文件就请看下面的第三课。我们先来看图1-7吧,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。5是菜单中的它们,我个人就不习惯用它了。嘿嘿,这个项目只有一个文件,你按123中的一个都可以编译。按了?好快哦,呵呵。在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了。6是有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\Stop Debug Session,快捷键为Ctrl+F5。

 

 

图1-7编译程序

 

(6)进入调试模式,软件窗口样式大致如图1-8所示。图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位,程序回到最开头处执行。按4我们可以打开5中的串行调试窗口,这个窗口我们可以看到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。这些在菜单中也有,这里不再一一介绍大家不妨找找看,其它的功能也会在后面的课程中慢慢介绍。首先按4打开串行调试窗口,再按运行键,这时就可以看到串行调试窗口中不断的打?quot;Hello World!"。呵呵,是不是不难呀?这样就完成了您的第一个C项目。最后我们要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启\关闭调试模式按钮。然后我们就可以进行关闭KEIL等相关操作了。

到此为止,第一课已经完结了,初步学习了一些KEIL uVision2的项目文件创建、编译、运行和软件仿真的基本操作方法。其中一直有提到一些功能的快捷键的使用,的确在实际的开发应用中快捷键的运用可以大大提高工作的效率,建议大家多多使用,还有就是对这里所讲的操作方法举一反三用于类似的操作中。

关键字:单片机  c语言教程  C项目 引用地址:单片机c语言教程 第一课 建立您的第一个C项目

上一篇:单片机的c语言教程 第二课 初步认识51芯片
下一篇:软件抗干扰经验之四、话说指令冗余技术

推荐阅读最新更新时间:2024-03-16 14:48

51单片机学习——存储和引脚
前言 首先阅读这篇文章需要有 51 单片机 C 语言编程基础(至少要学完定时器)。这篇文章作为我的一个学习笔记,总结我学到的内容,后面在学习的过程中会慢慢补充,如果有错误的地方欢迎大家批评指正 一、CPU架构和指令集 因为这个不是重点内容,咱们这里不讨论,不是很懂的朋友先去看这个视频 https://www.bilibili.com/video/BV1xE411N74Twww.bilibili.com/video/BV1xE411N74T 二、51单片机地址结构 2.1 普林斯顿与哈佛结构 51 单片机采用哈佛结构,共有 4 个物理存储空间:片内 RAM、片内 ROM、片外 RAM、片外 ROM 上面是三个逻辑空间,
[单片机]
意法半导体(ST)的安全微控制器获索尼选用
意法半导体的技术为日本带来首个单片集成多个非接触式支付应用的芯片卡,拥有独一无二的自动射频检测功能,可提高支付卡的交易速度和便利性。 中国,2014年11月19日 ——横跨多重电子应用领域、全球领先的半导体供应商、全球三大智能卡芯片厂商之一的意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)宣布,旗下的双接口安全微控制器获索尼 (Sony) 选用,用于设计新一代具有微支付功能 (micropayment-enabled) 的芯片卡。新一代支付卡有望在2016年上半年进入日本消费市场。 作为市场上最先进的双接口(接触式/非接触式接口)安全微控制器,兼具出色的计算性能、优异的能效、
[安防电子]
基于PIC单片机的永磁无刷直流电动机控制系统的开发
引言 嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。嵌入式系统是面向应用的,系统的硬件选型和软件开发模式都必须根据具体的应用确定。 永磁无刷直流电动机是电机控制研究领域的热点之一,这与其自身固有的技术优势密切相关:以电子换相取代了有刷直流电动机的机械换相。从根本上革除了普通有刷直流电动机由于电刷换相带来的火花、噪音、高故障率等一系列问题,同时又使系统的性能能够与普通有刷直流电动机相媲美,因此得到了广泛的应用。永磁无刷直流电动机的电子换相离不开电机的转子位置信号,传统的方法是采用霍尔器件或其他位置传感器检测位置信号,这使得系统的维护和制造
[嵌入式]
TI基于 PiccoloTM 微控制器的三款新型数位电源开发套件 实现了业界领先的效率与效能水准
    TI宣布推出三款新型开发套件,进一步扩大其 TMS320C2000™ 微控制器 (MCU) 数位电源的软件、工具及培训产品阵营,并使数位电源的效率与效能达到新的水准。这些新型套件实现并简化了目前急需且更加复杂的电源供应功能,例如无桥设计以及具有斜率补偿功能的峰值电流模式控制 (PCMC,Peak Current Mode Control)。TI 的免费 controlSUITE™ 平台包括 25 个以上的模组化数位电源软件区块,大幅地降低了编程方面的挑战。凭借 TI 的新型套件,开发人员能够在众多的应用中充分利用数位电源的效率及可靠性优势,应用可包含服务器、电信整流器、照明、再生能源、混合动力汽车和电动汽车等。     每款
[嵌入式]
芯旺微推出KungFu内核汽车级MCU KF32A146,拓宽车载电机类应用场景
继KungFu家族推出32位车规级MCU KF32A156一年以来,KungFu 32位MCU产品迅速在汽车BCM、整车VCU控制器、新能源汽车BMS、汽车Tbox、汽车照明、汽车座椅等应用场景中收获大量车厂落地项目,以强劲的研发实力、快速的技术支持和大量的成功案例,向市场交出了满意的答卷。 为丰富车载电机类应用市场,芯旺微电子推出KungFu 32内核汽车级MCU KF32A146系列产品,本系列是芯旺微电子为汽车末端节点控制器量身定制的32位车规级MCU产品,采用全自主IP KungFu32内核,目前已推出KF32A146KQT、KF32A146IQT、KF32A146KQS、KF32A146IQS四种型号,并已广泛应用在
[汽车电子]
芯旺微推出KungFu内核汽车级<font color='red'>MCU</font> KF32A146,拓宽车载电机类应用场景
一种智能化的温湿度智能控制系统设计
  温、湿度控制广泛应用于人们的生产和生活中,对于农产品种子来说,对环境温度与湿度有着比较严格的要求。人们通常使用温度计、湿度计来测量仓库的温度和湿度,通过人工加热、加湿、通风和降温等方法来控制仓库的温、湿度,这种方法不但控制精度低、实时性差,而且操作人员的劳动强度大。同时温度与相对湿度的大幅度变化可能导致种子大范围腐烂或者影响种子的发芽率,从而带来极大的经济及财产损失。因此,保持适宜的仓库温度、湿度对保证农产品种子存储质量十分重要。   目前市场上的各种温度控制设备大多只能根据简单的温度变化规律制定控制算法,系统扩展性较差。本系统采集了种子仓库所在地一年的温度变化规律,并使用能适应季节变化、节省能源的模糊控制算法, 结合AT8
[单片机]
一种智能化的温湿度智能控制系统设计
[单片机框架][bsp层][AT32F415][bsp_exti] EXTI配置和使用
7.2.1 主要特性 EXTI 控制器的主要特性如下: ● 每个中断/事件都有独立的触发和屏蔽 ● 每个中断线都有专用的状态位 ● 支持多达 23 个软件的中断/事件请求 ● 检测脉冲宽度低于 APB2 时钟宽度的外部信号。参见数据手册中电气特性部分的相关参数。 7.2.4 功能说明 要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置 2 个触发寄存器,同时在中断屏蔽寄存器的相应位写’1’允许中断请求。当外部中断线上发生了期待的边沿时,将产生一个中断请求,对应的挂起位也随之被置’1’。在挂起寄存器的对应位写’1’,将清除该中断请求。 如果需要产生事件,必须先配置好并使能事件线。根据需要的边沿检测设置 2 个触发寄存器
[单片机]
[<font color='red'>单片机</font>框架][bsp层][AT32F415][bsp_exti] EXTI配置和使用
基于ATMEGA8单片机数字功率跟随技术
      目前,煤炭、石油是我国利用的主要能源,它们的巨量消费不仅是大气污染的主要来源,还有其不可再生性,使得它们会逐渐被可再生能源所代替。我国大部分地区有着丰富的风能和太阳能资源,但限于科技的发展程度,它们一直未能得到有效地利用。近些年,随着电子技术和硅材料研究的不断进步,促进了对风能、太阳能的开发利用,市场前景相当广阔。在此前提下,研制了智能化、模块化、一体化的新一代风、光互补综合电源系统。     1 风光互补发电系统     风、光互补电源系统主要有风力发电机、太阳能电池板、蓄电池组和电源综合控制柜组成。其设计理念是利用太阳能电池板和风力发电机双发电系统对蓄电池组(48V)充电,再把直流电逆变成AC 220V/50Hz
[电源管理]
基于ATMEGA8<font color='red'>单片机</font>数字功率跟随技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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