单片机跑马灯实验报告(单片机跑马灯实验报告实验目的)
单片机原理流水灯实验报告
单片机原理流水灯实验报告:
本实验的目的是通过使用单片机,来实现流水灯的功能。实验中,使用了AT89C51单片机,通过设置定时器,实现了不同的流水灯灯序,并使用外部中断按键,来控制流水灯的开关。实验的结果表明,单片机通过定时器和外部中断按键,可以实现流水灯的功能。
拓展:本实验的
拓展可以包括,使用其他单片机,如STC89C52、STM8S103等,来实现流水灯的功能;另外,可以在实验中增加按键,实现不同的灯序变化;可以添加LCD显示屏,显示当前灯序;还可以通过设置定时器,实现时间控制,实现定时开启和关闭流水灯。
单片机跑马灯实验中,改变延时其的常数,使用全速运行命令,显示发生什么变化?
单片机跑马灯的流动速度与延时长短有关,延时越长,跑的越慢。反之,延时越短,跑的越快,所以并没有什么全速运行命令,当流动速度快到一定程度后,看剧的效果就是全亮了。这与多位数码管动态显示是一个原理,如果每一位显示延时也和流水相近,同样,看到的效果是数字在跑,而延时足够短,看起来就全亮了,其实还是在流动,只是因为太快了,看不出流动了。
单片机c语言流水灯的实验报告
这个怎么写??X个发光二极管连续依次闪烁,往复不断。能够成功正确地完成编写的程序。体现了单片机工作正常,语句使用得当,试验完美成功。
单片机实训总结范文5篇
单片机实训课程,是农业工程类专业非常重要的专业技术课,是后续专业实践课的基础,大家做好实训 总结 ,总结更多的 经验 。下面是我给大家带来的单片机实训总结 范文 _单片机实训 工作总结 ,以供大家参考,我们一起来看看吧!
? ? ↓ ↓ 更多关于 “ 实 训总 结 ” 内容推荐 ↓ ↓
? ? ★ 单 片机实 训报 告 ★
? ? ★ 单 片 机实 训心得 体 会 ★
? ? ★ 实 训总 结报 告范 文 ★
? ? ★ 实 训总 结与心 得 体 会 ★
? ? ★ 实 习实训总 结报 告 ★
▼ 单片机实训总结范文篇一:
通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。
▼ 单片机实训总结范文篇二:
通过这一个学期的单片机学习,我收获了很多关于单片机的知识,并且这些知识和日常的生活息息相关。了解了一些简单程序的录入,LED 显示器 、键盘、和显示器的应用和原理。
LED显示器:LED显示器是由发光二管组成显示字段的器件。通常的8段LED显示器是由8个发光二极管组成,LED显示器分共阳极和共阴极两种。有段选码和和位选码。当LED显示器每段的平均电流位5MA时,就有较满意的亮度,一般选择断码5-10MA电流;位线的电流应选择40-80MA。LED显示器的显示方式有动态和静态两种。7289A芯片是具有SPI串行接口功能的显示键盘控制芯片,它可同时取得8位共阴极数码管和64个键的键盘矩阵。7289A的控制指令分为两类:8位宽度的单字节指令和16位宽度双字节指令;还有闪烁指令和消隐指令。7289A采用串行方式SPI总线与微处理器通信;7289A与AT89C52接口电路,在实际电路中无论接不接键盘,电路中连接到其各段上的8个 100千欧的下拉电阻均不可以省去,如果不接键盘而只接显示器可以省去8个10千欧电阻,若仅接键盘而不接显示器,可省去串入DP及SA-SG连线的8个220欧电阻,7289A还需要外接晶体振荡电路。液晶显示器简称LCD,其显示原理是用经过处后的液晶具有能改变光线传输方向的特性,达到显示字符和图形的目的。最简单的笔段式液晶显示器类似于LCD显示器,可以显示简单的字符和数字,而目前大量使用的是点阵式LCD显示器,既可以显示字符和数字也可以显示汉字和图形。如果把LCD显示屏、背光可变电源、接口控制逻辑、驱动集成芯片等部件构成一个整体,是的与CPU接口十分方便。
键盘:键盘是最常见的计算机输入设备,它广泛应用于微型计算机和各种终端设备上。计算机操作者通过键盘向计算机输入各种指令、数据,指挥计算机的工作。按照键盘的工作原理和按键方式的不同,可以划分为四种:机械式键盘采用类似金属接触式开关,工作原理是使触点导通或断开,具有工艺简单、噪音大、易维护的特点。 塑料薄膜式键盘键盘内部共分四层,实现了无机械磨损。其特点是低价格、低噪音和低成本,已占领市场绝大部分份额。 导电橡胶式键盘触点的结构是通过导电橡胶相连。键盘内部有一层凸起带电的导电橡胶,每个按键都对应一个凸起,按下时把下面的触点接通。这种类型键盘是市场由机械键盘向薄膜键盘的过渡产品。 无接点静电电容式键盘使用类似电容式开关的原理,通过按键时改变电极间的距离引起电容容量改变从而驱动编码器。特点是无磨损且密封性较好。
按照按键方式的不同键盘可分为接触式和无触点式两类。接触式键盘就是我们通常所说的机械式键盘,它又分为普通触点式和干簧式。普通触点式的两个触点直接接触,从而使电路闭合,产生信号;而干簧式键盘则是在触点间加装磁铁,当键按下时,依靠磁力使触点接触,电路闭合。与普通触点式键盘相比,干簧式键盘具有响应速度快、使用寿命长、触点不易氧化等优点。无触点式键盘又分为电容式、霍尔式和触摸式三种。其中电容式是我们最常用到的键盘类型,它的触点之间并非直接接触,而是当按键按下时,在触点之间形成两个串联的平板电容,从而使脉冲信号通过,其效果与接触式是等同的。电容式键盘击键时无噪声,响应速度快,但是价格很高一些。
显示器:按照显示器的显示管分类CRT、LCD。按显示色彩分类单色显示器、彩色显示器。按大小分类通常有14寸、15寸、17寸和19寸,或者更大。显示管的屏幕上涂有一层荧光粉,电子枪发射出的电子击打在屏幕上,使被击打位置的荧光粉发光,从而产生了图像,每一个发光点又由“红”“绿”“蓝”三个小的发光点组成,这个发光点也就是一个象素。由于电子束是分为三条的,它们分别射向屏幕上的这三种不同的发光小点,从而在屏幕上出现绚丽多彩的画面。显示器显示画面是由显示卡来控制的。若仔细观察显示器上的文本或图像是由点组成的,屏幕上点越多越密,则分辨率越高。
屏幕上相邻两个同色点的距离称为点距,常见点距规格有0.31mm、0.28mm、0.25mm等。显示器点距越小,在高分辨率下越容易取得清晰的显示效果。电子束采用光栅扫描方式,从屏幕左上角一点开始,向右逐点进行扫描,形成一条水平线;到达最右端后,又回到下一条水平线的左端,重复上面的过程;当电子束完成右下角一点的扫描后,形成一帧。此后,电子束又回到左上方起点,开始下一帧的扫描。这种 方法 也就是常说的逐行扫描显示。而隔行扫描指电子束在扫描时每隔一行扫一线,完成一屏后再返回来扫描剩下的线,这与电视机的原理一样。隔行扫描的显示器比逐行扫描闪烁得更厉害,也会让使用者的眼睛更疲劳。完成一帧所花时间的倒数叫垂直扫描频率,也叫刷新频率,比如60Hz、75Hz等。
通过这几天的单片机的实训,我在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,实训锻炼了自己动手能力和思维能力,还有在软件方面的编程能力,让我受益匪浅,同时也暴露出一些平时学习上的问题,让我深刻 反思 。这些问题的发现将为我以后的学习和工作找明道路,查漏补缺为进一步学习作好准备。通过实训,让我懂得了如何编写一些简单的程序,学会了如何制作单片机应用程序,并且可以在今后的日常生活中灵活运用。
▼ 单片机实训总结范文篇三:
一 实习目的
1. 通过对单片机小系统的设计、焊接、装配,掌握电路原理图及电子线路的基本焊接装配工艺、规范及注意事项;
2. 通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;
3. 掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘显示等程序的编制及调试(汇编语言、C语言均可);
4. 通过单片机系统的组装,调试以及程序编制、调试及运行,与理论及实验的有机结合和指导教师的补充介绍,使学生掌握控制系统的工作原理、开发方法和操作方法。
5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。
二 实习意义
通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。
三 系统基本组成及工作原理
1 系统基本组成
系统以单片机STC89C52作为控制核心,各部分基本组成框图如图1所示。
流水灯部分由单片机、键盘模块等组成;
四位数码显示,编程实现30秒倒计时部分由单片机、键盘模块、液晶显示模块等组成;
按键功能部分通过按键控制流水灯部分、四位数码显示部分;
电子钟部分由单片机、键盘模块、液晶显示模块等组成;
使用功能键实现相应的功能组合部分通过流水灯部分、30秒倒计时部分实现;
模数转换部分由单片机、ADC0809转换模块、键盘模块、液晶显示模块等组成。
2 系统工作原理
本设计采用STC89C52RC单片机作为本系统的控制模块。单片机可把由ADC0809及单片机中的数据利用软件来进行处理,从而把数据传输到显示模块,实现阻值大小的显示。以数码管显示为显示模块,把单片机传来的数据显示出来。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。
对于模数转换部分,单片机89C51通过P0口的I/O线向ADC0809发送锁存地址以及复位、启动转换等信号,并查询转换状态。 ADC0809启动转换后,将0-8个通道一次输入的电压信号转换成相应的数字量,供89c51读取使用,并且将EOC置1供单片机查询转换状态。而滑动变阻器负责将阻值信号转换成电压信号,再送到ADC0809的八个通道。当单片机查询到转换结束后依次读取数据并按照现实的需要进行二进制转BCD码等处理最后控制显示电路显示出数字。 其实现方式是:ADC0809转换来自3通道的阻值变化信号。80c51的P2口与ADC0809的输出相连用于读取转换结果,同时P0.0-P0.6作控制总线,向ADC0809发送锁存、启动等控制信息,并查询EOC状态。ALE经分频后给ADC0809提供时钟信号。P3.0和P3.1口用于向显示电路输出段码,P3.2-P3.7用于数码管的位选。
四 系统硬件设计
结合本设计的要求和技术指标,通过对系统大致程序量的估计和系统工作的估计,考虑价格因素。选定AT89C51单片机作为系统的主要控制芯片,8位模拟转换器ADC0809进行阻值转换。 逐次比较法A/D转换器是目前种类最多、应用最广的A/D转换器,其原理即“逐位比较”,其过程类似于用砝码在天平上称物体重量。它由N位寄存器、A/D转换器、比较器和控制逻辑等部分组成,N位寄存器代表N位二进制码。目前应用最广的逐次比较法A/D转换器有ADC0809。它是一种8路模拟输入8位数字输出的逐次比较法A/D转换器件。其主要性能指标和特性如下:
分表率:8位
转换时间:取决于芯片时钟频率,转换一次时间位64个时钟周期
单一电源:+5v
模拟输入电压范围:单极性0-+5v;双极性-5v-+5v
具有可控三态输出锁存器
启动转换控制位脉冲式,上升沿使内部所有寄存器清零,下降沿使A/D转换开始。
通过以上性能比较,我们不难看出ADC0809满足本设计的要求,所以本设计采用ADC0809作为A/D转换器
1 按键电路设计
利用单片机的P1口扩展一个8位键盘。
2 晶振与复位电路设计
本设计采用的是上电复位的形式,如图3.3所示,上电顺进RST获得高电平,随着电容器C的充电,RST引脚上的高电平将逐渐下降,只要高电平能保持复位所需要的两个机器周期以上时间,单片机就能实现复位操作。 晶振电路为单片机提供工作所需要的时钟信号。震荡频率越高,系统时钟频率也越高,单片机运行的速度就越快。其电路如图3.4所示。89C51的_TAL1和_TAL2两个引脚跨接晶体振荡器和微调电容C1、C2形成反馈电路,就构成了稳定的自激振荡器,本设计的震荡器频率为12MHZ。
3 下载电路设计
4 流水灯模块设计
5 模数转换模块设计
6 显示电路设计
本设计采用六位数码管。本系统采用共阳极动态扫描的方式连接。数码管的段码数据由89C51的P3.0-P3.1口送出,89C51的P3.2-P3.7输出位选通信号,只有被选中的那位数码管才会显示段码
7 整体电路设计
五 系统软件设计
1主程序设计
主程序采用分支结构,以状态号标识系统所处的状态。在上电初始化后即进入状态号的轮询扫描,状态号的值决定了分支程序的入口。其中分支程序分别为:AD转换模块(状态号为0),数字模块状态号为1),倒计时模块(状态号为2),电子钟模块(状态号为3),功能组合模块(状态号为4),流水灯模块(状态号为5)。
2 功能子程序设计
2.1 流水灯模块
流水灯模块利用单片机的P3口,通过给P3口的各位送低电平,相应的实现流水灯有规律的点亮。
2.2 30秒倒计时模块
30秒倒计时模块利用单片机的P3.0与P3.1口送相应的段控数据,P3.2-P3.7口送相应的位控数据。通过程序实现30秒倒计时。
2.3 数字加减模块
利用数码管实现数字显示,通过加一键或者是减一键实现数字变量的加一或者减一,进而实现利用数码管显示加一键、减一键功能。
2.4 电子钟模块
利用数码管实现时间显示,通过加一键或者是减一键实现小时变量或者是分钟变量的加一,从而实现调时功能。
2.5 模数转换模块
对于模数转换部分,单片机89C51通过P0口的I/O线向ADC0809发送锁存地址以及复位、启动转换等信号,并查询转换状态。 ADC0809启动转换后,将0-8个通道一次输入的电压信号转换成相应的数字量,供89c51读取使用,并且将EOC置1供单片机查询转换状态。而滑动变阻器负责将阻值信号转换成电压信号,再送到ADC0809的八个通道。当单片机查询到转换结束后依次读取数据并按照现实的需要进行二进制转BCD码等处理最后控制显示电路显示出数字。 其实现方式是:ADC0809转换来自3通道的阻值变化信号。80c51的P2口与ADC0809的输出相连用于读取转换结果,同时P0.0-P0.6作控制总线,向ADC0809发送锁存、启动等控制信息,并查询EOC状态。ALE经分频后给ADC0809提供时钟信号。P3.0和P3.1口用于向显示电路输出段码,P3.2-P3.7用于数码管的位选。
六 实习总结 、体会
本次单片机实习我们一共完成了个模块的程序设计,包括:led显示模块、数码管显示模块和键盘模块。分别实现了流水灯的循环点亮控制、数码管的静态和动态计数显示,还有矩阵键盘按键控制数码管显示的程序设计。然后我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。 这次实习还使我理解了编写程序的一些技巧。单片机应用系统一般由包含多个模块的主程序和由各种子程序组成。每一模块都要完成一个明确的任务,实现某个具体的功能,如计算、接受、发送、延时、显示等。采用模块化程序设计方法,就是将这些具体功能程序进行独立设计和分别调试,最后将这些模块程序装配成整体程序并进行联合调试。模块化程序设计方法的优点:一个模块可以为多个程序所共享;单个功能明确的程序模块的设计和调试比较方便,容易完成;利用已经编好的成熟模块,将大大缩短开发程序的时间,降低开发成本。采用循环结构和子程序结构可以使程序的容量大大减少,提高程序的效率,节省内存。对于多重循环,要注意各重循环的初值和循环结束的条件,避免出现程序无休止循环的“死循环”现象; 通过这次的实习我发现,只有理论水平提高了,才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。这次实习十分有意义,这次实习我们知道了理论和实践的距离,也知道了理论和实践相结合的重要性。 回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解,尤其是在学习使用proteus软件片编程和仿真时收获良多。通过这次单片机课程设计,还使我懂得了实践的重要性。同时在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。 这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!
▼ 单片机实训总结范文篇四:
通过为期一周的单片机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不足。相信这对我们以后的学习和工作都会有很大的帮助。我们一定要在最短的时间里对这些不足加以改正!
首先,在这次试训中我被单片机强大的功能所震撼,以前在课堂上完全没有能理解可编程单片机的优越性。这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活力。换是我们认识到这次试训不仅仅是一个软件的应用,更多的是使我们认识到学习到很多在课堂上无法得到的东西。特别是protues软件的功能是我们了解了当今开发系统的新方向,简直太不可思议啦!
单片机作为一种最简单的软件,与我们的日常生活息息相关,了解一些单片机程序的简单录入是非常必要的。如:LED显示器、键盘和显示器的应用和原理。
在被刺实训中我们每个人通过一个八位流水灯的制作,使我们深深地体会到了单片机在现实生活中的小小应用,既增强了我们的好奇心,又巩固了我们的理论知识。更让我们体会到了单片机手动的开始平台的完善与成熟。只要你有想法,单片机就有可能让他成为现实。这里我学习完protues软件后的第一感觉是,虽然这软件工作不稳定,但是会有相当不错的效果出来。这对我以后的工作一定会有帮助的。在这次试训中不仅只对单片机编程有了新的认识,还对整个单片机的开发平台都有了一厅的了解,这是一笔不错的收获。
通过这几天的试训,使我的感触很深,真实“条条大路通罗马”,要达到目的,不同的人就有不同的方法。只要你的方法不错!五花八门都可以,而且是各有特色。走出来的结果都有各自的独到之处。在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单片机留给用户的资源是有限的,所以我们要充分利用这些资源,达到更好的效果,这些是我们在以后的学习生活中应值得注意的地方。
在试训中有苦有甜,当我们为一个很难攻破的程序找出路时,心情烦躁,感觉自己很不可理喻,当程序一点一点编好后,自己从心底感觉到一点小小的安慰,看着自己的成果。感觉很欣慰,有一丝丝的甜意,几天的实训使自己的思维逻辑也有了小小的进步。
▼ 单片机实训总结范文篇五:
这是我第一次做单片机实验,说起来有一些紧张和新奇。在此之前我并没有接触过单片机,我本以为与之前的光学实验及 其它 实验差不多,可我进到实验室之后,我就改变了这个看法。
单片机实验要求的是一种思维的创新,而不是简单的重复老师所说的实验步骤。因此第一次实验,实验老师向我们讲解了CVAVR编译器的大体情况及使用方法和技巧,并简单的向我们示例——如何在CVAVR中编写一段程序。编完程序之后,知道我们如何使用AVRStudio达到将编好的程序输入到单片机中来使其运行。
之后老师让我们以组为单位合作编写一段程序,并使其运行。我们组想要编写一个跑马灯的程序。在第一次运行CVAVR时,我们组就遇到了一个麻烦,我们在建立一个新project文件那里出现了错误。在保存这个新project文件的时候,我们单击了Save,而不是Generate,SaveandE_it.因此它弹不出我们我们所需要的源程序。之后我们通过询问其他人解决了这个问题。在编程中,我们开始做的是两盏灯的交替闪烁,间隔时间是1000ms。在运用AVRStudio的时候,我们又犯了一个错误。在我们打开编译好的工程文件时,开始调试,在最后一步点击Finish时,弹出一对话框,问我们是否更新,然后我们单击了Yes。这导致了仿真器无法下次使用。这是由于实验室中的仿真器是盗版的,无法进行更新。
经过我们的不断努力,我们终于实现了简单的跑马灯的运行,便是两个灯地交替闪烁。我们感到兴奋极了。但是我们并没有满足于当前,我们又编写了三个灯地交替闪烁,四个及多个。当我们一步步实现我们的目的时,我得到莫大成就感和自信。
在这次实验中,我体会到了合作的重要性。一个人也可能实现这一系列的过程,但是要花费很多精力和时间。群策群力,分工明确,可以使我们更好、更快地完成我们的工作。在此期间,你可以更好知道自己的不足和缺陷,来得到改正。还可以知道自己的优势所在,把握好自己的优势。
单片机实训总结相关 文章 :
★ 单片机实训报告范文精选5篇
★ 单片机实训总结范文3篇
★ 单片机实验心得体会范文
★ 单片机实训报告范文
★ 单片机实训工作报告范文精选
★ 单片机实习报告范文
★ 单片机实验的心得体会
★ 单片机课程设计心得体会3篇
★ 实验总结5篇精选
★ 单片机设计的心得体会
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = ""; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })();
51单片机汇编语言编写一个跑马灯的程序,初学者做实验用,具体要求如下,好了可以加分
程序1:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
LOOP:
MOV A,P2
MOV B,A
MOV P0,A
MOV P1,#0FFH
LOOP1:
LCALL DELAY
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
MOV A,P2
CJNE A,B,LOOP
SJMP LOOP1
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END
程序2:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV SP,#5FH
JNB P2.0,LOOP1 ;
JNB P2.1,LOOP2 ;
SJMP MAIN
LOOP1:
MOV P0,#0FEH
MOV P1,#0FFH
LOOP11:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.1,LOOP2
SJMP LOOP11
LOOP2:
MOV P0,#0FCH
MOV P1,#0FFH
LOOP21:
MOV C,P1.7
MOV A,P0
RLC A
MOV P0,A
MOV A,P1
RLC A
MOV P1,A
JNB P2.0,LOOP1
SJMP LOOP21
DELAY:
MOV R2,#60
DELAY1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DELAY1
RET
END
如何用51系列单片机做控制LED跑马灯实验
/*单片机,用定时中断实现每隔0.2秒让接在p1口的8个小灯从左往右循环点亮。*/
#include
#include
#define
uchar
unsigned
char
uchar
a,b;
uchar
b=1;
uchar
a=0xfe;
void
main()
{
ea=1;it1=1;et0=1;
th0=-5000/256;
tl0=-5000%256;
tmod=0x01;
tr0=1;
while(1)
{;}
}
void
timer0(void)
interrupt
1
using
1
{
th0=-5000/256;
tl0=-5000%256;
b=b+1;
if(b==40)
{
b=0;
p1=a;
a=_crol_(a,1);
p1=a;
}
}