教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

51单片机c语言KeilC51全集(2)

来源:网络收集 时间:2026-08-16
导读: 消息 输出的路径,2是设置编译输出生成的文件 名,3则是决定是否要创建HEX文件,选中它 KeilC51实际应用大全 所有发言 个人档案 最后登陆时间:2010-06-04 08:20:15 状态:离线 就能输出HEX文件到指定的路径中。选

消息

输出的路径,2是设置编译输出生成的文件 名,3则是决定是否要创建HEX文件,选中它

KeilC51实际应用大全

所有发言 个人档案

最后登陆时间:2010-06-04 08:20:15 状态:离线

就能输出HEX文件到指定的路径中。选好了? 好,我们再将它重新编译一次,很快在编译信息窗口中就显示HEX文件创建到指定的路径 中了,如图2-3。这样我们就可用自己的编程器所附带的软件去读取并烧到芯片了,再用实 验板看结果,至于编程器或仿真器品种繁多具体方法就看它的说明书了,这里也不做讨论。

(技巧:一、在图2-1中的1里的项目文件树形目录中,先选中对象,再单击它就可对它进 行重命名操作,双击文件图标便可打开文件。二、在Project下拉菜单的最下方有最近编辑过

的项目路径保存,这里能快速打开最近在编辑的项目。) 图2-1项目功能菜单

图2-2 项目选项窗口

KeilC51实际应用大全

图 2-3 编译信息窗口

或许您已把编译好的文件烧到了芯片上,如果您购买或自制了带串行口输出元件的学习实 验板,那您就能把串行口和 PC 机串行口相联用串行口调试软件或 Windows 的超级终端,将其波特 率设为 1200,就能看到不停输出的“Hello World!”字样。如果您还没有实验板,那这 里先说说 AT89c51 的最小化系统,再以一实例程序验证最小化系统是否在运行,这个最小化 系统也易于自制用于实验。图 2-4 便是 AT89c51 的最小化系统,不过为了让我们能看出它 是在运行的,加了一个电阻和一个 LED,用以显示它的状态,晶体震荡器能根据自己的情况使用, 一般实验板上是用 11.0592MHz 或 12MHz,使用前者的好外是能产生标准的串行口波特率,后 者则一个机器周期为 1 微秒,便于做精确定时。在自己做实验里,注意的是 VCC 是+5V 的, 不能高于此值,不然将损坏单片机,太低则不能正常工作。在 31 脚要接高电平,这样我们 才能执行片内的程序,如接低电平则使用片外的程序存储器。下面建一个新的项目名为 OneLED 来验证最小化系统是否能工作(所有的例程都可在笔者的主页下面下载到,网址: 。程序如下: #include //预处理命令 void main(void) //主函数名 {

//这是第一种注释方式

unsigned int a; //定义变量 a 为 int 类型 /* 这是第二种注释方式 */

do{ //do while 组成循环

for (a=0; a<50000; a++); //这是一个循环 P1_0 = 0; //设 P1.0 口为低电平,点亮 LED for (a=0; a<50000; a++); //这是一个循环 P1_0 = 1; //设 P1.0 口为高电平,

KeilC51实际应用大全

熄灭 LED } while(1); }

图 2-4 AT89c51 最小化系统

这里先讲讲 KEIL C 编译器所支持的注释语句。一种是以“//”符号开始的语句,符号之后 的语句都被视为注释,直到有回车换行。另一种是在“/*”和“*/”符号之内的为注释。注 释不会被 C 编译器所编译。一个 C 应用程序中应有一个 main 主函数,main 函数能调用别

的功能函数,但其它功能函数不允许调用 main 函数。不论 main 函数放在程序中的那个位置, 总是先被执行。用上面学到的知识编译写好的 OneLED 程序,并把它烧到刚做好的最小化系 统中。上电,刚开始时 LED 是不亮的(因为上电复位后所有的 IO 口都置 1 引脚为高电平), 然后延时一段时间(for (a=0; a<50000; a++)这句在运行),LED 亮,再延时,LED 熄灭, 然后交替亮、灭。第一个真正的小实验就做完,如果没有这样的效果那

