首页 > 应用 > 单片机应用
[导读]一、讲解背景在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习。但是要提高单

一、讲解背景

本文引用地址: http://www.21ic.com/app/mcu/201209/141703.htm

在单片机学习的过程中,掌握一点汇编语言是非常有必有的,作为低级语言汇编语言在单片机开发中有它不可取代的作用,比如每条指令可以精确的确定延时时间,便于理解非常适合硬件工程师学习。但是要提高单片机技能,必须掌握C 语言编程,因为C 语言有强大的模块化管理思想。我想在很多人学习的过程中即学了汇编语言,又学习了C  语言,那么一个问题便随之而产生,如果将C  语言与汇编语言相互结合,达到更好的编程效果,本次讲解就是基于这个问题而生成的。

二、操作步骤

第一步:

在KEIL 中新建工程及文件并复制以下程序并保存为C 文件:

/*

功能:C 语言里嵌套汇编语言,起到抛砖引玉的作用

*/

#include<reg51.h>

delay()

{

int i,j;

for(i=0;i<1000;i++)

for(j=0;j<120;j++); //12M 晶振下延时1MS

}

main()

{

P2=0x00; //控制8 个LED 亮

delay(); //延时1S

#pragma ASM//汇编嵌套开始

MOV P2,#0FFH   //汇编嵌套结束

#pragma ENDASM//汇编嵌套开始

while(1); //C 程序结束

}

第二步:

选中 Project   窗口中的C  文件,比如CX1.C,并右键,选择“Options   for   ...”,点击右边的“Generate Assembler SRC File”和“Assemble SRC File”,使复选框的打钩由灰色变成黑色状态(双击即可);

第三步:

将相应的库文件(如 Small        模式时,是 KeilC51LibC51S.Lib)加入工程中,       该文件必须作为工程的最后文件 (将该文件像头文件一样加载到工程中);

第四步:

在KEIL 中编译生成HEX 文件,并按如下图设计仿真图,在仿真中查看效果。

三、演示效果

如下图,如果你在你自己的仿真软件PROTEUS 上看到单片机P2  口控制的8 个LED 先亮延时1S 左右自动熄灭的效果。那说明你已经完全掌握C 语言里嵌套汇编语言的方法了。

12.jpg

换一批

延伸阅读

[新鲜事] Windows服务程序的C语言编写步骤

Windows服务程序的C语言编写步骤

  Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理......

关键字:Windows C语言 服务 程序

[真心话] 软件开源活动领航人Eric Raymond:C语言时代行将落幕

软件开源活动领航人Eric Raymond:C语言时代行将落幕

这几天来,我(Eric Raymond)在思考那些正在挑战C语言的系统编程语言领袖地位的新潮语言,尤其是Go和Rust。思考的过程中,我意识到了一个让我震惊的事实——我有着35年的C语言经验。每周我都要写很多C代码,但是我已经记不清楚上一次......

关键字:Eric Raymond C语言

[新鲜事] 上海编制共享单车标准:满12岁才能骑、须装GPS

上海编制共享单车标准:满12岁才能骑、须装GPS

据报道,上海相关部门研究编制了共享单车系列标准,即将向社会公开征求意见。......

关键字:共享单车 标准 GPS

[真心话] 神吐槽:高级硬件工程师需不需要懂基本电路?

神吐槽:高级硬件工程师需不需要懂基本电路?

那么请大家说说, 高级硬件工程师需不需要懂三极管电路? 难道拿着参考设计照猫画虎, 了解一些行情, 熟悉一些方案公司(出了事找方案公司来解决), 就算高工了?......

关键字:高级硬件工程师 基本电路

[新鲜事] 奇闻!10岁男孩发现宇宙光束 疑似两亿光年外超新星

奇闻!10岁男孩发现宇宙光束 疑似两亿光年外超新星

这位10岁男童名叫廖家铭,家住合肥市庐阳区,如今正读5年级。今年8月初,他加入了星明天文台公众超新星搜寻项目(PSP项目),和全国各地数以百计的业余天文爱好者一起,每天在这里对着电脑中的黑白宇宙“找不同”,以期发现宇宙几千万年乃至几亿年前的......

关键字:宇宙光束 超新星
条评论

我 要 评 论

网友评论

热门文章

技术子站

更多

项目外包

更多

推荐博客