单片机系统开发之利用中断控制8盏灯的循环点亮

合集下载

单片机系统开发之利用中断控制8盏灯的循环点亮

单片机系统开发之利用中断控制8盏灯的循环点亮

单片机应用系统启垦做业之阳早格格创做利用中断统造8盏灯格式闪烁书院:沈阳理工大教博业:疑息对于抗技能教号:1411050121姓名:吴志飞1.系统安排央供:设晶振频次为12MHZ,利用中断系统使主步调P0心举止格式隐现.隐现顺序为:(1)P0心连交8个LED,依次左移闪明;(2)当按下INT1时,8个LED灯依次左移闪明;(3)当按下INT0时,8个灯闪明5次.2.系统安排分解:单片机的最小系统+8盏LED灯+排电阻.本系统波及到二个中中断,中断劣先级,左移左移等问题.正在安排时大概要安排中断劣先级.左移左移需要用到二个移位指令RL战RR.3.系统本理图安排:系统所需本件为单片机AT89C51,瓷片电容CAP30pf,晶振CRYSTAL12MHZ ,电解电容CAP-ELEC ,电阻RES ,收光二极管LED8只,排电阻RESPACK-8以及启闭SWITCH.利用中断统造8盏LED 灯格式闪烁的本理图如1.1所示.图1.1 利用中断造8盏LED 灯格式闪烁本理图4.系统过程图安排:5.汇编源步调:ORG 0000HAJMP STARTORG 0003HAJMP INTR0ORG 0013HAJMP INTR1 START:MOV IE,#85HMOV IP,#01HMOV TCON,#00HMOV SP,#60HMOV P0,#0FFHMOV P3,#0FFHMOV A,#0FEHLP1: MOV P0,ARL ALCALL DELAYSJMP LP1INTR0:PUSH ACCPUSH PSWMOV R1,#10MOV A,#00H XH: MOV P0,ALCALL DELAYCPL ADJNZ R1, XHPOP PSWPOP ACCRETIINTR1:PUSH ACCPUSH PSWMOV A,#7FHMOV R2,#16XH1: MOV P0,ALCALL DELAYRR ADJNZ R2, XH1POP PSWPOP ACCRETIDELAY: MOV R7,#20 DELAY1: MOV R6,#20 DELAY2: MOV R5,#248DJNZ R5,$DJNZ R6,DELAY2DJNZ R7,DELAY1RETENDC谈话源步调:#include<reg51.h>#include<intrins.h>void delay();#define uint unsigned int#define uchar unsigned char uchar temp;uint i;void main(void){IE=0X85;IP=0X01;TCON=0X00;temp=0xfe;while(1){P0=temp;delay();temp=_crol_(temp,1); }}void int0() interrupt 0{ uchar s;s=0x00;for(i=0;i<10;i++){P0=s;delay();s=~s;}}void int1() interrupt 2{uchar temp1;temp1=0x7f;while(1){P0=temp1;delay();temp1=_cror_(temp1,1); }}void delay(){uint i,j;for(i=0;i<256;i++)for(j=0;j<256;j++){;}6.正在keil中举止调试:(1)创造“中断统造8盏灯格式闪明”名目,采用单片机型号为AT89C51,汇编源步调,保存为“中断统造8盏灯格式闪明.ASM”或者“中断统造8盏灯格式闪明.C”.(2)将源步调增加到名目中.(3)挨启名目菜单,采用Options for target’target 1’选项,面打output一项,正在Create HEX File前挨上对于勾.(4)编译源步调,如果有问题,则需要调试建改,若不过失,则乐成创造“中断统造8盏灯格式闪明.HEX”文献.图1.3 编译乐成提示图7.正在Proteus中举止仿实:挨启Proteus硬件,用左键单打单片机,正在出现的对于话框中,增加“中断统造8盏灯格式闪明.HEX”文献,启初仿实,效验如下图所示.正在不中部中断时,LED依次左移闪明,如图1.4所示.当按下INT0时,爆收中断,单片机实止中断子步调0,如图1.5所示LED闪明5次,而后返回主步调.当按下INT1时,单片机实止中断子步调1,LED依次左移闪明,如图1.6所示.正在实止中断子步调0时按下INT1无反应,果为INT0的劣先级比INT1下.仿实截止切合安排央供.。

8个led灯循环点亮程序汇编语言

8个led灯循环点亮程序汇编语言