KeilC51实际应用大全

么您就要认真检查一下电路或编译烧写的步骤了。

sylar 源于 heros

了解更多电源解决方案

回复

回复本帖

回到顶端 [3 楼]

单片机 c 语言教程第三课 C51 数据类型 发表于 2009-07-30 15:04:52 我想评分sylar

我是 MM 员

高级会

每写一个程序,总离不开数据的应用,在学习 c51 语言的过程中掌握理解数据类型也是 很关键的。先看表 3-1,表中列出了 KEIL uVision2 单片机 c 语言编译器所支持的数 据类型。在标准 C 语言中基本的数据类型为 char,int,short,long,float 和 double, 而在 c51 编译器中 int 和 short 相同,float 和 double 相同,这里就不列出说明了。 下面来看看它们的具体定 义:

用户等级:院士 加为好友 发短 消息 所有发言 个人 signed char 档案 最后登陆时间: 2010-06-04 08:20:15 状态:离线 unsigned int signed int unsigned long signed long float * bit sfr sfr16 sbit 单字节 双字节 双字节 四字节 四

字节 四字节 1~3 字节 位 单字节 双字节 位 -128~+127 0~65535 -32768~+32767 0~4294967295 -2147483648~+2147483647 ±1.175494E-38~±3.402823E+38 对象的地址 0 或 1 0~255 0~65535 0 或 1 数据类型 unsigned char 长 度 单字节 值 域 0~255

表 3-1 KEIL uVision2 单片机 c 语言编译器所支持的数据类型

KeilC51实际应用大全

1. char 字符类型

char 类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。分无符号字 符类型 unsigned char 和有符号字符类型 signed char,默认值为 signed char 类型。 unsigned char 类型用字节中所有的位来表示数值,所能表达的数值范围是 0~255。 signed char 类型用字节中最高位字节表示数据的符号,“0”表示正数,“1”表示负数, 负数用补码表示。所能表示的数值范围是-128~+127。unsigned char 常用于处理 ASCII 字符或用于处理小于或等于 255 的整型数。

*正数的补码与原码相同,负二进制数的补码等于它的绝对值按位取反后加 1。 2. int 整型

int 整型长度为两个字节,用于存放一个双字节数据。分有符号 int 整型数 signed int 和无符号整型数 unsigned int,默认值为 signed int 类型。signed int 表示的数值范 围是-32768~+32767,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数。 unsigned int 表示的数值范围是 0~65535。

先停一下来写个小程序看看 unsigned char 和 unsigned int 用于延时的不一样效果,说 明它们的长度是不一样的,学习它们的使用方法。依旧用上一篇的最小化系统做实验,不过要加多 一个电阻和 LED,如图 3-1。实验中用 D1 的点亮表明正在用 unsigned int 数值延时,用

D2 点亮表明正在用 unsigned char 数值延时。

图 3-1 第 3 课实验用电路 把这个项目称为 TwoLED,实验程序如下: #include //预处理命令 void main(void) //主函数名 {

unsigned int a; //定义变量 a 为 unsigned int 类型 unsigned char b; //定义变量 b 为 unsigned char 类型 do

{ //do while 组成循环 for (a=0; a<65535; a++)

P1_0 = 0; //65535 次设 P1.0 口为低电平,点亮 LED P1_0 = 1; //设 P1.0 口为高电

KeilC51实际应用大全

平,熄灭 LED

for (a=0; a<30000; a++); //空循环 for (b=0; b<255; b++)

P1_1 = 0; //255 次设 P1.1 口为低电平,点亮 LED P1_1 = 1; //设 P1.1 口为高电平,熄灭 LED

for (a=0; a<30000; a++); //空循环 } while(1); }

同样编译烧写,上电运行您就能看到结果了。很明显 D1 点亮的时间长于 D2 点亮的时间。

这里必须要讲的是,当定义一个变量为特定的数据类型 …… 此处隐藏:2839字,全部文档内容请下载后查看。喜欢就下载吧 ……

51单片机c语言KeilC51全集(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/108947.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)