多按键花样流水灯设计
流水灯花样变换

【018】流水灯花样变换 [51]实验参考: 笨笨工作室-实验九、流水灯花样变换(中断)。
(查看)实验板: FB51A。
(查看)实验目的: 掌握在中断程序中处理多个按键动作的响应方法。
实验现象: 进入程序后,程序作双向流水灯;按下k1键,程序作左向流水灯; 按下k2按键程序作右向流水灯; 按下k3键两个亮点从两边向中间移动; 按下k 3键两个亮点从中间向两边移动。
在上个实验(016中断的应用中对断点的保护)中,只用了一个按键触发中断, 而本次实验中断程序要对多个按键动作进行响应,灯光变换的花样有4种,用4个按键k1,k2,k3,k4切换。
显示部分电路:键盘部分电路(图中K0对应程序中K1……K3对应K4):思路:主程序中执行左右流水灯,在中断服务程序中,首先读取按键状态,然后延时10ms,再次读取按键状态。
把两次获得的按键状态比较,如果不同,就表示是抖动,退出中断;否则,就去判断是哪个按键按下。
如果是k1,就执行左跑马灯;如果是k2,就执行右跑马灯;如果是k3,就执行亮点向中间移动;如果是k4,就执行亮点向两边移动。
值得注意的是: 在中断服务程序中,应该尽量的使得任务简化,不要让中断服务程序作过多复杂的任务,而要尽量把这些复杂的任务放到主程序中间去完成。
本着这一原则, 可以采用置标志位的方法。
即在主程序中设定一个标志位,不断的对这个标志进行查询:如果是标志为状态1,就执行双向跑马灯;如果是状态2,就执行左向跑马灯;如果是状态3,就执行右向跑马灯,依次类推。
而在中断服务程序中,只需要进行如下工作:去抖动,键识别,改变标志位。
这里我们用寄存器r0的内容作为标志,当它里面的内容是0ffh时,执行左右跑马灯程序;为01h时,执行左跑马灯;02h时执行右跑马灯;03h时执行两个亮点向中间移动;04h时执行两个亮点象两边移动。
下面是主程序和中断程序的流程图程序如下:org 0000hljmp startorg 0003horg 0020hstart: mov r0, #0ffh ; 对r0赋值,r0为所设标志位setb ea ; 开中断setb ex0 ; 允许外部中断0申请中断setb it0 ; 外部中断0为跳变方式触发mov sp, #70h ; 设置中断loop0: cjne r0, #0ffh, loop1 ; r0不为ff, 转到loop1ajmp main_light ; 否则执行左右流水灯loop1: cjne r0, #01h, loop2 ; r0不为01, 转到loop2ajmp k1_light ; 否则执行左向流水灯loop2: cjne r0, #02h, loop3 ; r0不为02, 转到loop3ajmp K2_light ; 否则执行右向流水灯loop3: cjne r0, #03h, loop4 ; r0不为03, 转到loop4ajmp k3_light ; 否则执行双亮点向中间移动loop4: cjne r0, #04h, loop5 ; r0不为04, 转到loop5ajmp k4_light ; 否则执行双亮点向两边移动loop5: ajmp loop0 ; 返回重新查询;===========================中断服务程序===========================ext1: clr ea ; 关中断push accpush pswmov a, p1 ; 读入键值anl a, #0fh ; 屏蔽高四位mov 30h, a ; 键状态存入30hlcall del10msmov a, p1 ; 再次读入键值anl a, #0fhcjne a, 30h, pass ; 两次键值不同,是抖动,退出中断ajmp k1_check ; 如果相等,进行键识别; 键识别部分k1_check: cjne a, #0eh, k2_check ; 不是k1, 判断是不是k2mov r0, #01h ; 是k1, 置标志为01ajmp passk2_check: cjne a, #0dh, k3_check ; 不是k2, 判断是不是k3mov r0, #02h ; 是k2, 置标志为02ajmp passk3_check: cjne a, #0bh, k4_check ; 不是k3, 判断是不是k4mov r0, #03h ; 是k3, 置标志为03k4_check: cjne a, #07h, pass ; 不是k4, 退出中断mov r0, #04h ; 是k4, 置标志为04ajmp passpass: pop psw ; 现场恢复pop accsetb ea ; 开中断reti ; 中断返回;==================================================================== ==main_light: mov r7, #08h ; 左右流水灯程序mov r6, #06hmov a, #0fehl_loop: mov r1, a ; r1保存现在亮点位置,做样式变换时从该处开始mov p0, alcall del100msrl adjnz r7, l_loopmov a, #0bfhr_loop: mov r1, amov p0, alcall del100msrr adjnz r6, r_loopajmp loop0k1_light: mov r1, a ; 左向流水灯mov p0, alcall del100msrl amov r1, aajmp loop0k2_light: mov r1, a ; 右向流水灯mov p0, alcall del100msrr amov r1, aajmp loop0k3_light: mov p0, #07eh ; 双亮点向中间移lcall del100msmov p0, #0bdhlcall del100msmov p0, #0dbhlcall del100msmov p0, #0e7hlcall del100msajmp loop0k4_light: mov p0, #0e7h ; 双亮点向两边移lcall del100msmov p0, #0dbhlcall del100msmov p0, #0bdhlcall del100msmov p0, #07ehlcall del100msajmp loop0del10ms: ; 10ms延时子程序(12M) mov r5, #20temp1: mov r4, #248djnz r4, $djnz r5, temp1retdel100ms: mov r3, #0c3h ;100.036mstemp2: mov r2, #0ffh ;511usdjnz r2, $djnz r3, temp2retend用Proteus仿真通过,原理图如下:实验结果: 下载到板上测试, 结果与预计相符。
多按键花样流水灯课程设计

