单片机AT89C51可控流水灯课程设计报告(汇编语言)参考模板
基于单片机AT89C51控制的键控流水灯_课程设计报告

图3-5流水灯模块图
3.3
图3-6 键控流水灯图
4
#include<reg51.h>
#define smg1 P0
#definelsd1P1
#define smg2P2
unsignedinti=1,u=7,j,n,c,k,h=7,s=1;
voidsjms3(void);
voidsjms4(void);
voidsjms5(void);
voidmsms1(void);
voidmsms2(void);
voidmsms3(void);
voidmsms4(void);
voidmsms5(void);
voidzd1(void);
voidzd2(void);
3.2.5
发光二极管就是LED,是一种由磷化镓等半导体材料制成的、能直接将电能转换成光能的发光显示器件。当其内部有一定电流通过时,就是发光。发光二极管具有功耗低、体积小、可靠性高、寿命长和相应快等优点。
流水灯模块采用16个LED发光二极管,通过代码的编写,实现五种流水移动,其中电阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
1
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2
2.1
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。
多模式流水灯设计报告

多模式流水灯设计报告摘要:本设计包括两方面。
一是通过AT89C51单片机实现流水效果,并用一位数码管显示工作模式;二是通过AT89C51单片机实现音乐播放,并在流水灯上显示相应的音阶。
设计中共给出九种工作模式、一次音乐播放。
关键词:AT89C51;数码管;LED;1. 系统硬件设计1.1 主控制模块本系统的主控制模块采用AT89C51单片机,AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS单片机,片内含8k bytes的可反复擦除的flash 只读程序存储器和256k bytes的随机存取数字存储器(RAM),与标准的MSC-51指令系统及8051引脚兼容,片内置通用8位中央处理器(CPU),可以满足不同控制应用场合的要求。
对于本次的多模式流水灯系统,AT89C51可以满足其对LED 灯的控制要求、输出X音阶的控制要求、显示输出工作模式等各模块的控制要求。
AT89C51管脚图1.2 显示模块多模式流水灯的显示模块由LED数码显示管组成。
LED有着显示亮度高、响应速度快的特点,常用的有七段LED显示器。
七段LED显示器由7个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组成字符。
本系统使用的LED数码显示管是共阳极数码显示管,数码显示管与单片机P3口相连接,受单片机控制,通过软件编程使数码显示管显示流水灯的工作模式。
2.系统软件设计软件是多模式流水灯系统的主要组成部分,在系统的软件部份也采用了模块化设计,将系统各模块的功能编写成子函数的形式,这样增加了系统软件的可读性和可移植性。
3. 仿真图Protues仿真图4.总结通过这次的课程设计,我们把平时学习到的知识应用到了实际中,加深了对所学知识的理解。
同时,我们从这次课程设计中也意识到自己对所学知识的掌握不够深入,对单片机系统的了解还不够细致,以及在编程能力上的缺陷。
在本次课程设计的过程中,我们深刻体会到了团队合作的重要性,只有一个团队齐心协力,每个成员各司其职才可以把工作做好。
流水灯控制系统设计

目录第1章方案的论述以与与最终方案的确定......................... - 1 -1.1第一种方案的论述. (1)1.2第二种方案的论证 (1)1.3第三种方案的论述 (1)1.4最终方案的确定 (2)第2章硬件设计.................................................. - 3 -2.1总体方案设计分析. (3)2.2系统逻辑框图 (3)2.3主要元器件简介 (3)2.3.1 8086CPU ························································································- 3 -2.3.2 地址锁存器74LS373的内部电路与工作原理························- 6 -2.3.3 可编程外围接口芯片8255A的简介.........................................- 8 -第3章软件设计.................................................- 13 -3.1程序流程设计.. (13)3.1.1 主程序流程·················································································· - 13 -3.1.2 程序流程图·················································································· - 14 -3.1.3 系统硬件连接图········································································· - 15 -3.1.4 源程序设计(附录) ....................................................................... - 15 -3.2设计最终理想结果与原理.. (15)3.2.1 左向移动流水灯········································································· - 15 -3.2.2 右向移动流水灯········································································· - 15 -设计心得·························································- 17 -参考文献·························································- 18 -附录······························································- 19 -第1章方案的论述以与与最终方案的确定1.1 第一种方案的论述第一种方案,使用AT89C51单片机实现流水灯闪烁设计。
单片机流水灯设计报告