8个led灯循环点亮程序汇编语言asm.
ORG 0000H.
AJMP MAIN.
ORG 0030H.
MAIN:
MOV A, #0FEH ; 初始点亮第一个LED(1111 1110)LOOP:
MOV P1, A.
LCALL DELAY.
RL A ; 循环左移。

SJMP LOOP.
DELAY:
MOV R7, #250 ; 外层循环次数,可以调整延时时间。

D1:
MOV R6, #250.
D2:
DJNZ R6, D2.
DJNZ R7, D1.
RET.
END.
在这个程序中:
1. 程序从地址`0000H`开始,跳转到`MAIN`程序段。

2. 在`MAIN`程序段中,先将`A`的值设置为`0xFEH`,然后把`A`的值赋给`P1`口来点亮第一个LED。

3. 接着调用`DELAY`子函数进行延时,然后通过`RL A`指令将`A`中的值循环左移一位,这样就可以依次点亮下一个LED。

4. `DELAY`子函数通过两层循环来实现简单的延时功能。

`R7`和`R6`作为循环计数器,通过`DJNZ`指令来控制循环次数,从而达到延时的目的。

89C51单片机练习示例:LED灯点亮与熄灭操作

89C51单片机练习示例:LED灯点亮与熄灭操作

89C51单片机练习示例:LED灯点亮与熄灭操作基本要求:1、八个LED灯循环点亮,间隔1秒,最后全亮;2、八个LED灯依次熄灭,间隔1秒,最后全灭;3、八个LED灯同时点亮,保持1秒;4、八个LED灯同时熄灭,保持0.5秒;再将第三、四步重复4遍,最后整个程序重复N遍。

ORG 0000HMAIN:MOV R5,#03H;ACALL PRO1;依次点亮,最后全亮ACALL PRO2;先灯亮,依次灭灯,后全灭ACALL PRO3;八个灯同时亮,保持1秒;八个灯同时灭,保持1秒ACALL PRO4;重复第三步操作,使灯点亮、熄灭4次LJMP MAIN;PRO1:MOV A,#01H;从0号灯开始点亮MOV R4,#08;亮灯个数记录DIANLIANG:MOV R0,A;MOV P0,A;点灯子程序RL A;ORL A,R0;ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序DJNZ R4,DIANLIANG;全亮ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序RETPRO2:MOV A,#0FFH;先亮灯CLR CY;清零CY值MOV R4,#09H;灭灯个数记录XIMIE:MOV R0,A;MOV P0,A;RLC A;ANL A,R0;ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序DJNZ R4,XIMIE;全灭ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序RETPRO3:MOV A,#0FFH; 先点亮,后熄灭MOV P0,A;ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ANL A,#00H;MOV P0,A;ACALL DELAY;调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序RETPRO4:ACALL PRO3;重复点亮,熄灭四次DJNZ R5,PRO4;RETDELAY:MOV R2,#0FFH;延时子程序DEL1:MOV R3,#0FFH;DEL2:NOP;NOP;DJNZ R3,DEL2;DJNZ R2,DEL1;RETEND。

单片机系统开发之利用中断控制8盏灯的循环点亮

单片机系统开发之利用中断控制8盏灯的循环点亮

单片机应用系统开发作业利用中断控制8盏灯花样闪烁学校:沈阳理工大学专业:信息对抗技术学号:1411050121: 吴志飞1.系统设计要求:设晶振频率为12MHZ,利用中断系统使主程序P0 口进行花样显示。

显示规律为:(1)P0 口连接8个LED,依次左移闪亮;(2)当按下INT1时,8个LED灯依次右移闪亮;(3)当按下INTO时,8个灯闪亮5次。

2•系统设计分析:单片机的最小系统+8盏LED灯+非电阻。

本系统涉及到两个外中断,中断优先级,左移右移等问题。

在设计时可能要设计中断优先级。

左移右移需要用到两个移位指令RL 和RF。

