精品键控流水灯设计Word文档格式.docx

上传人:b****6 文档编号:20097176 上传时间:2023-01-16 格式:DOCX 页数:13 大小:206.54KB
下载 相关 举报
精品键控流水灯设计Word文档格式.docx_第1页
第1页 / 共13页
精品键控流水灯设计Word文档格式.docx_第2页
第2页 / 共13页
精品键控流水灯设计Word文档格式.docx_第3页
第3页 / 共13页
精品键控流水灯设计Word文档格式.docx_第4页
第4页 / 共13页
精品键控流水灯设计Word文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

精品键控流水灯设计Word文档格式.docx

《精品键控流水灯设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《精品键控流水灯设计Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

精品键控流水灯设计Word文档格式.docx

2中断系统概述

1.中断概念:

中断是指计算机在执行某一程序的过程中,由于计算机系统内、外的某种原因,而必须中止原来程序的执行,转去执行相应的处理程序,待处理结束之后,再回来继续执行被中止的原程序的过程。

2.中断作用:

采用了中断技术后的计算机,可以解决CPU与外设之间速度匹配的问题,使计算机可以及时处理系统中许多随机的参数和信息,同时,它也提高了计算机处理故障与应变的能力。

3.中断的处理过程:

分为四步,第一是中断请求,第二是中断响应,第三是中断服务,第四是中断返回.

3总体设计

实现这个课题我使用AT89C51作为控制主体,使用八个共阳极发光二极管作为LED显示流水灯,外接两个按钮,一个按键显示一种花样。

外接一个晶振来提供外接时钟脉冲。

模块图如下图所示

系统电路设计图

程序流程图

4模块设计

主体控制模块

芯片AT89C51是核心,P0、P3口均可以作为I/O口使用。

八个LED灯接在AT89C51的P0口上,P3口的P3。

2和P3。

3分别接一个按键,P3.2口的按键实现八个LED灯闪烁五次,P3.3口的按键让LED灯循环右移。

按键控制模块

按键控制模块采用独立式按键接口设计。

独立式按键是每一个按键占用一根I/O端线.特点:

各个按键相互独立,电路配置灵活;

按键数量较多时,I/O端线耗费较多,电路复杂;

软件结构简单。

时钟模块

时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过18脚、19脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。

电路中的C1、C2取30Pf左右,二晶体振荡器的频率范围通常是1。

2—12MHZ,晶体振荡器的频率越高,振荡频率越高。

显示模块

显示模块主体是八个LED灯。

都是接的高电平.当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。

根据发光位置和个数的不同可显示出各种花样.

5程序设计

C语言程序

#include"

reg51.h"

intrins。

h"

#defineuintunsignedint

voiddelay(uintm)

{

uinti;

for(;

m〉0;

m-—)

for(i=0;

i<

124;

i++)

{;

}

voidTimer0()interrupt0

statick;

P0=0xff;

for(k=0;

k<

10;

k++)

P0=~P0;

delay(500);

voidTimer2()interrupt2

unsignedcharoutdata=0x7f;

while

(1)

P0=outdata;

outdata=_cror_(outdata,1);

voidmain()

unsignedcharg=0xfe;

IT0=0;

IT1=0;

EA=1;

EX1=1;

EX0=1;

PX0=1;

P0=g;

g=_crol_(g,1);

delay(500);

汇编程序

ORG0000H

AJMPSTART

ORG0003H

AJMPINTR0

ORG0013H

AJMPINTR1

START:

MOVIE,#85H

MOVIP,#01H

MOVTCON,#00H

MOVSP,#60H

MOVP3,#0FFH

MOVA,#0FEH

LOOP:

MOVP0,A

LCALLDELAY

RLA

AJMPLOOP

INTR0:

PUSHACC

PUSHPSW

SETBRS0

MOVR3,#05H

LP11:

MOVP0,#00H

LCALLDELAY

MOVP0,#0FFH

DJNZR3,LP11

AJMPLP3

LP3:

NOP

POPPSW

POPACC

RETI

INTR1:

PUSHACC

MOVA,#7FH

LOOP1:

LCALLDELAY

RRA

AJMPLOOP1

POPPSW

DELAY:

MOVR7,#45

DELA1:

MOVR6,#20

DELA2:

MOVR5,#248

DJNZR5,$

DJNZR6,DELA2

DJNZR7,DELA1

RET

END

没有加入中断的c语言程序

#include”reg51.h”

intrins.h"

#defineuintunsignedint

uinti;

for(;

m>

0;

m--)

for(i=0;

124;

{;

}

voidshanshuo()

unsignedintk;

if((P3|0xfb)!

=0xff)

for(k=0;

k〈10;

delay(1000);

unsignedcharoutdata=0x7f;

;

P0=g;

shanshuo();

if((P3|0xf7)!

shanshuo();

outdata=_cror_(outdata,1);

g=_crol_(g,1);

delay(1000);

张老师,这个没有用中断的c语言程序利用for语句和if语句的相互嵌套,实现了中断里面的优先次序,但系统的灵活性还是没有用中断的程序好,但这个程序也是我花时间写出来的,当时就是想,能不能不用中断也实现这样的功能,虽然这个程序没有按要求做,但我还是想写在这里,毕竟这也是我的成果,希望老师能理解。

6系统的调试与仿真

当没有发生中断时,八个LED灯是循环左移闪亮的

当INTO发生中断时,八个LED灯闪烁五次

当INT1发生中断时,八个LED灯是循环右移闪亮的

对于这次的调试,比上次的情况好多了,开始做汇编语言的时候,仿真时,系统循环左移老是不对,总是两个灯一起移动,后来我在网上查阅相关资料,大幅修改了左移函数,最终达到了想要的结果;

做c语言调试时,大问题不多,主要是语法有很多错误,这都是我编程时的疏忽大意,经过修改,也同样实现了该功能。

7学习的感想与收获

8对老师的意见与建议

对于单片机这门课,我认为作为一个老师来说,要教好一个学生这是一个挑战,但张老师做得很好,也很到位,我认为我听得还挺明白,但我对老师的课也有一些建议:

老师您的课堂大致可分为两部分,第一部分是纯粹的讲单片机理论,比如讲一节课的定时或者中断,第二部分就是叫大家自己把第一节课的PPT上的程序仿真出来,然后给老师您看。

对于第一个部分,我认为每个老师都会这样做,主要是第二部分,第二部分无非就是给出程序,然后叫大家仿真出来,这是非常简单的,就是按步骤执行就可以做出来,因为最难做的程序是给好的。

而我希望第二部分能有一些改进,比如老师您可以基于上节课讲的一个单片机系统马上给出一道与之类似的题,在第二节课的45分钟里带着大家,和大家一起来做这个系统,我们大家一起来一步一步完成这个系统,而这个过程重点就是讲编程,即一边带着大家一起编程,一边讲解汇编语言,这样效果比纯粹讲一节课的汇编语言更有效,就相当于在课堂上实现了实践。

另外我认为同学们多多少少有一点c语言基础,讲c语言编程的话会更容易懂,但指令系统还是不得不用汇编语言。

以上就是我对老师的意见与建议,如果有什么语言不当,没有礼貌的地方,还希望老师理解和见谅。

我期望的成绩:

优秀

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1