单片机16盏流水灯控制程序设计三.docVIP

  • 160
  • 0
  • 约1.1千字
  • 约 2页
  • 2019-07-03 发布于江西
  • 举报
项目编号 EX3-4 项目名称 单片机端口输出方波 班级 楼宇081 小组 完成时间 4 完成人员 林宗跃 自我评价 良好 教师评价 任务要求:设计一个利用51单片机I/O口输出信号,控制16个发光二极管每0.2s交替闪亮,实现跑马灯,即D1-D2-…D15-D16-D…循环电缆。闪亮时间由简单延时电路实现。在MedWin集成开发环境中编辑、编译控制程序,并产生代码,在Proteus平台里仿真系统,撰写练习报告 任务分析:要求实现16盏灯的闪烁,每次灯亮的时间为0.2s形成跑马灯。可以采用51单片机的I/O口(此时用作输出)中的P0和P1口来控制,通过指令周期性地重复改变此I/O口的电平状态,此时的间隔时间可以通过执行延时指令(无意义的指令)来实现。根据状态控制码的分析,我们可以采用P1口的状态依次左移后再使P0口的状态依次右移来实现设计要求。 设计步骤: 1:硬件电路设计 (1)思路。根据设计要求分析,可以将16个发光二极管分别接到P0口(P0.0~P0.7)和P1口(P1.0~P1.7)的端口上,采用直接驱动,为提高驱动电流能力,采用共阳极接法。单片机其他电路接成最小系统即可。 (2)在Proteus中画好电路图,如图下图所示。 练习报告 设计内容:打开MedWin软件,新建源程序文件,编辑源代码,编译源程序,诺没有错,则产生代码;诺有错,则修改错误。仿真调试程序代码,在Proteus绘制16盏流水灯控制程序设计三,加载程序代码,调试。程序代码如下: ORG 0000H LJMP START ORG 0030H START: MOV A,#0FEH LOOP: MOV P1,A RL A ACALL DELAY CJNE A,#0FEH,LOOP MOV A,#07FH LOOP3: MOV P0,A RR A ACALL DELAY CJNE A,#07FH,LOOP3 SJMP START DELAY: MOV R0,#100 DL1: MOV R1,#144 DL2: MOV R2,#16 DJNZ R2,$ DJNZ R1,DL2 DJNZ R0,DL1 RET END 结果与分析:在MedWIN软件中单步仿真调试的话,则可以在端口窗口中观察到16盏灯随着程序的有规律地闪烁 序号 注意事项 1 所有程序编译均用英文状态下输写,并且最好是大写 2 在输入程序中使用TAB键隔开 3 程序编译必须要有END指令 4 “0”与“O”的区别 备注:在进行程序设计时,需要根据具体问题具体分析。输入时要仔细,不要把字母输错

文档评论(0)

1亿VIP精品文档

相关文档