3 •系统原理图设计:系统所需原件为单片机AT89C51瓷片电容CAP30p,晶振CRYSTAL12MHZ电解电容CAP-ELEC电阻RES发光二极管LED8只, 排电阻RESPACK-以及开关SWITCH利用中断控制8盏LED灯花样闪烁的原理图如1.1所示o图1.1利用中断制8盏LED灯花样闪烁原理图4•系统流程图设计:保护现场保护现场LED闪亮5次LED右移闪亮恢复现场恢复现场5■系统源程序设计: 汇编源程序:ORG 0000HAJMP STARTORG 0003HAJMP INTR0ORG 0013HAJMP INTR1 START:MOV IE,#85HLP1:MOV IP#01H MOV TCON,#OOH MOV SP#60H MOV P0,#0FFH MOV P3,#0FFH MOV A,#0FEH MOV P0,ARL ALCALL DELAYINTRO:PUSH ACCXH:PUSH PSW MOV R1,#10 MOV A,#00HMOV P0,A LCALL DELAY CPL ADJNZ R1, XHPOP PSWPOP ACCRETIINTR1:PUSH ACCPUSH PSWMOV A,#7FHMOV R2,#16XH1: MOV P0,ALCALL DELAYRR ADJNZ R2, XH1POP PSWPOP ACCRETIDELA Y: MOV R7,#20 DELA Y1: MOV R6,#20 DELA Y2: MOV R5,#248DJNZ R5,$DJNZ R6,DELA Y2DJNZ R7,DELA Y1RETENDC语言源程序:#in clude<reg51.h>#i ncludevi ntri ns.h>void delay();#defi ne uint un sig ned int #defi ne uchar un sig ned char uchar temp;uint i;void mai n(void){IE=0X85;IP=0X01;TCON=OXOO;temp=0xfe;while(1){P0=temp;delay();temp=_crol_(temp,1);}}void in t0() in terrupt 0 { uchar s;s=0x00;for(i=O;i<1O;i++){PO=s;delay();s=〜s;}}void in t1() in terrupt 2{uchar tempi;temp1=0x7f;while(1){P0=temp1;delay();temp1=_cror_(temp1,1);}}void delay(){uint i,j;for(i=0;i<256;i++)for(j=0;j<256;j++) {;}6. 在keil中进行调试:(1)创建“中断控制8盏灯花样闪亮”项目,选择单片机型号为AT89C51汇编源程序,保存为“中断控制8盏灯花样闪亮.ASM'或“中断控制8盏灯花样闪亮.C'。

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计

摘要“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。

该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。

深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。

本文详述了8个LED灯循环闪烁的课程设计。

设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。

一、设计目的1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。

深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。

4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。

通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计内容根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。

设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

三、设计要求使用8255A可编程接口芯片实现8个LED灯以十种不同的方式显示。

任务9 用自制的跑马灯电路实现8只LED循环点亮

任务9  用自制的跑马灯电路实现8只LED循环点亮

• 出栈指令格式为:POP direct ;(direct)←(SP) • • ;SP←SP-1 该指令执行时先将SP所指单元数据弹出至direct所指的地址单元, 然后SP减1指向新的栈顶单元地址。
• •
4)子程序调用指令 ) 子程序调用指令的功能调用子程序,执行时先将断点地址(调用 指令的下一条指令的首地址)压入堆栈区,然后将子程序的首地址送 PC,执行子程序。 (1)长调用指令LCALL addr16 ;PC←PC+3 ;SP←SP+1 ;(SP)←PC7-0 ;SP←SP+1 ;(SP)←PC15-8 ; PC←addr16
执行该指令时,先将PC+2得到下一条指令的16位首地址,并将其压入堆栈, 最后子程序标号所在的子程序入口地址送给PC,CPU转入子程序执行。由于短 调用指令中的PC高5位地址不变,所以其转移的范围为2KB。
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮 程序分析讲解
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
9.1.3 跟我学 1)减1不为零循环转移指令 ) 不为零循环转移指令DJNZ 不为零循环转移指令 DJNZ Rn,rel ;PC←PC+2,Rn←(Rn)-1,若(Rn)≠0,则PC←PC+rel DJNZ direct,rel ;PC←PC+2, direct←(direct)-1,若(direct)≠0,则 PC←PC+rel; 每执行一次循环转移指令,第一操作数(Rn或direct中的数)减1,并 保存,若减1后结果不为零,则转移至目的地(标号处);若减1后结果为零, 则程序按顺序执行下一条指令。

单片机课程设计 8个LED灯来回点亮分析

单片机课程设计 8个LED灯来回点亮分析