第一部分:实训准备1.摘要:近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。
3.系统设计1.硬件框图2.总设计图3.选用AT89C51的引脚功能 STC89C51 复位电路 键盘震荡电路 流水灯电路XTAL1:单芯片系统时钟的反向放大器输入端。
XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。
个控制。
当按下S2后能实现D1和D7同时亮其他不亮,然后D2和D6亮,依此类推。
当按下复位S1,然后按下S2实现LED灯从D7到D1循环亮,按下S1然后按下S3实现LED从D1到D7的循环亮。
硬件详细设计1.复位电路部分如图所示,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。
2.晶振部分产生时钟信号3.开关部分S2、S3、S4 分别控制3种LED显示效果,这里就不用详细说明了。
4.LED显示部分限流电阻为470欧姆,经过的电流大概为10mA。
4.软件详细设计1.软件框图开始检查是否有键按下读取键值根据键盘指令执行流水灯显示效果执行结束5.Protuce仿真Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。
本设计利用Keil μVision3,在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生(2) 在wave 6000软件仿真平台上输入源程序,并进行编译、生产机器码。
基于单片机AT89C5控制的花样调速流水灯课题设计报告

基于单片机AT89C5控制的花样调速流水灯课题设计报告宁波技师学院课程设计报告论文题目花样调速流水灯专业班级学生姓名学号指导教师宁波技师学院电气技术系2013 年9月目录第1章系统设计 (1)1.1 数码管显示方案 (1)1.2 按键输入方案 (1)第2章硬件电路设计 (2)2.1电路原理 (2)2.2系统工作流程 (2)第3章软件设计 (3)3.1系统资源分配 (4)3.2软件模块设计 (6)第四章调试¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨94.1 正常现象¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨104.2出现的故障¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨11第5章总结 (7)参考文献 (7)附录1硬件电路图 (8)附录2软件代码 (14)第1章系统设计1.1 数码管显示方案通常数码管显示有两种方式:动态显示和静态显示。
静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。
基于at89c51的流水灯设计