多按键花样流水灯前言当单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O接口电路通过应刷电路板上的总线连成一体的完整计算机系统。
[1]从1971年出现单片机的雏形开始,短短四十多年的时间里,单片机便社会各领域中得到了广泛的应用在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式控制系统,成为日后此系统中的核心部分。
由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。
今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
本设计用AT89C51单片机自制了一款简易的花样流水灯,介绍了其硬件电路及软件编程方法,在实践中体验单片机的自动控制功能。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
学习单片机的最有效方法就是理论与实践并重,现在我把单片机流水灯设计作为一个课程设计,需要更深的去了解单片机的很多功能,努力的去查找资料。
本课题将以发光二极管作为发光器件,用单片机自动控制,实现一个简易的花样流水灯设计。
目录前言第一章设计目的及要求................................................................................................................................ - 4 -1.1 设计目的........................................................................................................................................... - 4 -1.2 设计要求........................................................................................................................................... - 4 -1.2.1 课程设计要求............................................................................................................................ - 4 -1.2.2 课程设计目的:........................................................................................................................ - 4 - 第二章方案设计............................................................................................................................................ - 5 -2.1 设计任务分析................................................................................................................................... - 5 -2.2 方案比较........................................................................................................................................... - 5 -2.3 硬件系统的设计要求....................................................................................................................... - 6 -2.3.1 实验总原理图............................................................................................................................ - 6 -2.3.2 硬件系统概述............................................................................................................................ - 6 - 第三章主要元器件介绍................................................................................................................................ - 7 -3.1 AT89C51单片机介绍........................................................................................................................ - 7 -3.1.1 AT89C51芯片简介..................................................................................................................... - 7 -3.1.2 引脚说明.................................................................................................................................... - 7 -3.2 晶振电路........................................................................................................................................... - 9 -3.2 LED发光二极管 ............................................................................................................................. - 10 - 第四章硬件电路设计................................................................................................................................ - 10 -4.1 主控系统......................................................................................................................................... - 10 -4.2 晶振时钟电路设计......................................................................................................................... - 11 -4.3 复位电路设计................................................................................................................................. - 11 -4.4 输入控制模块及中断控制模块设计 ............................................................................................. - 12 -4.5 输出控制模块设计......................................................................................................................... - 13 - 第五章软件设计及主要子程序.................................................................................................................. - 15 -5.2 主程序流程图................................................................................................................................. - 16 -5.3 主程序............................................................................................................................................. - 16 -5.4 中断子程序..................................................................................................................................... - 19 -5.5 LIGHT1跑马灯子程序................................................................................................................... - 19 -5.6 LIGHT2流水灯子程序................................................................................................................... - 19 -5.7 LIGHT3戏水灯子程序................................................................................................................... - 19 -5.8 延时子程序..................................................................................................................................... - 20 - 第六章系统仿真与调试.............................................................................................................................. - 21 -6.1 Keil编译.......................................................................................................................................... - 21 -6.2 Protues仿真平台简介..................................................................................................................... - 21 -6.3 跑马灯仿真演示............................................................................................................................. - 21 -6.4 流水灯仿真演示............................................................................................................................. - 23 -6.5 戏水灯仿真演示............................................................................................................................. - 24 -6.6 顺序循环执行三种花样灯............................................................................................................. - 25 - 第七章PCB板生成 ..................................................................................................................................... - 26 -7.1 PCB生成 ......................................................................................................................................... - 26 - 第八章课程设计总结.................................................................................................................................. - 27 -摘要:自计算机问世以来,单片机技术在社会各领域中得到了广泛的应用。
多按键花样流水灯设计实习报告