目录第一章绪论--------------------------------------------------------3 第二章设计目的及要求-----------------------------------------5 1.1 设计目的--------------------------------------------------------5 1.2 设计要求--------------------------------------------------------5 第三章设计电路原理----------- -------------------------------7 3.1 控制部分的设计与选择-------------------------------------7 3.2 LED显示方案-----------------------------------------------8 第四章硬件系统------------------------------------------------9 4.1 原件清单-------------------------------------------------------9 4.2 单片机AT89C51---------------------------------------------9 4.3 单片机时钟电路--------------------------------------------104.4 单片机复位电路---------------------------------------------11 4.5 工作电路------------------------------------------------------12 第五章软件设计------------------------------------------------135.1 程序流程图--------------------------------------------------13 5.2 编辑源程序--------------------------------------------------14 第六章系统调试与仿真结果--------------------------------166.1系统调试-----------------------------------------------------16 6.2仿真结果----------------------------------------------------16 总结------------------------------------------------------------- 19 参考文献--------------------------------------------------------20第一章绪论课题简介当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品。

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计

摘要“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。

该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。

深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。

本文详述了8个LED灯循环闪烁的课程设计。

设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。

一、设计目的1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。

深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。

4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。

通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计内容根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。

设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

三、设计要求使用8255A可编程接口芯片实现8个LED灯以十种不同的方式显示。

单片机课程设计-8个LED灯来回点亮

单片机课程设计-8个LED灯来回点亮
第一章绪论
课题简介
当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品。而电子LED灯已跨入了我们生活的众多电子领域。在众多场合随处可见的闪光灯,流水灯不仅大方美观而且十分节能。然而控制它们的单片机却是一个不能被忽视的角色。
单片机简介
第二章设计目的及要求
2.1设计目的
通过本次课题设计,应用《单片机原理及应用》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于89C51单片机的系统设计有一个比较感性的认识,并具备一定程度的设计能力。
5.2编辑源程序--------------------------------------------------14
第六章系统调试与仿真结果--------------------------------16
6.1系统调试-----------------------------------------------------16
4.5工作电路------------------------------------------------------12
第五章软件设计------------------------------------------------13
5.1程序流程图--------------------------------------------------13
培养实践技能,提高分析和解决实际问题的能力。
2.2设计要求
(1)认真研究设计任务书,明确设计要求、条件、内容和步骤;复习课程有关内容,熟悉有关单元电路的设计方法和步骤;搜集、分析、消化相关资料、软件等;掌握微型计算机应用系统软件设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等

单片机教学规划8个LED灯来回点亮

单片机教学规划8个LED灯来回点亮

目录第一章绪论--------------------------------------------------------3第二章设计目的及要求-----------------------------------------51.1 设计目的--------------------------------------------------------51.2 设计要求--------------------------------------------------------5第三章设计电路原理----------- -------------------------------73.1 控制部分的设计与选择-------------------------------------73.2 LED显示方案-----------------------------------------------8第四章硬件系统------------------------------------------------94.1 原件清单-------------------------------------------------------94.2 单片机AT89C51---------------------------------------------94.3 单片机时钟电路--------------------------------------------104.4 单片机复位电路---------------------------------------------114.5 工作电路------------------------------------------------------12第五章软件设计------------------------------------------------135.1 程序流程图--------------------------------------------------135.2 编辑源程序--------------------------------------------------14第六章系统调试与仿真结果--------------------------------166.1系统调试-----------------------------------------------------166.2仿真结果----------------------------------------------------16总结------------------------------------------------------------- 19参考文献--------------------------------------------------------2 0第一章绪论课题简介当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品。

单片机实验――利用中断控制LED灯(精)

单片机实验――利用中断控制LED灯(精)

