单片机论文.docx

上传人:b****3 文档编号:4411892 上传时间:2023-05-07 格式:DOCX 页数:17 大小:263.91KB
下载 相关 举报
单片机论文.docx_第1页
第1页 / 共17页
单片机论文.docx_第2页
第2页 / 共17页
单片机论文.docx_第3页
第3页 / 共17页
单片机论文.docx_第4页
第4页 / 共17页
单片机论文.docx_第5页
第5页 / 共17页
单片机论文.docx_第6页
第6页 / 共17页
单片机论文.docx_第7页
第7页 / 共17页
单片机论文.docx_第8页
第8页 / 共17页
单片机论文.docx_第9页
第9页 / 共17页
单片机论文.docx_第10页
第10页 / 共17页
单片机论文.docx_第11页
第11页 / 共17页
单片机论文.docx_第12页
第12页 / 共17页
单片机论文.docx_第13页
第13页 / 共17页
单片机论文.docx_第14页
第14页 / 共17页
单片机论文.docx_第15页
第15页 / 共17页
单片机论文.docx_第16页
第16页 / 共17页
单片机论文.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机论文.docx

《单片机论文.docx》由会员分享,可在线阅读,更多相关《单片机论文.docx(17页珍藏版)》请在冰点文库上搜索。

单片机论文.docx

单片机论文

常州工学院

单片机课程设计

------闪烁LED小灯的设计

 

专业:

电子科学与技术

班级:

08电子一

学号:

08020430

姓名:

王溢

指导老师:

庄志红

 

目录

一、引言3

二、基本概念以及相关知识3

1、硬件知识3

2、软件知识4

3、电路图及布局图6

1、电路连接6

2、设备清单6

4、软件总体设计6

1、主程序6

2、初始化程序7

3、显示程序7

总结8

参考资料8

附录9

一、电路原理图9

二、电路布线图9

三、元件清单10

四、程序清单11

 

一、引言

单片机在智能仪器仪表,机电一体化产品和自动控制系统中应用愈来愈广,本设计的闪烁小灯控制器,可使小灯轮流点亮、逐点点亮、间隔闪亮。

如果控制交流彩灯,可在P1端口加接继电器或可控硅接口电路。

本设计可应用在广告彩灯控制器、舞台灯光控制器等领域。

二、基本概念以及相关知识

1、硬件知识:

1.1、89C52外部引脚及功能

8051引脚可分为四类:

1、电源引脚

Vcc—+5VVss—地

2、时钟(XTAL1、XTAL2)

3、I/O线(P0P1P2P3共32线)

4、控制总线

(1)输入:

RST、EA

(2)输出:

PSEN

(3)输入/输出:

ALE

各引脚功能说明

Vcc:

电源电压

GND:

P1口:

p1口是一组8位双向I/O口,P1.2-P1.7提供内部上拉电阻,p1.0和P1.1内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AIN0)和反相输入端(AIN1),如果需要应在外部接上拉电阻.P1口输出缓冲器可吸收20mA电流并可直接驱动LED.当P1口引脚写入”1”时可作输入端,当引脚P1.2-P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流(In).

P1口还在Flash闪速编程及程序校验时接收代码数据.

P3口:

P3口的P3.0-P3.5和P3.7是带有内部上拉电阻的6个双向I/O口.当P3口写入”1”时,它们被内部上拉电阻拉高并作为输入端口.作输入端时,被外部拉低的P3口将用上拉电阻输出电流(In).

PST:

复位输入.RST引脚一旦变成两个机器周期以上高电平,所有的I/O口都将复位到”1”(高电平)状态,当振荡器正在工作时,持续两个机器周期以上的高电平便可完成复位,每个机器周期为12个振荡时钟周期.

XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端.

XTAL2:

振荡器反相放大器的输出端.

1.2、单片机的总线结构:

单片机的引线除了电源、复位、时钟输入法、用户I/O口外,其余引线都是为实现系统扩展设置的,这些引线构成了单片机外部的3总线形式,地址总线,数据总线,控制总线等。

2、软件知识:

中断:

指计算机在正常执行程序的过程中,由于种种原因,使CPU暂时停止当前程序的执行,而转去处理临时发生的事件,处理完毕后,再返回去继续执行暂停的程序。

使用中断技术,使得外部设备与CPU不再是串行工作,而是分时并行操作,从而大大提高了计算机的效率。

其处理过程有关中断、保存断点、给出中断入口地址转入被响应的中断处理程序、保护现场、执行中断服务程序、恢复现场、开中断、中断返回。

其中断源有外部中断0、定时器0中断、外部中断1、定时器1中断和串行接收或发送中断,其分别对应的中断入口地址0003H、000BH、0013H、001BH、0023H。

中断服务程序主要功能是进行计时操作。

程序开始先判断计数溢出是否满了8次,不满8次表明还没达到最小计时单位秒,中断返回;如满8次则表明已达到最小计时单位秒,程序继续向下执行,进行计时操作。