8只LED从左到右闪烁
实验原理
AT89C51 单片机是一种低功耗且电压性能高的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,6个中断源,2个中断优先权2个16位可编程定时器/计数器,片内集成4K字节可改变程序的FLASH 内存,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计的需要。
实现发光二极管(LED)闪烁实际上就是让LED亮一下灭一下,即让LED导通一会儿关断一会即可。
因此,只需要将LED发光二极管的一个极接到电源上,另一个极接到单片机32个I/O口的任何一个即可。
本实验采用流水灯形式,8只LED灯从左到右闪烁,可应用与霓虹灯,夜间彩灯等。
1.C文件程序
/* 名称:8只LED从左到右闪烁*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
P0=0xfe;
while(1)
{
P0=_crol_(P0,1); //P0的值向左循环移动
DelayMS(150);
}
}
2.硬件仿真
烧入kell生成的.hex文本
运行:
结果:8只LED灯从左到右闪烁。
单片机课程设计报告流水灯(WORD档)

XX工程学院单片机课程设计报告题目:流水灯学生姓名:学号:系部名称:职业技术学院班级:机电一体化Z11-1 指导教师:目录摘要 (3)一、课程设计题目 (4)二、设计任务及要求 (4)三、实验方案 (4)四、流程图 (4)五、硬件电路 (6)六、软件设计 (6)1 主体程序 (6)2 键扫描子程序 (6)3 闪烁控制程序 (6)4 延时子程序 (6)5 源程序设计 (7)七、功能调试 (12)八、设计总结 (12)九、参考文献 (13)【摘要】单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
一、课程设计题目:流水灯二、设计任务及要求:任务:完成对接在P1,P3口的发光二极管闪亮控制程序的设计1.用程序延时方法让P1的一个LED小灯每隔1S交替闪亮2.用程序延时方法让P1的8个LED小灯循环(每个亮50MS)闪亮3.用程序延时方法让P1的8个LED小灯追逐闪亮(50MS间隔变化)4.用程序延时方法让P1、P3的16个LED小灯循环(每个亮50MS)闪亮要求:1. 根据硬件电路原理,画出接线2. 设计出相应的软件程序三、实验方案:方案:单片机采用40脚的89C52标准双列直插系列,有4个标准输入/输出端口共32位控制端口。
本次设计采用并行口低电平(吸电流)直接驱动LED发光管发光形式,选择了P1和P3口的16个端口进行模拟LED小灯控制,如要多些小灯单元可再将P2口、P0口及其他空余端口用LED小灯驱动控制。
因系统功能要求能控制灯亮的方式,在P0.0—P0.3端口接了4个按键小开关,每个小开关可控制一种亮灯方式。
在端口较紧张的情况下,LED小灯驱动也可用串入/并出移位寄存器(如74HC595),单片机用并行移位方式进行驱动。
单片机流水灯课程设计报告书

基于AT89C51单片机的流水灯1 引言1.1 课题简介单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:在智能仪器仪表上的应用,例如精密的测量设备;在工业控制中的应用,用单片机可以构成形式多样的控制系统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
单片机在医用设备领域中的应用,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等;在各种大型电器中的模块化应用,如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
本系统就是充分利用了8051芯片的I/O引脚。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录目录 (1)第一章课题的意义及应用 (2)第二章系统的总体设计 (3)2.1 设计方法 (3)2.2 数码管显示方案 (3)2.3 键盘输入方案 (4)第三章硬件电路设计 (4)3.1电路原理 (4)3.2单片机最小系统 (5)3.3系统工作流程 (5)第四章程序设计 (6)4.1系统总体结构框图 (6)4.2 系统流程图 (6)第五章调试 (7)5.1正常现象 (7)5.2出现的故障 (7)第六章心得体会 (9)参考文献 (9)附录1 (10)程序: (10)附录2 (19)仿真电路图: (19)实验箱接线图: (19)流程图: (20)第一章课题的意义及应用当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
计算机作为一种快速通用的计算工具方便了用户的使用。
计算机可谓是我们最亲密的电子伙伴之一。
本设计着重在于分析计算机软件和开发过程中的环节和步骤,并从实践经验出发对计算机设计做了详细的分析和研究。
单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中。
单片微型计算机是微型计算机称单片机,特别适用于控制领域,故又称为微控制器。
单片机的应用日益广泛,如应用在仪器仪表,家用电器和专卖装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。
本系统就是充分利用了AT89C51芯片的I/O引脚。
系统以采用MCS-51系列单片机为中心器件来设计LED流水灯系统,实现8个LED流水灯的各种显示方式,并实现循环的速度可调,暂停及复位功能。
通过本次课题设计,应用《单片机原理及接口技术》等所学相关知识及查阅资料,完成可控流水灯设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
第二章系统的总体设计2.1 设计方法本课题使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
在此还应注意一点,由于人眼的视觉暂留效应以单片机执行每条指令的时间很短,在控制二极管亮灭的时候应该延时一段时间,否则就看不到“流水”效果了。
2.2 数码管显示方案通常数码管显示有两种方式:动态显示和静态显示。
静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。
但占用I/O口线多,每一个LED都要占用一个I/O口硬件开销大,电路复杂。
需要几个LED就必须占用几个并行I/O口,比较适用于LED 数量较少的场合。
当然当LED数量较多的时候可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较复杂。
LED动态显示硬件连接简单,但动态显示扫描方式需要占用CPU较多的时间,在单片机没有太多实时测试任务的情况下可以采用。
本系统需要采用4位LED数码管来显示流水灯闪烁方式的序号,故本系统选择动态显示方案。
2.3 键盘输入方案单片机的键盘结构可以采用独立式按键和矩阵式键盘两种。
独立式按键指直接用I/O口线构成单个按键电路,可在系统中键较少时使用。
在按键比较多的时候可采用矩阵式键盘。
本系统要设置6个按键,其中1个键用来开启和关闭整个流水灯系统并控制流水灯的闪烁方式,还有一个键也是控制流水灯的闪烁方式,另外2个键控制流水灯闪烁速度,还有一个按键用来控制流水灯的暂停和继续。
最后一个按键用来控制流水灯的复位,故采用独立式按键。
第三章硬件电路设计3.1电路原理本硬件的核心是MCS-51单片机,我们选用AT89C51。
因无需扩展外部RAM。
系统采用4位共阳极数码管,用来显示各种闪烁方式的序号。
系统采用6个按键控制,其中1个键用来开启和关闭整个流水灯系统并控制流水灯的闪烁方式,还有一个键也是控制流水灯的闪烁方式,另外2个键控制流水灯闪烁速度,还有一个按键控制流水灯的暂停和继续。
最后一个按键控制流水灯的复位。
系统在P1.0到P1.8上接了8个发光二极管,在按一下启动键时,P1.0的二极管亮,此时从P1.0到P1.8的二极管依次闪烁:1.若此时按按键1,2,流水灯将2个2个,隔1个亮1个,从中间向两边并从两边向中间或4个4个依次闪烁。
2.若此时按按键3,4,流水灯的闪烁频率将改变。
3.若此时按按键5,将暂停流水灯效果,再按一次又可继续之前的效果。
4.若此时按按键6,将复位流水灯(跳到第一种方式)。
3.2单片机最小系统图3—13.3系统工作流程按设计要求,规划了可控流水灯的工作流程如下:1.按下启动按钮(按键1),流水灯依次闪烁,数码管将显示1为第一种闪烁方式。
若在此时按下按键3,4灯光将改变频率显示(共有3种速度可供调节)。
并且若此时按按键5,将暂停彩灯效果,再按一次又可继续之前的效果。
2.按下按键1流水灯将2个2个闪烁,此时数码管将显示2表示为第2种闪烁方式,若在此时按下按键3,4灯光将改变频率显示(共有3种速度可供调节)。
并且若此时按按键5,将暂停彩灯效果,再按一次又可继续之前的效果。
3.再按下功能键1流水灯将隔1个亮1个,此时数码管将显示3表示为第3种闪烁方式,再按下功能键3,4灯光将改变频率显示(共有3种速度可供调节)。
并且若此时按按键5,将暂停彩灯效果,再按一次又可继续之前的效果。
4.再次按下按键1流水灯将从中间向两边并从两边向中间闪烁,此时数码管将显示4表示为第4种闪烁方式,再按下功能键3,4灯光将改变频率显示(共有3种速度可供调节)。
并且若此时按功能键5,将暂停彩灯效果,再按一次又可继续之前的效果。
5.再按下按键1流水灯将4个4个闪烁,此时数码管将显示5表示为第4种闪烁方式,再按下按键3,4灯光将改变频率显示(共有3种速度可供调节)。
并且若此时按按键5,将暂停彩灯效果,再按一次又可继续之前的效果。
6.再按下停止按钮系统将停止运行。
7.按按键2改变流水灯闪烁方式数码管将显示的数字依次减少。
8.按按键6将复位流水灯(跳到第一种方式)。
第四章 程序设计4.1系统总体结构框图系统的结构框图如图4—1所示。
图4—14.2 系统流程图整个系统的总体程序,电路通电后,若按一下按键1,为第一种方式;若再按一下按键1,此时为第二种方式;再按一下为第三种方式;若按下按键2,此时为第二种方式;若再按一下按键2,此时为第一种方式;再按一下按键2,此时为第五种方式。
每种方式各有它的流水灯花样。
(程序及流程图请看附录)第五章调试5.1正常现象按下按键1,灯开始闪烁。
开始运行,这是第一种方式,然后在第一种方式中又有四种闪烁方式,这时候就要用到按键1和2了,按下按键1,2切换方式。
按一下,切换一种方式,再按一下切换另一种方式。
按下按键1,2灯开始闪烁,切换五种方式。
按下按键3,4灯光改变频率显示。
按下按键5彩灯效果暂停,再按一次又继续之前的效果。
最后,就是关闭,按下按键1。
5.2出现的故障在调试当中,出现了按下按键5,不能暂停彩灯效果,通过认真修改程序后,按下按键5,暂停彩灯效果,再按一次又继续之前的效果。
图5—1在用实验箱进行实验时,不能实现流水灯效果。
认真思考及检查线路后,发现是烧接程序时步骤出错。
然后重新按照步骤:擦除芯片——打开文件——写Flash——校验Flash操作,最后实现了可控流水灯功能。
图5—2图5—3第六章心得体会本次课程设计的题目是可控流水灯的设计,我针对这个题目的任务要求从课本上,上网等渠道获取相关信息及参考资料。
之后对电路原理图和程序不断地修改,最终达到要求的效果。
但由于水平和时间有限,程序和设计中还有许多不足之处。
我会在以后的学习中不断努力。
通过此次设计使我对应用系统设计思路有了一定的掌握,对硬件和软件的实践有了一定的了解。
系统采用4位共阳极数码管来显示数字,采用6个按键,用来调整流水灯的闪烁方式,闪烁频率,暂停及复位。
将所学的知识得到了一定的贯通,进一步掌握了独立设计的本领,深入领会单片机应用系统的软、硬件调试方法和系统研制开发过程。
感谢老师及同学的帮助,这次课程设计收获颇多。
参考文献[1] 胡健单片机原理及接口技术,机械工业出版社。
[2] 百度文库。
附录1程序:ORG 0000HAJMP STARTORG 000BHAJMP T_0 ;20ms延时中断ORG 001BHAJMP T_1 ;100ms延时中断;_ _ 伪定义_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ YANS_EN BIT01H ;延时使能标志,1有效ORG 0030H;_ _ 初始化_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ START:MOV P2, #01H ;打开四位一体数码管COM1端MOV SP, #60H ;设置堆栈指针在(60H)MOV R1, #0 ;R1 存放按键1,2(选择工作方式)MOV R2, #1 ;R2 存放按键3,4(变换延时时间)MOV R3, #0 ;R3 延时辅助MOV R4, #0 ;R4 流水灯1查表辅助MOV R5, #0 ;R5 流水灯2查表辅助MOV R6, #0 ;R6 流水灯3查表辅助MOV R7, #0 ;R7 流水灯4查表辅助MOV R0, #0 ;R0 流水灯5查表辅助MOV 30H, #2 ;30H 存放延时数据2x100ms即200ms;中断初始化MOV IE, #10001010B;T_0、T_1延时中断使能MOV IP, #00000000B;无中断优先MOV TMOD,#00010001B ;T_0、T_1延时中断工作方式一MOV TH0, #0D8HMOV TL0, #0F0H ;"D8F0" = "55536" (20000us即20ms) MOV TH1, #3CHMOV TL1, #0B0H ;"3CB0" = "15536" (100000us即100ms) MOV TCON,#01010000B ;启动T_0、T_1延时;_ _ 主程序_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _MAIN:CJNE R1, #1, L1 ;流水灯1LCALL LOOPL1:CJNE R1, #2, L2 ;流水灯2LCALL LOOP1L2:CJNE R1, #3,L3 ;流水灯3LCALL LOOP2L3:CJNE R1, #4, L4 ;流水灯4LCALL LOOP3L4:CJNE R1, #5, L5 ;流水灯5LCALL LOOP4L5:CJNE R1, #6, L6 ;关闭MOV P1, #0FFHMOV P0, #0FFHLCALL STARTL6:LJMP MAIN;_ _ 流水灯1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LOOP:JNB YANS_EN,$ ;延时CLR YANS_EN ;关闭延时使能标志MOV DPTR, #TAB1MOV A,R4MOVC A, @A+DPTRMOV P1,AMOV P0, #0F9H ;数码管显示1INC R4CJNE R4, #16, BY1MOV R4, #0BY1:RET;_ _ 流水灯2 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LOOP1:CLR YANS_EN ;关闭延时使能标志MOV DPTR, #TAB2MOV A, R5MOVC A, @A+DPTRMOV P1, AMOV P0, #0A4H ;数码管显示2INC R5CJNE R5, #8,BY2MOV R5, #0BY2:RET;_ _ 流水灯3 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LOOP2:JNB YANS_EN, $ ;延时CLR YANS_EN ;关闭延时使能标志MOV DPTR, #TAB3MOV A, R6MOVC A, @A+DPTRMOV P1, AMOV P0, #0B0H ;数码管显示3INC R6CJNE R6, #16, BY3MOV R6, #0BY3:RET;_ _ 流水灯4 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LOOP3:CLR YANS_EN ;关闭延时使能标志MOV DPTR, #TAB4MOV A, R7MOVC A, @A+DPTRMOV P1, AMOV P0, #99H ;数码管显示4INC R7CJNE R7, #10, BY4MOV R7, #0BY4:RET;_ _ 流水灯5 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ LOOP4:JNB YANS_EN, $ ;延时CLR YANS_EN ;关闭延时使能标志MOV DPTR, #TAB5MOV A, R0MOVC A, @A+DPTRMOV P1, AMOV P0, #92H ;数码管显示5INC R0CJNE R0, #40, BY5MOV R0, #0BY5:RET;_ _ 中断T_0(20ms延时执行识别按键) _ _ _ _ _ _ _ _ _ _ _T_0:CLR ET0PUSH PSWPUSH ACCMOV TH0, #0D8HMOV TL0, #0F0H ;"D8F0" = "55536" (20000us即20ms) LCALL SBAJ ;识别按键POP ACCPOP PSWSETB ET0RETI;_ _ 中断T_1(100ms延时)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _T_1:CLR ET1PUSH PSWPUSH ACCMOV TH1, #3CHMOV TL1, #0B0H ;"3CB0" = "15536" (100000us即100ms) INC R3MOV A,R3CJNE A,30H,YSMOV R3, #0SETB YANS_EN ;启动延时使能YS:POP ACCPOP PSWSETB ET1RETI;_ _ 按键识别_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _SBAJ:;按键1,2(选择工作方式)JB P3.0, L7JNB P3.0, $INC R1L7:JB P3.1, L8JNB P3.1, $DEC R1CJNE R1, #0,L7MOV R1, #5L8:;按键3,4(变换延时时间)JB P3.2, L9JNB P3.2, $INC R2LCALL YSGX ;调用延时数据更新L9:JB P3.3, L10JNB P3.3, $INC R2LCALL YSGX1 ;调用延时数据更新L10:;按键5(暂停继续)JB P3.4, L11JNB P3.4, $CPL TR1L11:;按键6(复位)JB P3.5, L12JNB P3.5, $MOV R1,#1L12:RET;_ _ 延时数据更新_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ YSGX:CJNE R2, #1, BS1MOV 30H, #10 ;10x100ms即1sMOV R3, #0SJMP BS3BS1:CJNE R2, #2, BS2MOV 30H, #5 ;5x100ms即500msMOV R3, #0SJMP BS3BS2:CJNE R2, #3, BS3MOV R2, #0MOV 30H, #2 ;2x100ms即200msMOV R3, #0BS3:RETYSGX1:CJNE R2, #1, BS11MOV 30H, #2 ;2x100ms即200msMOV R3, #0SJMP BS33BS11:CJNE R2, #2, BS22MOV 30H, #5 ;5x100ms即500msMOV R3, #0SJMP BS33BS22:CJNE R2, #3, BS33MOV R2, #0MOV 30H, #10 ;10x100ms即1sMOV R3, #0BS33:RET;_ _ 流水灯数据_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _TAB1: ;流水灯1DB 0FEH, 0FCH, 0F8H, 0F0H, 0E0H, 0C0H, 80H, 00H DB 80H, 0C0H, 0E0H, 0F0H, 0F8H, 0FCH, 0FEH, 0FFHTAB2: ;流水灯2DB 0FCH, 0F0H, 0C0H, 00H, 0C0H, 0F0H, 0FCH, 0FFHTAB3: ;流水灯3DB 0FEH, 0FAH, 0EAH, 0AAH, 0FFHDB 0FDH, 0F5H, 0D5H, 55H, 0FFHDB 0AAH, 0FFH,55H, 0FFH,00H, 0FFHTAB4: ;流水灯4DB 0E7H, 0C3H, 81H, 00H, 0FFHDB 7EH, 3CH, 18H, 00H, 0FFHTAB5: ;流水灯5DB 0FBH, 0F3H, 0E3H, 0C3H, 0FFH DB0F7H, 0E7H, 0C7H, 87H, 0FFHDB 0EFH, 0CFH, 8FH, 0FH, 0FFH DB 0DFH, 9FH, 1FH, 1EH, 0FFH DB 0BFH, 3FH, 3EH, 3CH, 0FFH DB 7FH, 7EH, 7CH, 78H, 0FFH附录2仿真电路图:实验箱接线图:流程图:。