多按键花样流水灯设计
- 格式:doc
- 大小:791.50 KB
- 文档页数:26
【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显示二极管,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。
应用工程学院单片机应用技术实训报告专业:应用电子学号: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进制数对对单片机编程,从而实现对彩灯控制。
多功能流水灯的设计一.设计要求:1.设计一8盏彩灯控制电路,使彩灯可以向左,向右流动、全亮、全灭四种功能。
功能变换可以手控也可以自控。
2.自动功能变换时间10秒。
二.总体方案构思:用Verilog语言来为单片机编程,通过编程来控制单片机各引脚在不同时间输出的不同的电平,进而控制个发光二级管的亮灭,以及控制流水灯的流速和流动方向。
1.使用按钮(auto)来控制手动或自动。
2.因为需要向左,向右,全亮,全灭四种功能,所以需要两个开关(btn1和btn2),分别用开和关两种状态表示,即(00,01,10,11)。
3.使用clk时钟来记时和触发事件。
三.实验器材:电脑和LED设备四.程序如下:module LED(clk,auto,btn1,btn2,led);input clk;input auto;input btn1;input btn2;output reg [7:0] led;reg [29:0] count;//1ns的计数器reg [3:0] count_10;//10秒的计数器reg [1:0] status;//记录当前LED灯流动的情况:"00左到右,01右到左,10全亮,11全灭"reg [1:0] type;reg second_1;//1秒的标志reg second_10;//10秒的标志initialbeginstatus<=2'b00;type<=2'b00;count<=30'b0;count_10<=4'b0;second_1<=1'b0;second_10<=1'b0;endalways@(posedge clk)//给出1s的标志和10s的标志beginif(count<25000000)//等待1s的到来begincount<=count+1;second_1<=0;second_10<=0;endelsebegincount<=0;second_1<=1;count_10<=count_10+1;if(count_10>=4'd10)beginsecond_10<=1;endendendalways@(posedge clk)//当自动的情况时,每10s变化一次流动状态beginif(auto==1 && second_1==1)beginif(second_10==1)beginif(status==2'b11)beginstatus<=2'b00;endelsebeginstatus<=status+1;endendendendalways@(posedge clk)//设置总变化状态等于手动或自动的状态beginif(second_1==1)beginif(auto==1)//自动begintype<=status;endelse//手动begintype<={btn1,btn2};endendendalways@(posedge clk)//根据type设置LED灯情况beginif(second_1==1)beginif(type==00)//左到右beginif(led==8'b00000000 || led==8'b11111111)beginled<=8'b10000000;endelsebeginled<=led>>1;endendelse if(type==01)//右到左beginif(led==8'b00000000 || led==8'b11111111)beginled<=8'b00000001;endelsebeginled<=led<<1;endendelse if(type==10)//全亮beginled<=8'b11111111;endelse//全灭beginled<=8'b00000000;endendendendmodule五.测试图如下:六.个人体会:在这次实验中收货颇丰,我学会了使用简单的Verilog语言,更加深入的学习了数字逻辑,还有更多的,我学会和同学们合作,讨论,去解决问题。
电子技术课程设计题目花样流水灯的设计院(系)名称信息工程学院专业班级10 专升本一班学号100310026学生姓名江涛指导教师2011年6月16日课程设计任务书2010—2011学年第二学期专业:电子信息工程学号:100310026 姓名:江涛课程设计名称:单片机原理及应用课程设计设计题目:花样流水灯设计完成期限:自2011 年 5 月30 日至2011 年 6 月10 日共 2 周一、设计依据城市夜景中,变幻多姿的霓虹灯历来是一道亮丽的风景。
利用单片机的自动控制功能,设计出相应不同的电路,可以实现彩灯不同模式的流水效果。
本设计通过对器件选择和线路连接进行分析讨论,结合相应的软件设计,达到相应的设计要求。
通过本设计,要求对多种流水灯的连线和程序控制方式进行讨论,并对软件设计能提出相应建设性意见,同时写出合格的课程设计论文。
二、要求及主要内容1.硬件电路设计89C51应用系统设计(晶振电路, 上电复位电路)P1口接八个彩灯P3.0---P3.7接8个开关提供8种控制方式,共实现20种不同的亮灯方式。
2.程序设计:先画流程图再根据流程图写程序(1)主程序设计:查询程序八个分支:停止,1灯流水,2灯流水,1灯间隔,2灯间隔,快速/慢速,循环,正流水/倒流水,每个子程序执行完后返回主程序。
(2)子程序设计:停止;1灯流水子程序设计;2灯流水子程序设计;1灯间隔子程序设计;2灯间隔子程序设计;0.5秒延时子程序;2秒延时子程序;正流水/倒流水子程序设计,循环子程序设计。
3.选芯片, 元件按设计连线4.完成子程序调试(1)实验板与PC机联机。
(2)输入子程序单步执行。
如果流水灯显示错误, 检查接口是否有误, 若无误再检查控制代码,直至符合要求(3)在延时后设断点, 每执行1次流水灯移动1次。
(4)连续执行完成1种流水灯的调试。
(5)改变控制代码逐个完成所有子程序。
5.完成总调试(1)输入主程序及子程序。
(2)按子程序调试执行, 先执行1灯流水, 成功后复位。
指导教师:许景辉多按键花样流水灯的设计摘要:自人类发明计算机以来,单片机技术在社会各领域中得到了广泛的应用。
在流水灯控制系统中,单片机的作用更是发挥的淋漓尽致,成为此系统中的核心部分。
利用单片机的可编程功能,软硬件结合,来控制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所示。