键盘的消抖:

通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小型如图2-3。

由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动。

抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。

按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒按键的抖动,可用硬件或软件两种方法。

 

a.硬件消抖:

在键数较少时可用硬件方法消除键抖动。

当按键未按下时,输出为1;当键按下时,输出为0。

此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。

也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。

这一点通过分析RS触发器的工作过程很容易得到验证。

b.软件消抖:

如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。

当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。

以下是本次设计的软件消抖子程序块:

;延时子程序,执行一次时间为513us;

DL512:

MOVR2,#0FFH

LOOP1:

DJNZR2,LOOP1

RET

;10ms延时子程序(调用20次0.5ms延时子程序)

DL10MS:

MOVR3,#14H

LOOP2:

LCALLDL512

DJNZR3,LOOP2

RET

;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为25ms*15);

DL05S:

MOVR4,#0FH

LOOP3:

LCALLDL25MS

DJNZR4,LOOP3

RET

;25ms延时子程序,调用扫键延时,可快速读出功能按键值;

DL25MS:

MOVR5,#0FFH

LOOP4:

LCALLKEYWORK

DJNZR5,LOOP4

RET

END;程序结束

三、电路图以及布线图

1、电路连接

(1)、闪烁LED小灯设计的电路图如附录

(一)所示.

(2)、根据原理图我们可以进行布线,布线遵守一个面上的线方向要一致的原则进行,得到本设计布线图(PCB图)如附录

(二)所示.

2、设备清单

从布线图中我们可以看到该设计需要如附录(三)所示的硬件设备.

四、软件总体设计

1、主程序

通过扫描P3.0~P3.2口,判断是否有按键按下,然后在20H内存单元的低3位的对应位置1标志,确定应执行的闪烁功能。

当20H.0为1时,发光管轮流点亮;当20H.1为1时,发光管逐点点亮;当20H.2为1时,发光管间隔闪亮。

在主程序对20H的低3位进行位值判定后,转入相应的闪烁控制程序。

上电初始化时,对20H的最低位置1,系统进入轮流点亮方式。

主程序在刚上电时系统进行初始化,然后读一次键开关状态,由键标志(00H、01H、02H)决定显示的方式。

主程序流程图4.1所示.

主程序流程图4.1

2、初始化程序

通过扫描P1.0~P1.2口,判断是否有按键按下,然后再20H内存单元的低3位的对应位置1标志,确定应执行的闪烁功能。

当20H.0为1时,发光管轮流点亮;当20H.1为1时,发光管逐点点亮;当20H.2为1时,发光管间隔点亮。

在主程序对20H的低3位进行位值判定后,转入相应的闪烁控制程序。

上电初始化时,对20H的最低置1,系统进入轮流点亮方式.

3、显示程序

显示程序由显示主程序和显示子程序组成。

显示主程序负责每次显示地址首址(在B寄存器中)、第个字的显示时间(由30H中的数据决定)和下一个显示地址的间隔(31H中的数据决定)的处理。

在显示子程序中,1ms延时程序是用调用键扫描子程序的方法实现的。

主程序如附录(四)所示.

五、总结

在这次课程设计的过程中,我真正接触到了硬件,经历从对硬件方面知识的欠缺到熟悉的过程,通过这次实验,第一次觉得原来硬件并不像我想象中的那样难,相反地,它是一门很有意思的课程,那么多不同的小小的芯片组合在一起竟然可以实现你想象不到的效果,真的是很神奇!

以前只是觉得软件里的程序很神奇,因为就是那些密密麻麻的代码组合在一起也可以实现很特别的功能,现在看来硬件也蛮有意思的,总的说来,计算机真的是一门很神奇的课程,不管在哪些方面,都起着举足轻重的作用,想想现在的各行各业,哪个不用到计算机,对于学习计算机专业的我来说,这应该是个警示,在剩下的大学生活里,我应该好好珍惜,好好学习计算机方面的知识,这样以后在工作中也不至于落下笑话,至少要让别人觉得自己确实是学计算机专业出去的。

六、参考资料

[1]刘和平《PIC16F87X单片机使用软件与接口技术C语言及其应用》.北京航空航天大学出版社,2002

[2]李朝青《PC机及单片机数据通信技术》.北京航空航天大学出版,2000

⑶刘立民《MCS-51系列单片机应用系统设计》.北京航空航天大学出版社,1999.5.07

[4]王有绪《PIC系列单片机接口技术及应用系统设计》.北京航空航天大学出版社,2001.4.5

[5]潘新民《微型计算机控制技术》.人民邮电出版社,2001.6.08

[6]刘文涛《protel2004完全学习手册》.电子工业出版社

[7]刘瑞新《单片机原理及应用教程》.机械工业出版社

 

附录

一、电路原理图

二、电路布线图

三、元件清单

元件名称

规格

数量

备注

AT89C52单片机

 

一块

附底座

