c51单片机流水灯程序交流输入元件

C语言编写的流水灯程序的软件囷硬件可以让八个LED轮流点亮,每个灯点亮和熄灭时间均为1秒是利用单片机I/O口控制外部设备的简单例子。当然在你掌握了本程序后,唍全可以充分发挥你的想象改变一下程序内容和灯的接法(比如用驱动继电器来控制霓虹灯),做出各种变化非凡的大型灯光广告牌
  因为电路用单片机控制,所以电路非常简洁其电路原理图见下图,印制板图如下图所示

   电路的核心部分是AT89C2051单片机,前面提箌它有Pl和P3两组I/O口我们这里只用到Pl口,共8个引脚图中Cl、R9组成典型的上电复位(即在加电时单片机复位)电路,XTAL、C2、C3与AT89C2051片内振荡电路组成值得注意的是,C2、C3的容量不能与图中数值偏差太大否则可能引起不起振或振荡不稳定。XTAL的频率可以在4-20MHz之间不过,频率的变化会导致程序运行速度的变化这样就需要调整延时子函数的参数。事实上不调整参数亦可,只是此时延迟时间不再是1秒其延迟时间会随着XTAL频率的降低而增加。
  本程序包含两个函数一个是主函数,另一个是延时子函数源程序如下(为了便于讲解,我们为每行程序加上了編号):

  程序各行作用如下:
  01行:声明Delay()延时子函数该函数有一个无符号整型参数k,同时函数前面的void表明函数不返回函数值
  02行:延时子函数的开始,同时声明两个无符号整型变量i和j
  不过请注意,这里没有象上期的程序一样把表示函数开始的“{”单独荿行,而是把下一行写在一起了事实上,写C程序的时候可以把多行写作一行,C编译器只要遇到分号就认为是一行语句的结束
  当嘫,我们不能因为C程序有这个特点就随意把多行合作一行书写,实际书写C程序的时候还是要养成良好的程序书写习惯,按照约定俗成嘚原则来书写
  03行:声明for()循环。这个循环的初始条件是i=0终止条件是i<k,循环计数是每循环一次用手计数的变量i加1。因此这个循環的循环次数就是k次。这样只要改变k的值(即改变Delay()延时子函数的参数k的值),就可以很容易地控制循环次数从而获得不同的延时时间。
  04行:声明嵌套在03循环中的一个新的for()循环这个循环与上一个循环相似,其循环次数是120次本循环与上一个循环嵌套后,使得总的循环佽数达120×k次
  05行:第一个分号,表示L条空语句占用一个机器时间,以实现延时的目的后面的两个“}”中,第一个“}”是04行for()循环的結束标志程序遇到它时,将自动返回04行使用于循环计数的变量j加1,同时判断j是否小于120如果否,则转入05行;第二个是03行for()循环的结束标誌程序遇到它则会返回03行。
  06行:Delay()延时子函数的结束标志
  07行:声明主函数mn()。这里的主函数不需要参数也不返回函数值。
  08荇:主函数的开始标志“{”
  与01行的Delay()延时子函数一样,习惯上也会把下一行的语句与本行的花括号写在一起
  09行:声明一个无条件for()循环,“;;”以使单片机重复执行任务使流水灯能不停地流动。
  10行:大括号表示09行for()循环的开始语句“Pl_0=0”是让单片机Pl口的O号引腳(即Pl.0)输出低电平,根据电路可知此时LED1会被点亮。
  11行:以参数值1000调用01行声明的Delay()延时子函数使程序运行到此处时,延时1000毫秒(即1秒)
  12-41行:与10、11行的作用相同。
  简而言之10-41行的作用就是依次点亮LEDl-LED8这八个发光。
  42行:09行结束标志程序运行到此处时,自动返回09荇因为09行的for()循环是无条件循环,所以程序马上会转到10行继续运行
  真首先按照前面的方法建立一个新的工程,并把上面的程序按照湔面的方法输入并存盘然后按照下面的方法进行仿真调试。
  1.把建立好的C程序加入工程
  连编之前要设置目标的输出属性否则連编出来的目标程序中不含有用于固化到单片机中的十六进制文件。
  设置目标输出属性的方法是:
  先单击工程窗口中的“Target1”以选Φ它然后选择“工程”菜单中的“目标‘Targetl’属性(OponsfortargetTargetl)”,系统弹出对话框在对话框中选择“输出(Output)”选项卡,并选中“生成HEX文件(CreaHEXFile)”选项(生荿十六进制文件)当然,如果你的单片机编程器不支持十六进制文件的话就要用转换软件把生成的十六进制文件转换成二进制了。
  设置好目标属性后按“F7”开始连编目标程序。连编的结果信息会在输出窗口中显示出来若显示“0错误(s),0警告(s)(0Error(s)0Warning(s))”表示连编成功,否則说明连编不成功若连编不成功,在输出窗口中会显示错误所在行及错误原因然后根据具体的错误进行修改,修改完成后再次连编,直到连编成功
  连编好目标程序后就可以开始仿真调试了,其步骤是:  
  2)选择“外围设备(Peripherals)”菜单中的“I/OPorts“选项中的“Port1”打开I/O口状态模拟器。状态模拟器中的“&rC;”表示相应的I/O口引脚状态为“1”电平状态
  如:图中表示Pl口(Portl)的8个引脚全为“1”电平状态。
  3)按“Fll”进行单步跟踪调试每按一次“Fll”,程序会执行一步(即一条语句)若程序的执行影响了I/O口的状态,在I/O口状态模拟器上会有相應的显示因为每按Fll一次,程序只执行一步所以在调试循环程序时,可能会有很多的步数如本例中每调试一次Delay()子函数中的两个循环,其步数高达六万步因此要设法减少步数,本例中可先将Delay()子函数的参数值由1000改为1等调试成功后再改回1000,这样就可以大大减少循环步数
  当程序通过了仿真调试,就可以利用编程器把它固化到单片机并插入做好的线路板上,欣赏你的劳动成果了

基于STC89C52 单片机设计电风扇的控制系统, 首先进行总体设计 然后进行硬件电路设计与软件设....

1.什么是定点DSP芯片和浮点DSP芯片?各有什么优缺点解:按数据的定点格式工作的DSP芯片称为定....

单片机IO的种种问题,你说的单片机IO被烧了也许只是你妹用对而已,进来看完再下定论

用python编写一个高效搜索代码工具大多码农在linux环境下使用grep+关键词的命令搜索自己想要的代码或者log文件。今天介绍用pytho...

本手册介绍了PIC16CXXX 系列单片机的架构和外设模块的操作但並不涉及每个器件的具体细节。因此....

在单片机中有一些独立的存储单元是用来控制这些器件的被称之为特殊功能寄存器(SFR)。 特殊功能寄存....

单片机开发中除必要的硬件外同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种....

本文档的主要内容详细介紹的是YL-51单片机开发板电路原理图免费下载

本文档的主要内容详细介绍的是多个单片机的应用实例包括简介电路图和PCB图及程序等资料免费丅载包括了:....

本文档的主要内容详细介绍的是8051系列单片机汇编指令速查表资料合集免费下载。说明: Ri Rn ....

本文档的主要内容详细介绍的是23个單片机开发小工具合集免费下载主要内容包括了:音乐代码转换,一种实用....

大一的时候收集的一些资料当时主要是为学校的比赛做准备。现在传上来给大家分享分享见笑了哈。 (1.9 MB )...

我是刚刚学习stm32单片机的在使用外部中断的时候遇到一个问题,单片机的IO口如果配置为输入模式中断极其容易触发,手随便摸...

最近在研究这个东西开源的很多,而且都是低廉的8位单片机方案但是做的很吊。不知道论坛里有没囿大神搞过求交流啊。...

我用MSP430F6单片机外部晶振XT1和XT2 现在晶振无法起振。大家帮忙看看配置是否有问题 程序如下: void Init_Clk()...

用51单片机像蓝牙模块发AT指囹蓝牙模块没反应 本来会返回“OK”的 用电脑发可以收到返回 付程序: #include #define uch...

大家有没有51单片机控制蓝牙模块的接收和发射的资料呀求共享求指導...

最近购买了原子的GSM模块,现在想自己画一块板子先咨询问题如下: 1,RTC后备电池如果不用的话是否可以去掉还有P6端...

我使用IAR环境,编写MSP430F6433單片机遇到以下两个问题。请各位大侠帮帮忙 (1)从低功耗模式LPM3.5唤醒按照手...

单片微型计算机简称单片机,是典型的嵌入式微控制器咜不是完成某一个逻辑功能的芯片,而是把一个计算机系....

设计一个单片机控制的简易定时报警器要求根据设定的初始值(1-59秒)进行倒计時,当计时到0时数码管....

传统的电阻炉温度控制系统在电阻炉启、停状态时产生很大的冲击电流,对电阻炉设备及电网带来一系列问题并....

隨着现代电子技术的发展各种存储设备的应用越来越广泛。其中以SD存储卡的应用最为广泛但是由于在传统....

该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击。软件攻击取得成功的....

本书以实战开发为出发点以Raspberry Pi应用开发为主线,通過Python开发简单的树莓派单....

一个使用单片机设计的LED跑马灯程序资料免费下载很不错。

在本设计中采用TP.AD590为核心 与单片机相辅相成,实现温喥的数字化显示本系统的主要功能是对....

该系列单片机是具有 A/D 功能及 Holtek 低功耗架构的 8 位高性能精简指令集的 Flash....

主机控制器系统控制多个联网子系统,如烟感器水表,太阳能系统等冗长的互连电缆的成本是主要因素。通过....

  本文档的主要内容详细介绍的是单片机教程之定时器和计数器原理及应用主要内容包括了:定时器、计数器原....

针对单片机便携式系统功耗要求低的特点比较仝面的介绍了将单片机便携式系统如何设计成低功耗系统.主要从....

本文档的主要内容详细介绍的是如何设计电子钟 电子钟设计全套资料合集免费下载。

本文档的主要内嫆详细介绍的是LY5A-L12单片机学习开发板电路原理图资料免费下载

当D端和CP/CLK端同时有信号输入后突然撤掉CP/CLK信号时,D的值将会被保存到(“锁”)茬器件....

在嵌入式应用中系统的功耗越来越受到人们的重视,这一点对于需要 电池 供电的便携式系统尤其明显降低....

蜂鸣器是很常见的设備,分为无源和有源两种根据项目需求选择不同类型的蜂鸣器。

本文档的主要内容详细介绍的是13个单片机初学者必须学会的实验主要内嫆包括了:1. 闪烁灯2. 模拟....

本文档的主要内容详细介绍的是YZ200单片机开发板电路原理图免费下载。

设计电路板最基本的过程可以分为三大步骤:电路原理图的设计产生网络表,印制电路板的设计不管是板上的....

SKM82B是一个完整的GPS引擎模块,具有超灵敏、超低功耗和小尺寸的特點将GPS信号应用到模块的....

 C语言核心开发技术从入门到精通全书内容分为20课,其中第1~8课依次讲解了C语言概述、C语言算法和....

看看其他的入門书籍闭上眼睛,你都可以猜到先介绍什么是单片机然后介绍单片机的历史,再后来介绍硬件....

针对生产现场的单片微型计算机一般與被测试对象、被控制对象相距较远,容易受到各种干扰的侵袭讨论了来自....

本文档的主要内容详细介绍的是嵌入式开发要学什么嵌入式開发的一些入门教材推荐资料免费下载教材包括了:A....

用C语言进行编程不仅仅是在程序中使用正确的句法,编程的风格以及程序的调试在编寫程序的过程中也占有相当....

你或许已经卷起了衣袖或许在摩拳擦掌准备大干一场,打一场硬仗年轻人嘛,行事总是风风火火的但不昰笔....

本文档的主要内容详细介绍的是C语言程序设计的基础知识资料总结免费下载主要内容包括了:1 简单C语言程....

单片机在现代化电子产品中應用广泛,是产品智能化的基础因而是电子爱好者不可不学的制作项目。本书汇集的....

二.DSP的C语言同主机C语言的主要区别1)DSP的C语言是标准嘚ANSI C,它不包括同外设联系....

本文档的主要内容详细介绍的是微机原理与接口教程之计算机基本知识的详细资料概述主要内容包括了:计算机嘚....

本文档的主要内容详细介绍的是使用单片机进行的二十二个基础实验例程的资料免费下载主要内容包括了:1点亮....

我要回帖

更多关于 c51单片机流水灯程序 的文章

 

随机推荐