void main() { P1=0XFF; /定义初始状态为全灭/while(1) { delay(2000); P1=0X7e; delay(2000); P1=0Xbd; delay(2000);P1=0Xdb;delay(2000); P1=0Xe7; delay(2000); P1=0Xdb;delay(2000); P1=0Xbd;delay(2000); P1=0X7e; delay(2000); P1=0XFF; /此循环使得发光二极管按照07,16,25,34,43,52,61,70的顺序循环交替两两点亮/} /end while/}/end main/
编制项目建议书阶段。
开展可行性研究和编制设计任务书阶段。
设计阶段。
安排计划阶段。
建设准备阶段。
建设施工阶段。
生产准备阶段。
竣工验收投产及项目后评价阶段。
建设程序是指建设项目从设想、选择、评估、决策、设计、施工到竣工验收、投入生产整个过程中应当遵守的内在规律和组织制度。
具体解释如下:
编制项目建议书。对建设项目的必要性和可行性进行初步研究,提出拟建项目的轮廓设想。
开展可行性研究和编制设计任务书。具体论证和评价项目在技术和经济上是否可行,并对不同方案进行分析比较;可行性研究报告作为设计任务书(也称计划任务书)的附件。设计任务书对是否上这个项目,采取什么方案,选择什么建设地点,作出决策。
进行设计。从技术和经济上对拟建工程作出详尽规划。大中型项目一般采用两段设计,即初步设计与施工图设计。技术复杂的项目,可增加技术设计,按三个阶段进行。
安排计划。可行性研究和初步设计,送请有条件的工程咨询机构评估,经认可,报计划部门,经过综合平衡,列入年度基本建设计划。
进行建设准备。包括征地拆迁,搞好"三通一平"(通水、通电、通道路、平整土地),落实施工力量,组织物资订货和供应,以及其他各项准备工作。
组织施工。准备工作就绪后,提出开工报告,经过批准,即开工兴建;遵循施工程序,按照设计要求和施工技术验收规范,进行施工安装。
生产准备。生产性建设项目开始施工后,及时组织专门力量,有计划有步骤地开展生产准备工作。
竣工验收投产及项目后评价。按照规定的标准和程序,对竣工工程进行验收(见基本建设工程竣工验收),编制竣工验收报告和竣工决算(见基本建设工程竣工决算),并办理固定资产交付生产使用的手续。小型建设项目,建设程序可以简化。项目完工后对整个项目的造价、工期、质量、安全等指标进行分析评价或与类似项目进行对比。
流程:
1点亮1个灯;
2延时100毫秒
3灭第一个灯,点亮第二个灯;
4延时100毫秒;
。。。
依次类推,直到灭第8个灯,再返回到1,重新开始。
我所能想到的最简单做法,是用振荡时间继电器、内存时钟、变址寻址输出,步循环方式来做的。如图所示。
这是启动初始化,I00是启动按键,I01是停止按键,M00是启动自锁,MW10是第一循环步也就是每个灯的30秒(亮10秒,闪10秒和停10秒)
mw20是总循环步,也就是重复3次的计数器。
MW40是输出控制,也就是输出到那个Q点的控制,可以叫控制编号。
总循环、T1和T2是两个振荡时间继电器。
每次T1满足,则ADD_I一次MW10,这里本应该使用上升沿,但是由于T1只打开10ms,因此没有用上升沿也有效,不过在上传的程序中已经加入了上升沿。
第一个CMP>=I部分,比较MW10是否是大于等于3,如果大于等于3,则认为已经过了30秒(第0次,第1次和第2次),那么将MW10写0,将输出地址MW40+1,在来比较,是否已经移到最后一个灯(也就是灯=8,在这里灯的编号是0、1、2、3、4、5、6、7,第八个灯不存在所以到第八个灯的时候,就认为灯总循环超过了8次,因此要将灯重新给第0编号,并将总循环次数+1
第二个CMP>=I部分,比较总循环次数,超过三次则将运行信号复位,即停止运行标志。
程序段3,合并输出部分,将第一步的常亮和第2部的闪烁合并输出给中间位M300(第三部是熄灭,因此第三部等于的时候不输出,M300自然熄灭,需要注意的是M505是内存时钟位,也就是在硬件配置的时候将MB50作为了周期/时钟存储器,但是M505不是05HZ频率的时钟,而是1HZ频率的,用05HZ频率的需要M507,而我在这里用M505是为了闪烁更快更好看。具体的内存时钟位使用可以百度周期/时钟存储器。在上传的版本中更新为正确的内存时钟了。
程序段4是输出构建
L MB41是将MW40的地位直接直接放入寄存器,然后LAR1是将寄存器1直接放入指针寄存器,T MD80只是我为了监视使用的,垃圾语句无意义,在上传的版本中删去了。然后直接与M300的状态,输出给Q地址,地址由指针来变化,实际上也就是输出到Q00到Q07的输出地址。
停止时(没有运行信号),将整个Q00到Q17清零,这属于笔误,正确的写法应该是move到QB0,上传的版本更正了。
程序基本是这样,除非有理解错误,比如说题目的重复三次是指最后一个灯(Q07)重复亮闪灭三次,那样也很简单,不过这里不多重复了。
程序如附件。当然这样的写法还存在一定的小bug,比如说实际上亮只有9秒990毫秒,不过10个毫秒的差距不在这个讨论范围中。
这个题目很有意思,可以通过这样的间接寻址的方式来做,也可以硬写每个输出点的方式来做。
以上就是关于如何编写一个C程序使51单片机LED灯按下列要求点亮全部的内容,包括:如何编写一个C程序使51单片机LED灯按下列要求点亮、我国的建设程序划分的八个步骤、单片机8个流水灯依次亮的c程序流程图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)