晶振

12MHZ

一块

 

按钮开关

 

四个

四脚或两脚

极性电容

20uf、10uf

各一支

 

瓷片电容

30pf

两支

 

电阻

270Ω、4.7kΩ

各八支

 

发光二极管LED

 

八个

 封装元件

电阻

10kΩ

一支

 

四、程序清单

;************;

;小灯控制程序;

;************;

;************;

;中断入口程序;

;************;

ORG0000H;程序执行开始地址

LJMPSTART;跳至START执行

ORG0003H;外中断0中断入口地址

RET1;中断返回(不开中断)

ORG000BH;定时器T0中断入口地址

RET1;中断返回(不开中断)

ORG0013H;外中断1中断入口地址

RET1;中断返回(不开中断)

ORG001BH;定时器T1中断入口地址

RET1;中断返回(不开中断)

ORG0023H;串行口中断入口地址

RET1;中断返回(中断)

;************;

;初始化程序;

;************;

CLEAR:

MOV20H,#00H;20H单元内存清0(闪烁标志清0)

SETB00H;20H.0位置1(上电时自动执行闪烁功能1)

RET;子程序返回

;************;

;主程序;

;************;

START:

ACALLCLRAR;调用初始化子程序

MAIN:

LCALLKEYWORK;调用键扫描子程序

JB00H,FUN0;20H.0位为1时执行FUN0

JB01H,FUN1;20H.1位为1时执行FUN1

JB02H,FUN2;20H.2位为1时执行FUN2

JB03H,MAIN;备用

AJMPMAIN;返回主程序MAIN

;************;

;功能程序;

;************;

;第1种闪烁功能程序

FUN0:

MOVA,#0FFH;累加器赋初值

FUN00:

MOVP1,A;累加器值送至P1口

LCALLDL05S;延时

JNBACC.7,MAIN;累加器最高位为0时转MAIN

RLA;累加器A中数据循环左移1位

AJMPFUN00;转FUN00循环

;第2种闪烁功能程序

FUN1:

MOVA,#0FEH;累加器赋初值

FUN11:

MOVP1,A;累加器值送至P1口

LCALLDL05S;延时

LZMAIN;A为0转MAIN

RLA;累加器A中数据循环左移1位

ANLA,P1;A同P1口值相与

AJMPFUN11;转FUN11循环

;第3种闪烁功能程序

FUN2:

MOVA,#0AAH;累加器赋初值

MOVP1,A;累加器值送至P1口

LCALLDL05S;延时

CPLA;A中各位取反

MOVP1,A;累加器值送至P1口

LCALLDL05S;延时

AJMPMAIN;转MAIN

;************;

;扫键程序;

;************;

KEYWORK:

MOVP3,#0FFH;置P3口为输入状态

JNBP3.0,KEY0;读P3.0口,若为0转KEY0

JNBP3.1,KEY1;读P3.1口,若为1转KEY1

JNBP3.2,KEY2;读P3.2口,若为2转KEY2

JNBP3.3,KEY3;读P3.3口,若为3转KEY3

RET;子程序返回

;闪烁功能0键处理程序

KEY0:

LCALLDL10MS;延时10ms消抖

JBP3.0,OUT0;P3.0为1,子程序返回(干扰)

SETB00H;20H.0位置1(执行闪烁功能1标志)

CLR01H;20H.1位清0

CLR02H;20H.2清0

CLR03H;20H.3清0

OUT0:

RET;子程序返回

;闪烁功能1键处理程序

KEY1:

LCALLDL10MS

JBP3.1,OUT1

SETB01H;20H.1位置1(执行闪烁功能2标志)

CLR00H

CLR02H

CLR03H

OUT1:

RET

;闪烁功能2键处理程序

KEY2:

LCALLDL10MS

JBP3.2,OUT2

SETB02H;20H.2位置1(执行闪烁功能3标志)

CLR01H

CLR00H

CLR03H

OUT2:

RET

;闪烁功能(备用)键处理程序

KEY3:

LCALLDL10MS

JBP3.3,OUT3

SETB03H;20H.3位置1(执行备用闪烁功能标志)

CLR01H

CLR02H

CLR00H

OUT3:

RET

;************;

;延时程序;

;************;

;延时子程序,执行一次时间为513us

DL512:

MOVR2,#0FFH

LOOP1:

DJNZR2,LOOP1

RET

;10ms延时子程序(调用20次0.5ms延时子程序)

DL10MS:

MOVR3,#14H

LOOP2:

LCALLDL512

DJNZR3,LOOP2

RET

;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为25ms*15)

DL05S:

MOVR4,#0FH

LOOP3:

LCALLDL25MS

DJNZR4,LOOP3

RET

;25ms延时子程序,调用扫键子程序延时,可快速读出功能按键值

DL25MS:

MOVR5,#0FFH

LOOP4:

LCALLKEYWORK

DJNZR5,LOOP4

RET

END;程序结束

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2