📄 建立你的第一个keilc51项目.htm
字号:
if (action[0] == "acti")
{
window.location.href="/league/activity/acti_mana_index.php?t_id=" + action[1];
}
}
}
function copyurl(url)
{
try{
clipboardData.setData('Text',url);
showAlert('已经把该社团网址复制到系统剪贴板,您可以使用(Ctrl+V或鼠标右键)粘贴功能,通过其他软件记录或发送给您的朋友。')
}
catch(e){}
}
function add_favorite(uid, url, name)
{
window.open("/personal/favorite/add.php?member_id="+uid+"&url="+url+"&name="+name,'_blank','width=400,height=220,toolbar=0,locationbar=0,menubar=0,statbar=0');
return false;
}
// 提示登录
function alertlert_login()
{
showAlert('对不起,您目前没有权限,请先登录!');
document.login_form1.account.focus();
}
//申请加入社团
function con_join(con_gid)
{
showConfirm("您确认加入本社团吗?","window.location.href='/league/apply.php?g_id="+con_gid+"';","");
}
//退出本社团
function con_quiet(con_gid,con_uid)
{
showConfirm("您确认退出本社团吗?","window.location.href='/league/member/quiet_member.php?g_id="+con_gid+"&q_uid="+con_uid+"';","");
}
</SCRIPT>
<!-- 回复框 -->
<DIV id=background style="DISPLAY: none"></DIV>
<DIV id=postbox
style="DISPLAY: none; Z-INDEX: 50; LEFT: 769px; WIDTH: 600px; POSITION: absolute; TOP: 271px">
<FORM name=reply_comment action=/league/comment/index.php?gid=514465 method=post
target=hidden_frame><INPUT id=act type=hidden value=add name=act> <INPUT id=r_id
type=hidden name=r_id> <INPUT id=t_id type=hidden name=t_id> <INPUT id=f_uid
type=hidden name=f_uid>
<TABLE cellSpacing=0 cellPadding=0 width="70%" border=0>
<TBODY>
<TR>
<TD height=13> </TD></TR>
<TR>
<TD class=box_common height=26> <SPAN
class=font_common_title>回复评论</SPAN></TD></TR></TBODY></TABLE>
<TABLE class=box_common01 cellSpacing=0 cellPadding=0 width="70%">
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=8 cellPadding=0 width="100%" bgColor=#ffffff
border=0><TBODY>
<TR>
<TD class=font_common vAlign=top align=right height=63>内容:</TD>
<TD class=font_common vAlign=top><TEXTAREA class=input_box01 id=input_area name=input_area rows=6 cols=48></TEXTAREA></TD></TR>
<TR>
<TD class=font_common vAlign=top align=right width="15%">原文:</TD>
<TD class=font_common style="LINE-HEIGHT: 18px" vAlign=top
width="85%"><SPAN class=gray id=past_type></SPAN></TD></TR>
<TR>
<TD class=font_common vAlign=top align=middle colSpan=2><INPUT class=btn01 onclick=javascript:hidden_reply();submit_post(document.reply_comment); type=button value=发表 name=queding>
<INPUT class=btn01 onclick=hidden_reply(); type=reset value=取消>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></FORM></DIV><!-- 回复框 -->
<DIV id=mainBox>
<DIV id=mainBoxBg>
<TABLE class=module_title cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD class=corner_left></TD>
<TD class=corner_center><A
href="http://www.5jia1.com/league/?gid=514465">首页</A> > <A
href="http://www.5jia1.com/league/blog/blog_index.php?gid=514465">社团文集</A> > <A
href="http://www.5jia1.com/league/blog/show_comm.php?bid=361223">第一课
建立你的第一个KeilC51项目</A></TD>
<TD class=corner_right></TD></TR></TBODY></TABLE>
<DIV class=module_content>
<DIV class=module_content_line>
<DIV class=bg>
<TABLE cellSpacing=10 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=middle>
<TABLE class=box_common cellSpacing=1 cellPadding=5 width="100%"
border=0><TBODY>
<TR class=box_common_title>
<TD colSpan=2>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="35%"><B>第一课 建立你的第一个KeilC51项目</B></TD>
<TD align=right width="65%">作者: <A
href="http://www.5jia1.com/personal/?member_id=505887"
target=_blank>张文俊</A> 2007-08-14
15:08:24 </TD></TR></TBODY></TABLE></TD></TR>
<TR class=box_content>
<TD vAlign=top align=middle width="10%"><A
href="http://www.5jia1.com/personal/?member_id=505887"
target=_blank><IMG class=box01 height=98
src="1.files/s_0_personal_photo_505887.jpg" width=98 vspace=5
border=0></A><BR><IMG height=14 src="1.files/icon_boy.gif" width=14
border=0> <A
href="http://www.5jia1.com/personal/?member_id=505887"
target=_blank>张文俊</A> </TD>
<TD>
<TABLE class="font_content autowrap" cellSpacing=12 cellPadding=0
width="100%" border=0>
<TBODY>
<TR>
<TD class=line_h20 style="WIDTH: 790px">
<DIV style="OVERFLOW-X: auto; WIDTH: 100%">
<TABLE style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all"
cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TH vAlign=center align=middle height=32>
<H1>第一课 建立你的第一个KeilC51项目</H1></TH></TR>
<TR>
<TD align=middle bgColor=#f7f7f7
height=25>作者:佚名 来源:本站原创 点击数:
294 更新时间:2007年07月19日 </TD></TR>
<TR>
<TD align=middle></TD></TR>
<TR>
<TD vAlign=top width=623>
<DIV class=Message id=Message></DIV></TD></TR></TBODY></TABLE>
<P>随着<FONT color=#800080>单片机</FONT>技术的不断发展,以单片机C语言为主流的<A
href="http://www.51hei.com/" target=_blank></A>高级语言也不断被更多的<A
href="http://www.51hei.com/" target=_blank><U><FONT
color=#800080>单片机</FONT></U></A>爱好者和工程师所喜爱。使用C51肯定要使用到编译器,以便把写好的C程序编译为机器码,这样<A
href="http://www.51hei.com/" target=_blank><U><FONT
color=#800080>单片机</FONT></U></A>才能执行编写好的程序。KEIL uVISION2 是众多<A
href="http://www.51hei.com/" target=_blank><U><FONT
color=#800080>单片机</FONT></U></A>应用开发软件中优秀的软件之一,它支持众多不一样公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面和常用的微软
VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。本站提供的单片机c语言教程都是基于keilc51的。</P>
<P> 下面结合8051介绍单片机C语言的优越性:</P>
<P> ·无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;</P>
<P> ·不懂得单片机的指令集,也能够编写完美的单片机程序;</P>
<P> ·不同函数的数据实行覆盖,有效利用片上有限的RAM空间;</P>
<P> ·提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;</P>
<P> ·C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;</P>
<P> ·提供small、compact、large等编译模式,以适应片上存储器的大小;</P>
<P> ·中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;</P>
<P> ·程序具有坚固性:数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏</P>
<P> ·提供常用的标准函数库,以供用户直接使用;</P>
<P><BR> ·有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;</P>
<P> ·可方便地接受多种实用程序的服务:如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。</P>
<P> ·头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;</P>
<P>以上简单介绍了 KEILC51
软件,要使用KEILC51软件,必需先要安装它,这也是学习单片机编程语言所要求的第一步――建立学习环境。</P>
<P>本站提供<A href="http://www.51hei.com/keil下载.html"
target=_blank><U>无限制版的keil
c51下载(此处)</U></A>(安装的方法在压缩包内有详细说明,这里就不做介绍了)</P>
<P>安装好后,您是不是想建立自己的第一个单片机C语言程序项目呢?下面就让我们一起来建立一个小程序吧,请根据教程一步步的来,你绝对可以在短时间内熟悉c51的。</P>
<P><A href="http://www.51hei.com/ziliao/c51teachcode.rar"
target=_blank><U><FONT
color=#800080>本教程所涉及c51源代码请点此下载</FONT></U></A></P>
<P>首先当然是运行KEIL软件,接着按下面的步骤建立您的第一个项目:</P>
<P>(1)点击 Project 菜单,选择弹出的下拉式菜单中的 New Project,如图 1-2。接着弹
出一个标准 Windows 文件对话窗口,如图 1-3。在“文件名”中输入您的第一个 C 程序项
目名称,这里我们用“test”。“保存”后的文件扩展名为 uv2,这是 KEIL uVision2
项目文件扩展名,以后能直接点击此文件以打开先前做的项目。</P>
<P><IMG style="CURSOR: pointer" alt=点此在新窗口浏览图片
src="1.files/20077191206994429.gif" width=321 border=0
&111nload="function anonymous() { function anonymous() { resizepic(this) } }"
&111nclick="function anonymous() { function anonymous() { window.open(this.src); } }"
&111nmousewheel="function anonymous() { function anonymous() { return bbimg(this) } }"></P>
<P>图 1-2 New Project 菜单</P>
<P><IMG style="CURSOR: pointer; ZOOM: 80%" alt=点此在新窗口浏览图片
src="1.files/20077193946556447.gif" width=443 border=0
&111nload="function anonymous() { function anonymous() { resizepic(this) } }"
&111nclick="function anonymous() { function anonymous() { window.open(this.src); } }"
&111nmousewheel="function anonymous() { function anonymous() { return bbimg(this) } }"></P><BR
style="PAGE-BREAK-BEFORE: auto" clear=all>
<DIV class=Section2>
<P>图 1-3 文件窗口</P>
<P>(2)选择所要的<A href="http://www.51hei.com/"
target=_blank><U><FONT
color=#800080>单片机</FONT></U></A>,这里选择常用的 Ateml 公司的
AT89c51。而且本单片机c语言教程里的大部分程序都是基于此芯片的,此时屏幕如图 1-4 所示。AT89c51
有什么功能、特点呢?看图中右边有简单的介绍。完成上面步骤后,就可 以进行程序的编写了。</P>
<P>(3)首先在项目中创建新的程序文件或加入旧程序文件。如果您没有现成的程序,那 么就要新建一个程序文件。在 KEIL
中有一些程序的 Demo,在这里我们还是以一个 C 程序 为例介绍如何新建一个 C 程序和如何加到您的第一个项目中吧。点击图
1-5 中 1 的新建文 件的快捷按钮,在 2 中出现一个新的文字编辑窗口,这个操作也能通过菜单 File-New 或
快捷键 Ctrl+N
来实现。好了,现在能编写程序了。下面是经典的一段程序,呵,如果您看过别的程序书也许也有类似的程序:</P>
<P>#include <AT89X51.H></P>
<P>#include <stdio.h></P>
<P>void main(void)</P>
<P>SCON = 0x50; //串行口方式 1,允许接收</P>
<P>TMOD = 0x20; //定时器 1 定时方式 2</P>
<P>TCON = 0x40; //设定时器 1 开始计数</P>
<P>TH1 = 0xE8; //11.0592MHz 1200 波特率</P>
<P>TL1 = 0xE8; TI = 1;</P>
<P>TR1 = 1; //启动定时器</P></DIV><BR
style="PAGE-BREAK-BEFORE: auto" clear=all>
<DIV class=Section3>
<P>while(1)</P>
<P>{</P>
<P>}</P>
<P>}</P>
<P>printf ("Hello World!\n"); //显示 Hello World</P></DIV><BR
style="PAGE-BREAK-BEFORE: auto" clear=all>
<DIV class=Section4>
<P><IMG style="WIDTH: 550px; CURSOR: pointer; ZOOM: 90%"
alt=点此在新窗口浏览图片 src="1.files/20077196930529721.jpg" width=550
border=0
&111nload="function anonymous() { function anonymous() { resizepic(this) } }"
&111nclick="function anonymous() { function anonymous() { window.open(this.src); } }"
&111nmousewheel="function anonymous() { function anonymous() { return bbimg(this) } }"></P>
<P>图 1-4 选取芯片</P>
<P><IMG style="CURSOR: pointer" alt=点此在新窗口浏览图片
src="1.files/20077195633734301.gif" width=297 border=0
&111nload="function anonymous() { function anonymous() { resizepic(this) } }"
&111nclick="function anonymous() { function anonymous() { window.open(this.src); } }"
&111nmousewheel="function anonymous() { function anonymous() { return bbimg(this) } }"></P>
<P>图 1-5 新建程序文件</P>
<P>这段程序的功能是不断从串行口输出“Hello World!”字符,先不管程序的语法和意思吧,先
看看如何把它加入到项目中和如何编译试运行。</P>
<P>(4)点击图 1-5 中的 3 保存新建的程序,也能用菜单 File-Save 或快捷键 Ctrl+S</P>
<P>进行保存。因是新文件所以保存时会弹出类似图 1-3 的文件操作窗口,把第一个程序命名</P>
<P>为 test1.c,保存在项目所在的目录中,这个时候您会发现程序单词有了不一样的颜色,说明
KEIL的C语言语法检查生效了。如图 1-6 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹出
菜单,在这里能做在项目中增加减少文件等操作。选“Add File to Group ‘Source Group 1’”
弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。这个时候在 Source
Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它能展开查看。</P></DIV><BR
style="PAGE-BREAK-BEFORE: auto" clear=all>
<DIV class=Section5>
<P><IMG style="CURSOR: pointer" alt=点此在新窗口浏览图片
src="1.files/20077194170432431.gif" width=407 border=0
&111nload="function anonymous() { function anonymous() { resizepic(this) } }"
&111nclick="function anonymous() { function anonymous() { window.open(this.src); } }"
&111nmousewheel="function anonymous() { function anonymous() { return bbimg(this) } }"></P>
<P>图 1-6 把文件加入到项目文件组中</P>
<P>(5)C程序文件已被加到了项目中了,下面就剩下编译运行了。这个项目只是用做学
习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用 于芯片烧写的 HEX 文件。先来看图
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -