0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

告诉你怎么编写一个最简单的单片机程序

GReq_mcu168 来源:未知 作者:李倩 2018-08-10 16:22 次阅读

汇编语言中,让某个端口输出高电平或低电平都有专用的语句,以P1.0端口为例:

让该端口输出高电平的语句是:

SETB P1.0

让该端口输出低电平的语句是:

CLR P1.0

好了,现在我们将小灯接在单片机的P1.0端口上,如下图所示:

由上图可知,当端口P1.0输出高电平时,小灯D不亮,因为小灯中不会有电流通过;当端口P1.0输出低电平时,小灯就亮,因为此时小灯中有电流通过。

要让小灯亮一会儿、灭一会儿,还必须要有一个延时的程序,下面就是让小灯亮一会儿、灭一会儿,交替闪烁的程序:

MAIN:;程序开始

SETB P1.0;让P1.0输出高电平

LCALL DELAY;这一行是调用延时子程序

;目的是让P1.0保持高电平

;多停留一段时间

CLR P1.0;让P1.0输出低电平

LCALL DELAY;这一行也是调用延时子程序

;和刚才一样,让P1.0保持低

;电平停留一段时间,其实就

;是让它多亮一会儿再熄灭

LJMP MAIN;跳转到MAIN处执行(循环)

;以下是延时子程序,有关该延时程序的内容以后再学

DELAY: MOV R7,#250

D1: MOV R6,#250

D2: DJNZ R6,D2

DJNZ R7,D1

RET

END

在以上汇编程序中,延时子程序每一行的具体含义先不管他,以后慢慢学到,上面的程序需要在一个名为“Keil uVision2”的软件中汇编完成,汇编后得到一个*.hex文件,这就是目标文件,然后用编程器将该文件“写”到单片机89s51中,这样该89s51就具有自动控制小灯闪烁的功能了。

在实验的时候,通常用发光二极管LED代替小灯,由于LED工作电压小,由此LED要串接一个小电阻,用220欧姆——1k之间的都行,我用的是510欧姆的。

这样还不够,单片机工作还需要两个条件,一是需要加上一定的工作电压,AT89S51工作电压为5V,第20脚接负极,第40脚接正极;另外还要给单片机安装一个心脏起搏器,就是振荡器,通常叫做时钟,只要在18脚和19脚之间接一个石英晶体就行了,我用的是12MHz的,另外为了保证振荡器稳定工作,还要在18脚、19脚分别接一个27PF的小电容到地(就是接到负极),此外,89s51的第9脚为复位端,要接一个10uF电容到正极,再接一个10K电阻到负极,最后,第31脚也要和电源的正极接起来,关于31脚,以后再说,这样一台由单片机控制的会自动闪烁的小灯就做好了。下面是完整的电路图:

没有使用的管脚空着就行了,什么也不用接。一通上电,小灯就开始不停的闪烁了。大约1秒钟闪烁3——4次。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5997

    文章

    43943

    浏览量

    620440
  • 发光二极管
    +关注

    关注

    13

    文章

    1136

    浏览量

    65659
  • 汇编语言
    +关注

    关注

    14

    文章

    404

    浏览量

    35185

原文标题:跟我来编一个最简单的单片机程序

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    用LabVIEW编写单片机的烧录(下载)软件

    谁知道用LabVIEW编写单片机的在线烧录(下载)软件?谁有这方面的经验和方法?我用的单片机是MC9S08DZ60,用于其它型号的单片机也行。有源
    发表于 10-25 08:54

    怎么用C#编写上位程序来控制单片机

    求助,怎么用C#编写上位程序来控制单片机,让单片机
    发表于 04-23 20:38

    段话教会熟练掌握单片机

    强,请他帮忙,搭个简单单片机最小电路,哪怕是控制LED闪烁的电路。只要在你眼皮底下经过电路设 计、程序
    发表于 05-09 16:42

    写给要接触单片机和刚接触单片机的人

    编写这样简单程序会知道单片机还有这样的功能,
    发表于 07-15 10:27

    简单单片机程序

    不管他,以后慢慢学到,上面的程序需要在名为“Keil uVision2”的软件中汇编完成,汇编后得到*.hex文件,这就是目标文件,
    发表于 09-03 07:26

    使用C语言编写单片机程序

    上次说到了使用C语言编写单片机程序,既然使用编程语言,就需要有软件把程序语言翻译成机器能懂的机器码,把机器码下载进单片机
    发表于 07-14 08:24

    利用C语言编写PIC单片机程序的方法是什么

    PI C单片机程序的方法,本刊特推出《PI C 单片机C 语言程序设计》系列连载文章。文中给出的C 语言程序实例,均是可执行的,读者可以放心
    发表于 07-15 08:40

    怎样去编写一个单片机程序

    一个单片机程序的功能是什么?怎样去编写一个单片机程序
    发表于 10-14 12:32

    怎样编写51单片机的项目

    1、准备工作在项目中,往往因为成本问题而去选择更适合产品的单片机,其中51单片机就是使用于低成本且功能简单的产品。我们在编写
    发表于 11-22 07:43

    怎样去编写单片机程序

    摘要:在看别人单片机程序时,也许是奔溃的,因为全局变量满天飞,不知道哪个在哪用了,哪个表示什么,而且编写极其不规范。自己写单片机
    发表于 11-23 08:38

    单片机程序与串口的单片机程序

    我之前做过相关的开发,所以顺便说下,希望能帮助到你首先是蓝牙通信,我想指出,如果用的是蓝牙模块的话,那么它的单片机程序与串口的单片机
    发表于 12-06 07:25

    怎样架构单片机程序

    对于单片机程序来说,大家都不陌生,但是真正使用架构,考虑架构的恐怕并不多,随着程序开发的不断增多,本人觉得架构是非常必要的。前不就发帖与大家起讨论了
    发表于 12-07 09:25

    单片机程序如何编写

    设计编写单片机程序是一个渐进的过程不可一蹴而就,毕竟单片机程序是与硬件有密切关系的,我们一般称为单片机
    的头像 发表于 02-12 14:38 3.7w次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>程序</b>如何<b class='flag-5'>编写</b>

    关于在keil 5中编写51单片机程序

    关于在keil 5中编写51单片机程序
    发表于 11-23 16:20 2次下载
    关于在keil 5中<b class='flag-5'>编写</b>51<b class='flag-5'>单片机</b>的<b class='flag-5'>程序</b>

    基于51单片机的呼吸灯程序编写

    利用51单片机编写的呼吸灯小程序,实验程序内容截图分享~
    发表于 11-23 16:36 33次下载
    基于51<b class='flag-5'>单片机</b>的呼吸灯<b class='flag-5'>程序</b><b class='flag-5'>编写</b>