单片机实验——利用中断控制LED灯1.实验目的(1掌握单片机中断的基本原理。

(2掌握单片机中断程序的编制方法。

2.预习要点(1单片机中断基本原理(2中断程序编制方法3.实验设备计算机、单片机实验箱、信号发生器。

4.实验内容基本要求:将信号发生器输出的脉冲信号连接到CPU的INT0上,将CPU的P1.0到P1.7和八个LED连接,脉冲信号为5V、100Hz,每输入一百个脉冲LED灯亮一次,并且LED灯顺序循环移位一次,形成跑马灯。

扩展要求:提高输入脉冲频率,但跑马灯的显示频率不变。

实验4ORG 0000HAJMP MAIN;******************************************;中断子程序入口地址ORG 0003HLJMP EXINT0;******************************************;主程序ORG 0030HMAIN:MOV SP,#70HSETB IT0 ;设置为下降沿触发SETB EX0 ;开INT0的中断开关SETB EA ;开总中断开关MOV R0,#01H ;只让一盏灯亮,R0赋给P1口MOV R3,#00H ;R3用来记中断次数MOV A,R0MOV P1,AHERE:SJMP HERE ;死循环,还有另外一种形式是SJMP $ ;******************************************;外中断0服务程序EXINT0:INC R3 ;每来一次中断R3自加1CJNE R3,#100,NEXT ;当来了100次中断之后,R3清零,然后P1口的MOV R3,#00H ;数左移一位,也就是让下一个LED亮MOV A,R0RL AMOV P1,AMOV R0,A ;保存左移之后的结果NEXT:RETI;******************************************END实验4扩展ORG 0000HAJMP MAIN;******************************************;中断入口地址ORG 0003HLJMP EXINT0;******************************************;主程序ORG 0030HMAIN:MOV SP,#70H;初始化外中断0SETB IT0SETB EX0SETB EA;初始化8155MOV DPTR,#0100HMOV A,#03HMOVX @DPTR,A;显示缓存区MOV 30H,#1MOV 31H,#2MOV 32H,#3MOV 33H,#4MOV 34H,#5MOV 35H,#6MOV 36H,#7MOV 37H,#8MOV 38H,#9 ;这一句后面的CJNE会用到,用来判断1-8是否已经显示完了MOV R2,#00H ;用R2来记中断来的次数MOV 40H,#01H ;用40H存放LED的状态MOV A,40HMOV P1,AMOV R0,#30H ;显示缓存区首地址给R0MOV R4,#0FEH ;字位送R4,因为只需要亮一个数码管,所以选择静态显示,没必要用动态显示LOOP:LCALL DISPLAY ;循环调用显示程序SJMP LOOP;******************************************;中断子程序EXINT0:INC R2CJNE R2,#100,NEXT ;来100次中断之后才进行操作MOV R2,#00HMOV A,40H ;移动LEDRL AMOV P1,AMOV 40H,AINC R0 ;让显示的数+1CJNE @R0,#9,NEXT ;如果到了9就回到1,因为我们只显示1-8 MOV R0,#30HNEXT:RETI;******************************************;显示子程序DISPLAY:MOV DPTR,#0102H ;送字位MOV A,R4MOVX @DPTR,AMOV DPTR,#DTAB ;查表,送字形MOV A,@R0MOVC A,@A+DPTRMOV DPTR,#0101HMOVX @DPTR,ALCALL DELAYLD1:RET;****************************************** ;字形表DTAB:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH ;0-FDB 77H,7CH,39H,5EH,79HDB 71H;****************************************** ;延时1ms子程序DELAY:MOV R7,#02HDEL1:MOV R6,#0FFHDEL2:DJNZ R6,DEL2DJNZ R7,DEL1RET;****************************************** ENDORG 0000HAJMP MAIN;中断入口地址ORG 0003HLJMP EXINT0;******************主程序ORG 0030HMAIN:MOV SP,#70H;初始化外中断0SETB IT0SETB EX0SETB EA;初始化8155MOV DPTR,#0100HMOV A,#03HMOVX @DPTR,A;显示缓存区MOV 30H,#1MOV 31H,#2MOV 32H,#3MOV 33H,#4MOV 34H,#5MOV 35H,#6MOV 36H,#7MOV 37H,#8MOV 38H,#9MOV 40H,#01H ;用40H存发光二极管的状态MOV R2,#00HMOV A,40HMOV P1,AMOV R0,#30HMOV R4,#0FEHLOOP:LCALL DISPLAY SJMP LOOP;************************* ;中断子程序EXINT0:INC R2CJNE R2,#100,NEXTMOV R2,#00HMOV A,40HRL AMOV P1,AMOV 40H,AINC R0CJNE @R0,#9,NEXT1MOV R0,#30HNEXT1:MOV A,R4RL AMOV R4,ANEXT:RETI;显示子程序DISPLAY:MOV A,R4MOV DPTR,#0102HMOVX @DPTR,AMOV DPTR,#DTABMOV A,@R0MOVC A,@A+DPTRMOV DPTR,#0101HMOVX @DPTR,ALCALL DELAY LD1:RET ;字形表 DTAB: DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH ;延时 1ms 子程序 DELAY: MOVR7,#02H DEL1:MOV R6,#0FFH DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RET END ;说明: ;R4 是保存数码管字位 ;R3 ;R2 是保存中断次数满 100 清 0 ;R1 ;R0 是保存数码管的字型实验 5(1 ORG 0000H SJMPMAIN ;****************************************8*********** ;中断入口地址ORG 000BH LJMP T0INT ;************************************************ ;主程序 ORG 0030H MAIN:MOV SP,#70H MOV TMOD,#01H ;T0 选择方式 1,16 位定时器 MOV TH0,#0F6H ;#9EH ;因为用示波器观察 20HZ 的方波不易观察,频率太低了,所以我换成了 MOV TL0,#3CH ;#58H ;200HZ 的,原理都是一样的,这样只是为了让波形更容易观察,后者是 20HZ 的初值 SETB EA ;开总中断 SETB ET0 ;开定时器 0 中断 SETB TR0 ;启动定时器 0 SJMP$ ;死循环 ;********************************************************;定时器 0 中断子程序 (25ms 2.5ms 来一次中断 T0INT:MOV TH0,#0F6H ;#9EH ;重新赋初值 MOV TL0,#3CH ;#58H CPL P1.1 ;改变电平RETI ;******************************************************。

单片机跑马灯p0引脚对8盏灯的控制

单片机跑马灯p0引脚对8盏灯的控制

单片机跑马灯输入引脚对8盏灯的控制1. 简介单片机跑马灯是一种常见的电子设计,通过程序控制多个灯的亮灭顺序,实现灯光闪烁的效果。

在这个设计中,我们将着重讨论单片机跑马灯中输入引脚对8盏灯的控制方法。

2. 单片机跑马灯的原理单片机跑马灯的设计原理是通过单片机的输出引脚控制LED灯的亮灭。

通过程序控制输出引脚的电平变化,可以控制LED灯的亮度,从而实现不同的灯光效果。

3. 输入引脚对8盏灯的控制方法在单片机跑马灯中,一般使用输入引脚来控制灯光的亮灭顺序。

对于8盏灯的控制,我们可以通过以下方法实现:3.1 使用二进制控制可以通过单片机的IO口输出8位二进制数,然后通过这个二进制数的变化来控制8盏灯的亮灭顺序。

可以通过循环移位的方法来实现灯光的顺序变化,从而实现跑马灯的效果。

3.2 使用计数器可以通过单片机上的定时器或者计数器来控制灯光的亮灭顺序。

通过定时器的中断生成,可以实现灯光的循环控制,从而实现跑马灯的效果。

3.3 使用外部输入还可以通过外部的输入引脚来控制灯光的亮灭顺序。

可以通过按键或者其他传感器来控制灯光的变化,从而实现跑马灯的效果。

4. 实际案例以下是一个使用输入引脚对8盏灯进行控制的实际案例:4.1 案例描述我们使用STM32单片机来设计一个跑马灯程序,通过外部引脚控制8盏LED灯的亮灭顺序。

我们设计了一个简单的电路,将8盏LED灯连接到单片机的8个引脚上,然后通过外部的输入引脚来控制LED灯的亮灭。

4.2 实现方法我们首先编写了一个简单的程序,通过外部输入引脚来控制LED灯的亮灭顺序。

我们使用定时器的中断功能,以固定的时间间隔来控制LED灯的亮灭,从而实现跑马灯的效果。

4.3 测试结果经过测试,我们成功实现了通过外部输入引脚控制8盏LED灯的跑马灯效果。

我们可以通过外部的按键来控制LED灯的亮灭顺序,从而实现不同的灯光效果。

5. 结论通过上述案例,我们可以看到,通过输入引脚控制8盏LED灯的跑马灯效果是可行的。

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计

摘要“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。

该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。

深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。

本文详述了8个LED灯循环闪烁的课程设计。

设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。

一、设计目的1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。

深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。

4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。

通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计内容根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。

设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

三、设计要求使用8255A可编程接口芯片实现8个LED灯以十种不同的方式显示。

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计

摘要“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。

该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。

深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。

本文详述了8个LED灯循环闪烁的课程设计。

设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。

一、设计目的1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。

深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。

4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。

通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计内容根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。

设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

三、设计要求使用8255A可编程接口芯片实现8个LED灯以十种不同的方式显示。

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计摘要“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。

该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。

深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。

本文详述了8个LED灯循环闪烁的课程设计。

设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。

一、设计目的1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。

深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。

4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。

通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计内容根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。

设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。

然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机应用系统开发作业利用中断控制8盏灯花样闪烁
学校:沈阳理工大学
专业:信息对抗技术
学号:1411050121
姓名:吴志飞
1.系统设计要求:
设晶振频率为12MHZ,利用中断系统使主程序P0口进行花样显示。

显示规律为:
(1)P0口连接8个LED,依次左移闪亮;
(2)当按下INT1时,8个LED灯依次右移闪亮;
(3)当按下INT0时,8个灯闪亮5次。

2.系统设计分析:
单片机的最小系统+8盏LED灯+排电阻。

本系统涉及到两个外中断,中断优先级,左移右移等问题。

在设计时可能要设计中断优先级。

左移右移需要用到两个移位指令RL 和RR。

3.系统原理图设计:
系统所需原件为单片机AT89C51,瓷片电容CAP30pf,晶振CRYSTAL12MHZ,电解电容CAP-ELEC,电阻RES,发光二极管LED8只,排电阻RESPACK-8以及开关SWITCH。

利用中断控制8盏LED灯花样
闪烁的原理图如1.1所示。

图1.1 利用中断制8盏LED灯花样闪烁原理图4.系统流程图设计:
5.系统源程序设计:汇编源程序:
ORG 0000H
AJMP START
ORG 0003H
AJMP INTR0
ORG 0013H
AJMP INTR1 START:MOV IE,#85H
MOV IP,#01H
MOV TCON,#00H MOV SP,#60H
MOV P0,#0FFH
MOV P3,#0FFH
MOV A,#0FEH
LP1: MOV P0,A
RL A
LCALL DELAY
SJMP LP1
INTR0:PUSH ACC
PUSH PSW
MOV R1,#10
MOV A,#00H
XH: MOV P0,A
LCALL DELAY
CPL A
DJNZ R1, XH
POP PSW
POP ACC
RETI
INTR1:PUSH ACC
PUSH PSW
MOV A,#7FH
MOV R2,#16
XH1: MOV P0,A
LCALL DELAY
RR A
DJNZ R2, XH1
POP PSW
POP ACC
RETI
DELAY: MOV R7,#20 DELAY1: MOV R6,#20 DELAY2: MOV R5,#248 DJNZ R5,$
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
END
C语言源程序:
#include<reg51.h>
#include<intrins.h>
void delay();
#define uint unsigned int #define uchar unsigned char uchar temp;
uint i;
void main(void)
{
IE=0X85;
IP=0X01;
TCON=0X00;
temp=0xfe;
while(1)
{
P0=temp;
delay();
temp=_crol_(temp,1);
}
}
void int0() interrupt 0 { uchar s;
s=0x00;
for(i=0;i<10;i++)
{
P0=s;
delay();
s=~s;
}
}
void int1() interrupt 2 {
uchar temp1;
temp1=0x7f;
while(1)
{
P0=temp1;
delay();
temp1=_cror_(temp1,1);
}
}
void delay()
{
uint i,j;
for(i=0;i<256;i++)
for(j=0;j<256;j++)
{;}
6.在keil中进行调试:
(1)创建“中断控制8盏灯花样闪亮”项目,选择单片机型号为AT89C51,汇编源程序,保存为“中断控制8盏灯花样闪亮.ASM”或“中断控制8盏灯花样闪亮.C”。

(2)将源程序添加到项目中。

(3)打开项目菜单,选择Options for target’target 1’选项,点击output一项,在Create HEX File前打上对勾。

(4)编译源程序,如果有问题,则需要调试修改,若没有错误,则成功创建“中断控制8盏灯花样闪亮.HEX”文件。

图1.3 编译成功提示图
7.在Proteus中进行仿真:
打开Proteus软件,用左键单击单片机,在出现的对话框中,添加“中断控制8盏灯花样闪亮.HEX”文件,开始仿真,效果如下图所示。

图1.4 中断控制8盏灯花样闪亮仿真图
图1.5 中断控制8盏灯花样闪亮仿真图
传播优秀Word版文档,希望对您有帮助,可双击去除!
图1.6 中断控制8盏灯花样闪亮仿真图
在没有外部中断时,LED依次左移闪亮,如图1.4所示。

当按下INT0时,发生中断,单片机执行中断子程序0,如图1.5所示LED闪亮5次,然后返回主程序。

当按下INT1时,单片机执行中断子程序1,LED依次右移闪亮,如图1.6所示。

在执行中断子程序0时按下INT1无反应,因为INT0的优先级比INT1高。

仿真结果符合设计要求。

-----精心整理,希望对您有所帮助!。

相关文档
最新文档