中国电子科技大学实习总结报告实习类型生产实习实习单位电子科学学院实习基地实习起止时间 201X年7月X日至202X年6月X日指导教师所在院(系)电子科学学院班级电信X班学生姓名学号202X年 6月 20日多按键花样流水灯设计一、设计目的与要求通过学习51单片机开发软件及其实验箱掌握51单片机与外部扩展芯片连接方式和外部芯片的初始化编程方法。
进一步学习掌握8031内部计数器的使用和编程方法。
进一步掌握中断处理程序的编程方法。
利用74LS273扩展8031的I/O口通过编程实现流水灯实验。
1、设计目的(1)掌握51系列单片机的基本硬件结构及工作原理;(2)掌握51系列单片机的汇编语言及基本程序设计方法;(3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法。
2、设计要求(1)选择一个I/O口控制八只流水灯。
(2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3鸳鸯戏水,K4则循环三种控制方式。
(3)跑马灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
(4)流水灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。
(5)鸳鸯溪水灯:共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。
然后继续上次操作。
二、单片机开发板原理整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。
基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。
本方案以AT89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。
在主控模块上设有晶振电路和8个LED显示二极管,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。
多花样流水灯

4 一个流水灯闪烁2次后,从左往右移
5 左右各亮一个灯 往中间移 前一个灭
6 第几个灯闪烁几次 往右移:如 第一个闪1次,第二个闪2次……第八个闪8次
7 全部led灯闪烁一次后亮两个流水灯从左往右
8 左右各亮一个灯往中间移前一个不灭 全亮后 从中间往两边灭
9 一个流水灯从左往右移 一直亮,全亮后 一边往另一边灭,直到灭,接着重复
多花பைடு நூலகம்流水灯
只用一个数码管显示0-9 初始值为0
用两个按钮一个加 一个减 最多加到9 最底减到0
数码管显示
0:一个流水灯从左往右跑 前一个灭
1 一个流水灯从右往左跑 前一个灭
2 流水灯从左往右跳着亮 第一次7,5,3,1 第二次8,6,4,2,第三次重复第一次
3 两个流水灯来回跑 先从左往右 再从右往左
按键控制多种花样霓虹灯设计

应用工程学院单片机应用技术实训报告专业:应用电子学号:1504150137姓名:许林日期:2016/12/24项目一按键控制多种花样霓虹灯设计一、任务目的1.理解实验板独立按键部分的电路原理。
2.掌握循环类、位操作类指令的应用。
3.熟练掌握51单片机集成开发软件的使用。
4.巩固C语言知识并灵活运用到单片机编程。
二、任务要求使用按键控制多种花样霓虹灯设计,电路板上有8个自上而下排列整齐的发光二极管,需要根据一个(或者三个)按键的输入来实现以下3种显示状态的切换:a.全部闪烁b.至上而下流水灯循环c.第8、6、4、2、1、3、5、7个发光二极管循环三、硬件电路设计四、软件设计#include<regx51.h>unsigned int n;void delayms(n){unsigned char i,j,k;for(i=15;i>0;i--)for(j=202;j>0;j--)for(k=81;k>0;k--);}void main(){unsigned char key,a,m;unsigned char codeled[]={0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xbf,0xef,0xfb,0xfe,0x7f,0xdf,0xf7,0xfd};P0=0xff;while(1){key=0;while(key==0){key=P3;key=~key;}while(key==0);switch(key){case 0x04:a=0;break;case 0x08:a=1;break;case 0x10:a=2;break;default:break;}do{for(m=0;m<8;m++){P0=led[a*8+m];delayms(10);P0=0xff;}key=P3;key=~key;}while(key==0);}}编程思想:用16进制数对对单片机编程,从而实现对彩灯控制。
单片机课程设计多功能花样流水灯设计

此次单片机课程设计我学到了许多,第一次学会了软硬结合做一个项目出来,自我感觉非常自豪,但是由于自我能力的不足,我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源?懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。比如在设计显示程序时,一开始数码管的显示不全,然后就不断地调试延时程序,结果数字缺定在0不动,经过反复的调试终于将程序调试成功。而且要学会拓展自己思路,一开始只做了一个速度显示,后来感觉挺好玩的,就做了花样显示。同时要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你思路,这样也为资料的保存和交流提供了方便。整个设计的过程中(还是碰到了一些问题。比如对于键盘的延时防抖问题不能较好的解决,对于编程的顺序及各模块程序调用掌握得还不够好,对于一些相关的应用软件没能熟练掌握。通过这几天的反复思考,以及参考网上的程序最终还是完成了设计。设计中我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,在动手的过程中,不仅能增强实践能力而且在理论上可以有更深的认识。
长 江 学 院
花样流水灯设计报告
课题:多功能花样流水灯
院系:机械与电子工程系
专业:自动化
班级:
学号:
姓名:
指导老师:
2016年12月20日
1、设计思路………………………………………………………………………3
2、流程图……………………………………………………………………………………..4
四、硬件设计思路和电路图7
关键词:STC89C52RCLED灯单片机花样流水灯
任务3-2 按键控制多种花样霓虹灯设计

//再次检测到K3按下,第三种模式,高四位亮 //第一次检测到K4按下
{ delay(TIME);
//延时去抖动
if(K4==0) P1=0xf0; //再次检测到K4按下,第四种模式,低四位亮
}
举一反三2
采用8个发光二极管模拟霓虹灯的显示,通过1个按键控制霓虹 灯在四种显示模式之间切换,由P0口的P0.0引脚控制按键K。
//LED全灭
while(1)
{
if(K==0)
//第一次检测到按键K按下
{
delay(1200); //延时10ms左右去抖动
if(K==0)
//再次检测到按键K按下
{ w=0x01;
//流水灯显示字初值为0x01
for(i=0;i<8;i++)
{
P1=~w;
//显示字取反后,送P1口
delay(10000);
{
if(K==0)
//第一次检测到按键K按下
{
delay(1200); //延时10ms左右去抖动
if(K==0)
//再次检测到按键K按下
{ w=0x01;
//流水灯显示字初值为0x01
for(i=0;i<8;i++)
{
P1=~w;
//显示字取反后,送P1口
delay(10000);
//延时,一个灯显示时间
//根据i的值显示不同模式
//i=1显示第1种模式 //i=2显示第2种模式 //i=3显示第3种模式 //i=4显示第4种模式
while(!K); delay(1200);
判断按键是否弹起
//等待K键释放,!为逻辑非操作 //延时消除抖动
基于C51单片机4按键4种花样流水灯设计

}
if(k4==0){
delay(10);
if(k4==0){
flag1=0;
flag2=0;
flag3=0;
flag4=1;
}
}
}
/**************主程序************************/
void main() {
while(1)
{keyscan();
if(flag1==1){
void delay(uint x)
{
uint i;
while(x--)
for(i=50;i>0;i--);
}
/******************判断按键***********************/
void keyscan()
{ if(k1==0)
{delay(10);
if(k1==0)
{
flag2=0;
基于c51单片机4按键4种花样流水灯设计单片机流水灯电路图单片机流水灯程序单片机流水灯按键控制流水灯单片机按键消抖程序单片机按键程序单片机按键控制led单片机按键电路单片机独立按键程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/************************流水灯花样设计********************/
uchar table1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfc,0xff};/***从右到左逐一点亮反向灭之**/
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指导教师:许景辉多按键花样流水灯的设计摘要:自人类发明计算机以来,单片机技术在社会各领域中得到了广泛的应用。
在流水灯控制系统中,单片机的作用更是发挥的淋漓尽致,成为此系统中的核心部分。
利用单片机的可编程功能,软硬件结合,来控制LED的灯的开通关断,通过丰富多彩的花样变化,给人以不同的视觉效果,更是成为现代商业社会不可缺少吸引消费者的普遍手段。
本文结合单片机的突出特点,着重介绍通过单片机来实现多按键花样流水灯的变化,主要包括其软件程序的编写、硬件电路的搭接、器件的选择,以及通过PROTEUS的仿真和PCB板的制作等。
关键词:单片机、可编程控制器、多按键花样流水灯、准确。
目录前言 (4)第一章设计目的和要求 (5)1.1 设计目的 (5)1.2 设计基本要求 (5)第二章方案设计 (6)2.1 方案设计任务分析 (6)2.2硬件系统的设计要求 (6)2.2.1 主控系统 (7)2.2.2花样灯输入及中断控制模块 (7)2.2.3 花样灯输出控制部分 (8)2.2.4 时钟及复位部分电路 (9)2.3 软件总体设计 (13)2.3.1 程序设计流程图 (13)2.3.2 主程序 (13)第三章硬件设计 (17)3.1 80c51单片机 (17)3.2PCB板的生成 (18)第四章软件设计 (20)4.1 中断子程序 (20)4.2 跑马灯子程序 (20)4.3 流水灯子程序 (20)4.4戏水灯子程序 (21)4.5 延时子程序 (21)第五章操作说明 (22)5.1 跑马灯操作说明 (22)5.2 流水等操作说明 (22)5.3 戏水灯操作说明 (23)5.4 顺寻循环执行三种花样灯操作说明 (23)结束语 (24)参考文献 (25)前言单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O 接口电路通过应刷电路板上的总线连成一体的完整计算机系统。
[1]从1971年出现单片机的雏形开始,短短四十多年的时间里,单片机便社会各领域中得到了广泛的应用在流水灯控制系统中,单片机更是取代了由齿轮调节延迟时间的旧式控制系统,成为日后此系统中的核心部分。
由于单片机具有一些突出的优点:体积小、重量轻、电源单一、功耗低;功能强、价格低;数据大都在单片机内部传送,运行速度快、抗干扰能力强、可靠性高,所以单片机被广泛的应用于测控系统、数据采集、智能仪器仪表、机电一体化产品、智能接口、计算机通信以及单片机的多级系统等领域。
[2]本文主要讲的是单片机,课题名称为多按键花样流水灯,它使我们学会了如何使用单片机控制我们日常生活中的多设备设施的应用。
通过本课题的设计以后,使我了解到了单片机的许多方面的应用。
第一章设计目的和要求1.1 设计目的1)掌握51系列单片机的基本硬件结构及工作原理;2)掌握51系列单片机的汇编语言及基本程序设计方法;3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法1.2 设计基本要求多按键花样流水灯采用80c51单片机为控制器件,用于日常商业店铺和商场的装饰,此花样流水灯共有四个按键,分别对应控制着四种花样灯光效果。
当开关K1按下时,执行跑马灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
当K1断开时所有的LED应该都熄灭;当开关k2按下时,执行流水灯程序,共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms 后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。
当开关k2断开时所有LED灯都应熄灭;当开关K3按下时,执行戏水灯程序共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。
然后继续上次操作。
当开关k3断开时所有的LED应该熄灭;当k4按下时,则循环执行上述程序,一直到K4断开,所有的LED熄灭。
第二章方案设计2.1 方案设计任务分析采用标准80c51单片机作为控制器;采用P2口作为输出口控制八个LED的亮灭;P1口为输出口,P1.0,P1.1,P1.2,P1.3分别与四个开关K1,K2,K3,K4相连作为2.2多按键花样流水灯总的电路原理图如图2-2所示整套电路系统由控制系统模块、花样灯输出控制显示模块组成。
如图2-3,花样灯输入控制模块由四个开关,电源,上拉电阻及四个二极管组成。
各开关风别和相应的P1口相连于此同时通过二极管与P3.2(INTO )口相连。
当开关处于断开状态时,各开关所对应P1.N(N 为0到3)口处于高电位状态,当开关闭合时,所对应得P1.N(N 为0到3)口直接与地相连,便处于低电位状态,于此同时二级管也导通,使P3.2(INTO )也经过二极管也直接与地相连,因此P3.2(INTO )的电位便被拉升到低电位,引起外部中断。
此处电路二极管的设置十分必要和关键,利用二极管的单向导电性使得任意开关按下时,不至使得P1.0-P1.3口发生短路,全部被拉到低电位,若无二极管按下任意开关时,四个开关的右端将同时处于低电位,这就使得程序不能准确判断到底是哪个开关闭合,从而就不能顺利执行相应的花样灯程序。
图2-3 花样灯输入控制系统部分电路2.2.3 花样灯输出控制部分如图2-4,为花样灯输出控制部分电路图。
图中共有八个发光二极管,其采用共阳极结构。
输出信号从80c51单片机的P2口输出,每个P2.N(N从1-7)通过总线与其相对应一个发光二极管相连,发光二管与限流电阻相连,设置限流电阻的目的是限制流过发光二极管的电流大小,不至于使其因为热效应损坏。
当P2.N(N从1-7)处于低电平的时候,与其相连的二极管便被点亮,通过对P2口的高低电平的控制便控制了发光二极管的点亮与熄灭。
从而实现花样灯的变化。
图2-4 花样灯输出部分电路2.2.4 时钟及复位部分电路时钟电路单片机本身如同一个复杂的同步时序电路,为了保证同步工作,电路应在唯一的时钟信号控制下,严格地按规定时序工作。
而时钟电路就用于产生单片机工作所需要的时钟信号。
80c51单片机时钟电路示意图如图2-5所示[3]二分频机的运行速度也就快。
[4]也可以由外部时钟电路向片内输入脉冲信号作为单片机的振荡脉冲。
这时外部脉冲信号是经XTAL1引脚引入的,而XTAL2引脚悬空或接地。
对外部信号的占空比没有要求,但高低电平持续的时间不应小于20ns。
这种方式常用于多块芯片同时工作,便于同步。
[5]其外部脉冲接入方式如图2-6所示。
本课设由于只采用了一片单片机,所以采用单片机的内部时钟电路,其晶振频率为12MHZ,其电路图如图2-7所示。
[6]图2-7 时钟部分电路示意图2.3 软件总体设计2.3.1 程序设计流程图ORG 05b0hAJMP MAINORG 003H ;外部中断0入口地址AJMP LOOPMAIN:SETB P3.2 ;外部中断置1SET BEX0 ;允许外部中断0CLR IT0 ;设置电平触发方式SETB EA ;总中断允许SJMP $ ;等待中断LOOP: ;判0转移到相应亮灯方式JNB P1.0,LIGHT1JNB P1.1,LIGHT2JNB P1.2,LIGHT3JNB P1.3,LIGHT4CLR EA ;中断总禁止CLR EX0 ;禁止外部中断0MOV P2,#0FFH ;P2口至高电位,关闭所有LED QUIT: RETI ;中断返回LIGHT1: ;跑马灯程序(100ms)MOV P2,#0FFHMOV A,#0FEHLO1: MOV P2,ALCALL DELAYRL AJNB P1.0,LO1 ;开关闭合继续循环执行SJMP LOOP ;返回到LOOP继续判断LIGHT2: ;流水灯程序CLR P2.0 ;点亮P2.0口LCALL DELAYCLR P2.1LCALL DELAYCLR P2.2LCALL DELAYCLR P2.3LCALL DELAYCLR P2.4LCALL DELAYCLR P2.5LCALL DELAYCLR P2.6LCALL DELAYCLR P2.7LCALL DELAYMOV P2,#0FFH ;P2口全部熄灭LCALL DELAYJNB P1.1,LIGHT2 ;若开关闭合则循环执行SJMP LOOPLIGHT3: ;戏水灯程序MOV P2,#55H ;点亮1,3,5,7号灯LCALL DELAYLCALL DELAYMOV P2,#0AAH ;点亮2,4,6,8号灯LCALL DELAYLCALL DELAYJNB P1.2,LIGHT3SJMP LOOPLIGHT4: ;顺序循环执行三种花样灯MOV P2,#0FFHMOV A,#0FEHLO: MOV P2,ALCALL DELAYRL AJB P2.7,LOLCALL DELAYCLR P2.0LCALL DELAYCLR P2.1LCALL DELAYCLR P2.2LCALL DELAYCLR P2.3LCALL DELAYCLR P2.4LCALL DELAYCLR P2.5LCALL DELAYCLR P2.6LCALL DELAYCLR P2.7LCALL DELAYMOV P2,#0FFHMOV P2,#55HLCALL DELAY ;为观察到明显效果延时200ms LCALL DELAYMOV P2,#0AAHLCALL DELAYLCALL DELAYJNB P1.3,LIGHT4LCALL LOOPDELAY: MOV R6,#200 ;延时100ms程序LOL1: MOV R7,#250LOL2: DJNZ R7,LOL2DJNZ R6,LOL1RET END第三章硬件设计3.1 80c51单片机80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(图3-1 80c51结构图引脚是单片机和外界进行通信的通道连接点,用户只能通过引脚组建控制系统。
从应用的角度来看,引脚的应用是单片机应用的一个重要基础。
因此熟悉引脚是学习应用单片机的基础。
MCS-51系列单片机的引脚封装主要有: PDIP40、PLCC44和PQFP/TQFP44。
不同封装的芯片其引脚的排列位置有所不同,但他们的功能和特性都相同。
方形封装(PLCC44和POFP/TQFP44)有44引脚,其中4个NC为空引脚。
采用40引脚PDIP封装的80C51单片机的引脚排列及逻辑符号如图3-2所示。