C51单片机按下独立按键控制流水灯切换流水灯或跑马灯的流动速率

用多媒体学单片机编程从入门到精通C51编程视频教程
点击下面图片查看所有大图
教程大纲:
& &全程多媒体视频讲解,内容分成2DVD,课时长度8个多小时,轻松易学,专业实用!
DVD1:基础教学篇 &共计30个教学视频
学习目标:
& &在C语言的基础上,全程讲解C51编程理论,帮助用户快速进入单片机编程世界。
主要内容:
第一部分:单片机基础理论
一、单片机编程中的常用数制及其转换方法
& &1.1单片机中常用数制介绍(1)
& &1.2单片机中常用数制介绍(2)
& &1.3数制转换方法介绍(1)
& &1.4数制转换方法介绍(2)
二、单片机的发展趋势及应用领域
三、单片机结构及其系统资源
& &3.1控制中心
& &3.2存储器及特殊功能寄存器
& &3.3中断控制系统
& &3.4输入/输出的控制方式
& &3.5定时器/计数器
第二部分:单片机编程语言
四、C51程序设计基础
& &4.1数据类型
& &4.2常量和变量
& &4.3算术运算符
& &4.4移位运算符
& &4.5赋值运算符
& &4.6顺序结构
& &4.7选择结构(1)
& &4.8选择结构(2)
& &4.9循环结构(1)
& &4.10循环结构(2)
& &4.11循环结构(3)
& &4.12函数(1)
& &4.13函数(2)
& &4.14函数(3)
五、C51对标准C语言的扩展
六、单片机C51编程规范
七、单片机C51编程技巧
第三部分:单片机实验环境
八、单片机编程集成开发环境(1)
& &&&Keil uVision2
九、单片机编程集成开发环境(2)
& &&&Keil uVision2
十、单片机烧写工具软件介绍
& &&&AtIsp
DVD2:高级实验篇 &共计64个教学视频
学习目标:
& &帮助学习者快速掌握单片机控制中常见实验设备的一般编程技术和高级综合编程技巧
主要内容:
一、发光二极管实验
& &实验1: 发光二极管实验电路分析
& &实验2: 点亮单个发光二极管(1)
& &实验2: 点亮单个发光二极管(2)
& &实验3: 点亮多个发光二极管
& &实验4: 单个发光二极管闪亮
& &实验5: 多个发光二极管闪亮
& &实验6: 单方向流水灯/跑马灯
& &实验7: 双方向流水灯/跑马灯
& &实验8: 循环流水灯/跑马灯
& &实验9: 复杂流水灯/跑马灯(1)
& &实验10: 复杂流水灯/跑马灯(2)
二、数码管显示实验
& &实验11: 数码管实验电路分析
& &实验12: 数码管八段码
& &实验13: 固定显示一位十进制数字
& &实验14: 固定显示多位相同十进制数字
& &实验15: 固定显示多位不同十进制数字
& &实验16: 显示十六进制中的任意一个数字
& &实验17: 循环显示十六进制中的所有数字
& &实验18: 显示从1变化到100
& &实验19: 不精确秒表
& &实验20: 交通信号灯中数码管的应用
三、蜂鸣器实验
& &实验21: 蜂鸣器实验电路分析
& &实验22: 蜂鸣器长鸣
& &实验23: 蜂鸣器间断长鸣
& &实验24: 蜂鸣器一长二短长鸣
四、独立按键(普通按键)实验
& &实验25: 独立按键实验电路分析
& &实验26: 独立按键松手判断及消除抖动
& &实验27: 独立按键点亮发光二极管
& &实验28: 独立按键控制发光二极管亮灭
& &实验29: 使用独立按键控制跑马灯
& &实验30: 使用独立按键控制蜂鸣器
五、矩阵键盘实验
& &实验31: 4&4矩阵键盘实验电路分析
& &实验32: 4&4矩阵键盘控制原理分析
& &实验33: 4&4矩阵键盘实现按键控制(1)
& &实验33:4&4矩阵键盘实现按键控制(2)
六、光电开关实验
& &实验34: 光电开关电路分析
& &实验35: 光电开关控制发光二极管
& &实验36: 光电开关控制跑马灯
& &实验37: 光电开关控制蜂鸣器
七、继电器实验
& &实验38: 继电器电路分析
& &实验39: 继电器动作控制实现
八、无线遥控实验
& &实验40: 无线遥控实验电路分析
& &实验41: 无线遥控控制蜂鸣器
& &实验42: 无线遥控控制发光二极管闪烁
九、拨码开关实验
& &实验43: 拨码开关电路分析
& &实验44: 拨码开关编码读取(1)
& &实验44: 拨码开关编码读取(2)
十、点阵屏实验
& &实验45: 点阵屏实验电路分析
& &实验46: 点阵屏显示汉字原理分析
& &实验47: 点阵屏显示静态汉字原理及实现(1)
& &实验47: 点阵屏显示静态汉字原理及实现(2)
& &实验48: 点阵屏显示向左运动汉字原理及实现
& &实验49: 点阵屏显示向右运动汉字原理及实现
& &实验50: 点阵屏显示向上运动汉字原理及实现
& &实验51: 点阵屏显示向下运动汉字原理及实现
十一、1602液晶显示屏实验
& &实验52: 1602液晶实验原理分析
& &实验53: 1602液晶显示实验
十二、步进电机实验
& &实验54: 步进电机实验原理分析
& &实验55: 步进电机步进旋转实验
十三、综合实验:
& &实验56: 使用独立按键控制数码管显示
& &实验57: 精确秒表
& &实验58: 电子表
& &实验59: 微波炉控制(时间部分)
& &实验60: 户外灯箱广告效果实现
下载地址注意:若网盘地址失效,文档分类:
燕山大学单片机课设 设计可控流水灯(c语言).doc
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
该用户其他文档
下载所得到的文件列表燕山大学单片机课设 设计可控流水灯(c语言).doc
文档介绍:
.页眉...页脚目录一、引言二、课题综述2.1课题的来源2.2课题的意义2.3课题的目标2.4课题的技术三、系统分析3.180C51单片机的基本组成3.280C51单片机引脚图及引脚功能介绍3.3解决问题的基本思路3.4解决问题的总体方案四、硬件组成4.1晶振震荡电路4.2按键复位电路4.3电源电路4.4独立按键电路4.5八位跑马灯电路4.6彩灯的总驱动电路五、代码编写六、程序调试七、结论八、参考文献.页眉...页脚一、引言单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。二.课题综述2.1课题的来源当今社会,随着科学技术的进步和电子产业的迅猛发展,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。2.2课题的意义这次单片机课程设计是为了通过对单片机编程设计控制LED灯流水闪亮的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。能够让学生深入真是的体会到所学的理论知识和实践相结合的过程,并融入的所学知识的海洋里,从中找出自身的不足并加以改正。2.3预期的目标对8个LED灯设计几种流水灯显示方式,用按键进行方式选择,.页眉...页脚并用一个按键就控制流水灯流动的速度;2.5课题的技术通过编程达到LED灯的显示方式、模式切换按钮的控制、亮灯速度的按键控制等技术。三、系统分析3.18051单片机的基本组成1、中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。有运算电路和控制电路,其中控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调的工作。例如定时控制电路和振荡电路均属于控制电路。单片机执行程序就是在控制电路的控制下进行的。首先从程序存储器读出指令,送指令寄存器保存;然后送指令译码器进行译码,译码结果送定时控制电路,有定时控制逻辑产生各种定时信号和控制信号;再送到系统的各个部件去控制相应的操作。这就是执行一条指令的全过程,而执行程序就是不断地重复这一过程。2、内部数据存储器(内部RAM)8051芯片中共有256个RAM单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器SFR区。但高128单元被专用寄存器占用,能作为寄存器.页眉...页脚供用户使用的只是低128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。片内低128字节RAM是用户真正可以存取随机数据的数据存储器,其地址为00H-7FH。3、内部程序存储器(内部ROM)8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。它的片内ROM地址为0000H~0FFFH(4KB),它的片外ROM最大容量可为0000H~FFFFH。片内与片外ROM在低4KB地址出现重叠,这种重叠的区分由8051的管脚EA进行控制。还有一组特殊单元是AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。4、定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。5、并行I/O口8051共有4个8位的I/O口(P0、P1、P2、P3),以实现数据.页眉...页脚的并行输入/输出。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。6、串行口MCS-51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7、中断控制系统MCS-51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。3.2、80C51单片机引脚图及引脚功能介绍.页眉...页脚XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A/A821P2.1/A922P2.2/A/A/A/A/AP1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U280C条引脚,共分为端口线、电源线和控制线三类。1.端口线(4×8=32条):I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。2.电源线(2条):VCC为+5V电源线,VSS为接地线。3.控制线(6条):(1)ALE/——————P R O G:地址锁存允许/编程线ALE功能:用来锁存P0口送出的低8位地址——————P R O G功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。.页眉...页脚(2)PSEN:外ROM读选通信号。(3)RST/VPD:复位/备用电源。RST(Reset)功能:复位信号输入端。VPD功能:掉电情况下,接备用电源。(4)———E A/Vpp:内外ROM选择/片内EPROM编程电源。———E A功能:内外ROM选择端。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,
内容来自淘豆网www.taodocs.com转载请标明出处.
文件大小:0 KB
下载次数:重拾单片机——如何让按键控制流水灯工作与停止|我爱单片机 - 数码之家
查看完整版本: [--
赞助商链接
如题,网上抄了一段程序,弄了个懵懵懂懂。现在想要用一个按键控制流水灯的工作与停止。即当按键按下时流水灯开始,放开时对她没有影响,再次按下时停止流动。并且停留在亮着的那个灯。下面是程序:(这个是正常的流水灯程序)。谢谢大家&&&&&&真是对不起大家的热心,又没有时间去学单片机了,因为又找到新工作了,以后可能都没时间搞这个了。虽然现在条件不允许,但是以后我还会在学的。谢谢大家,真心的感谢!#include&AT89x51.H&void Delay(unsigned int k){&&&&unsigned int i,j;&&&&for(i=0;i&k;i=i+1)&&&&{&&&&for(j=0;j&120;j=j+1)&&&&{;}&&&&}}void main(){&&&& for(;;)&&&&{&&&&P1_0=0;&&//点亮LED1&&&&Delay(1000);&&&&&&&&P1_0=1;//关闭LED1&&&&&&&&Delay(1000);&&&&P1_1=0;&&&&Delay(1000);&&&&&&&&P1_1=1;&&&&&&&&Delay(1000);&&&&P1_2=0;&&&&Delay(1000);&&&&&&&&P1_2=1;&&&&&&&&Delay(1000);&&&&P1_3=0;&&&&Delay(1000);&&&&&&&&P1_3=1;&&&&&&&&Delay(1000);&&&&P1_4=0;&&&&Delay(1000);&&&&&&&&P1_4=1;&&&&&&&&Delay(1000);&&&&P1_5=0;&&&&Delay(1000);&&&&&&&&P1_5=1;&&&&&&&&Delay(1000);&&&&P1_6=0;&&&&Delay(1000);&&&&&&&&P1_6=1;&&&&&&&&Delay(1000);&&&&P1_7=0;&&&&Delay(1000);&&&&&&&&P1_7=1;&&&&&&&&Delay(1000);}}
赞助商链接
这个……?感觉……忒麻烦了吧
赞助商链接
这个么。。我的想法是设一个bit的标志位FLAG,按键按下时给FLAG取反,主程序里做移位的流水灯,判断FLAG为1时进行移位,流水灯走,FLAG为0停止移位,流水灯停止,这样
弄个按键标志变量,按一次是1,再按一次是0;然后加上判断语句,就行了、
这个程序没法即时停止。
流水灯程序不用写这么麻烦,可以用左移或者右移语句。如果用延时函数就必须用外部中断来控制流水灯工作和停止,因为延时的时候单片机没办法同时扫描键盘。
不必外部中断,定时器中断扫描按键也是一样,要即时停止不能用延时函数,
上面两位的方法都对方案1:用延时+按键中断按一次进入中断程序,流水灯停止运行,再按一次退出中断,流水灯继续运行。方案2:定时器延时+按键(用中断或非中断均可)按一下按键,程序将定时器停止(或者叫暂停),流水灯就停止运行,再按一下,程序让定时器继续工作,流水灯又运行起来了
看到楼主这个代码就头晕~
软件(相对于逻辑硬件)的好处就是实现谋种功能的方法不是唯一的,根据个人喜好,用不同方法可实现同一功能只要稍修改一下程序,就可以实现你想要的不同功能
看到楼主这个代码就头晕~
:不必外部中断,定时器中断扫描按键也是一样,要即时停止不能用延时函数, ( 18:03) 你说得对,学习了
请教下方案一进入中断如何不退出?又如何再次检测按键?
51单片机流水灯通过按键控制流水灯的流向可控流水灯单片机课程设计报告(c语言)以上程序可以借鉴,祝你成功!
:请教下方案一进入中断如何不退出?又如何再次检测按键? ( 06:27) 用下降沿做触发进中断一一一等键释放一一一扫描端口变化,等按键再次按下一一一清理中断标志,中断返回大体思路是这样了,在进中断和退出中断要做一下按键防抖处理。
想不出程序如何写能做到这样
查看完整版本: [--
Powered by
Time 0.070043 second(s),query:5 Gzip enabled基于C51单片机4按键4种花样流水灯 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
基于C51单片机4按键4种花样流水灯
13:16:13  
初学者的好项目,4按键4种花样流水灯,很适合初学单片机的爱好者
本帖子中包含更多资源
才可以下载或查看,没有帐号?
16:33:43  
14:12:24  
20:31:21  
14:13:28  
aaaaaaaaaawsdef
14:19:24  
14:53:59  
是比较适合初学者。
20:40:29  
是比较适合初学者。
17:04:17  
谢谢分享,初学者学习来了
18:45:30  
19:22:42  
学习了。谢谢分享
20:54:55  
学习啦!谢谢
21:41:19  
谢谢分享,初学者....
15:40:07  
谢谢分享,学习了
18:52:34  
感觉很不错 顶
感觉很不错 顶
感觉很不错 顶
感觉很不错 顶
15:43:59  
谢谢分享,很感谢LZ
15:46:45  
21:39:41  
谢谢分享!!!!!
21:48:45  
不错啊!这个可以收藏啊!
09:16:54  
谢谢分享!!!!!!!!!!
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司学号 序号 19
单片机原理与接口技术 实验报告
实验项目序号一 实验项目名称跑马灯实验
姓名卢志雄专业电子信息工程班级电信14-2BF 完成时间日
一、实验内容 实验内容为3项,其中第1、2项必做。 1、基本的流水灯。 根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。每点亮一个LED,采用软件延时一段时间。 2、简单键控的流水灯。 不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。松手后,又按正序点亮流水灯。 3、键控的流水灯。 上电,不点亮LED,按一下K1键,按正序点亮流水灯。按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。
二、电路原理图 +5VD0D1D2D3D4D5D6D7U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDK1K2K3K418XTAL29RST293031PSENALEEA.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图1
跑马灯实验电路原理图 三、程序流程图
开始 检测P2键值 完成对应键值的功能 判断P2键值是否改变
图2简单键控的流水灯程序流程图
四、源程序 1、基本的流水灯 #include #define uint unsigned int #define uchar unsigned char void delay( j ) { while(j--) for(i=0;i<250;i++); } void main( )
//保证只有一个点亮
//延时函数
//不断循环
P2=~a; //低电平点亮
//左移一位,右补0
if(a==0)a=1;
delay(2250);}
//流动点亮延时
} 2、简单键控的流水灯 #include #define uchar unsigned char #define uint unsigned int void delay(uint i) {
} void main() {
while(i--) {
} for(t=0;t<120;t++); a=1; while(P2==0xff)
a=a<<1; if(a==0)
delay(250);
while(P2==0xfe)
} a=a>>1; if(a==0)
delay(250);
3、键控的流水灯 #include #define uchar unsigned char #define uint unsigned int void delay(uint i) {
} void main() {
datauchar b=0 while(i--) { if(P2==0xfe) b=0
} if(P2==0xfd) b=0 if(P2==0xfb) b=0 for(t=0;t<120;t++); while(P2==0xfe)
a=a<<1; if(a==0)
delay(250);}

我要回帖

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

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信