单片机课程设计彩灯控制概述.docx
- 文档编号:8672912
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:13
- 大小:99.14KB
单片机课程设计彩灯控制概述.docx
《单片机课程设计彩灯控制概述.docx》由会员分享,可在线阅读,更多相关《单片机课程设计彩灯控制概述.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计彩灯控制概述
xxxxxxxxx
课程设计报告书
课程名称:
单片机课程设计
课题名称:
彩灯控制
专业:
x
班级:
x
学号:
x
姓名:
x
成绩:
x年x月x日
目录
1.设计目的3
2.设计要求和设计指标3
3.设计内容4
3.1硬件部分4
3.2软件部分9
4.总结14.主要参考文献15
摘要
近年来随着微控技术的日益完善和飞速发展,单片机的应用正在不断深入,它的应用必将导致系统控制技术从根本上发生变革,同时带动传统控制检测技术日益更新。
它在工业控制、数据采集、智能化仪表、机电一体化、家用电器领域得到了广泛应用,极大地提高了这些领域的技术水平和自动化控制。
在实际检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
在社会经济快速发展,人们生活水平的日益提高的今天,对于LED灯花样的要求越来越高。
像字体广告,电子宣传字幕……
1·设计目的
通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,进一步学习,掌握单片机应用系统的有关知识,加深了解单片机的工作原理。
初步掌握简单的单片机应用系统的设计、制作、调试的方法。
使自己的设计水平和对所学的知识的应用能力以及分析问题、解决问题的能力得到全面提高。
2·设计要求及设计指标
要求
(1)用8盏LED灯,实现至少4种彩灯灯光效果(不含全部点亮,全部熄灭);
(2)可以用输入按钮在几种灯光效果间切换;
(3)可以通过按钮暂停彩灯效果,再次按下相同按钮后继续之前的效果。
指标
1.按下按键1暂停流水灯的流水。
再次按下恢复并继续原来效果
2.按下按键2则是一种流水花型,按下按键3则是第二种花型按下按键三则是第三种花型。
(按键1管暂停按键2,3,4分别对应一种流水方式)
3.按键2实现的流水方式:
从两边开始两盏灯依次向中间移动一位到第四盏第五盏同时亮过之后全亮之后以相反的顺序完成流水。
3·设计内容
3.1硬件部分
1.8051型单片机的基本结构及功能
MCS——51系列单片机内部包括CPU、存储器、并行接口、定时/计数器、中断系统。
几部分集成在一个单片机上,其功能如下:
(1)一个8位中央处理器CPU,包括可以进行8位算术运算和逻辑运算ALU单元、8位累加器ACC、寄存器B和程序寄存器PSW等。
(2)片内数据存储器RAM(128B),用于存放可以读/写的数据。
如果运算的中间结果、最终结果或预显示的数据等。
(3)片内程序存储器ROM/EPROM,用于存放程序、一些原始数据和表格。
但是有些单片机内部不带有ROM/EPROM,如8031、8032等。
(4)四个8位并行I/O口P0—P3,每一个口可以用于输入或输出。
(5)两个16位定时/计数器,每个定时/计数器都可以设置成计数方式,以对外部事件计数;也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。
(6)五个中断源,具有优先级的中断嵌套结构。
两个为外部中断源INT0和INT1,三个内部中断源,即两个定时/计数中断和一个串行口中断。
(7)一个全双工通用异步接收发送器(URAT)串行接口,用于实现单片机与单片机或单片机与其他计算机之间串行通信。
(8)片内振荡器和时钟电路,时钟振荡电路是控制核心,为控制器提供时钟脉冲。
但是石英晶体与微调电容要外接,时钟频率越高,单片机控制节拍就越快,运算速度也就越快。
不同型号的单片机所需的振荡频也各有不同,MCS—51单片机最高允许工作频率为12MHz。
2.8051单片机引脚功能
(1)电源引脚:
电源引脚主要负责单片机的供电,有两根引脚。
(2)外接晶振或外部振荡器引脚:
外接晶振或外部振荡器引脚主要负责为
单片机的运行提供时钟振荡器,主要有两根引脚。
(3)输入输出(I/O)端口引脚:
8051提供了4个8位并行I/O端口,基本的功能和其他51系列单片机完全一致,部分引脚有扩展功能。
(4)复位、控制和选通引脚:
复位、控制和选通引脚主要负责单片机程序复位、编程控制及外部程序存储器的选通
8051单片机
3.特殊功能寄存器
表18051特殊功能寄存器一览表
符号
地址
功能介绍
B
F0H
B寄存器
ACC
E0H
累加器
PSW
D0H
程序状态字
IP
B8H
中断优先级控制寄存器
P3
B0H
P3口锁存器
IE
A8H
中断允许控制寄存器
P2
A0H
P2口锁存器
SBUF
99H
串行口锁存器
SCON
98H
串行口控制寄存器
P1
90H
P1口锁存器
TH1
8DH
定时器/计数器1(高8位)
TH0
8CH
定时器/计数器1(低8位)
TL1
8BH
定时器/计数器0(高8位)
TL0
8AH
定时器/计数器0(低8位)
TMOD
89A
定时器/计数器方式控制寄存器
TCON
88H
定时器/计数器控制寄存器
DPH
83H
数据地址指针(高8位)
DPL
82H
数据地址指针(低8位)
SP
81H
堆栈指针
P0
80H
P0口锁存器
PCON
87H
电源控制寄存器
专用寄存器是专门为某些功能部件设计的寄存器。
下面分别介绍这几种寄存器的功能。
(1)程序计数器PC:
程序计数器PC是一个16位二进制的程序地址寄存器,专门用来存放下一条需要执行指令的内存地址,能自动加1。
(2)累加器A:
累加器A(或者ACC)是运算过程中的暂存寄存器,是一个8位二进制寄存器,用于提供操作数和存放操作结果。
(3)寄存器B:
寄存器B一般用于乘除法操作指令,也是一个8位二进制寄存器,由8个触发器组成,与累加器A配合使用。
(4)程序状态寄存器(PSW):
程序状态寄存器(PSW)是一个8位寄存器,用于存放指令执行后的有关状态,为后面的指令执行提供状态条件。
(5)堆栈指针SP:
推栈指针SP是在片内RAM中开辟一个存储区域,专门存放堆栈栈顶的地址。
(6)数据指针DPTR:
数据指针DPTR是一个16位寄存器,是由8位寄存器DPH和DPL组合而成。
4.单片机复位电路
单片机的复位电路是促使单片机进入复位状态的硬件结构。
单片机的复位是很重要的,复位操作可以完成单片机的初始化,也可使处于死机状态下的单片机重新开始运行。
(1)复位要求
(2)上电复位电路
(3)手动加上电复位电路
(4)定时监视器(WDT,看门狗)复位
(5)复杂的复位电路
5.单片机中断系统
1)中断源
MCS—51单片机的中断源共有5个。
其中,2个为外部中断源,3个为内部中断源。
(1)INT0:
外部中断0,中断请求信号由P3.2引脚输入。
(2)INT1:
外部中断1,中断请求信号由P3.3引脚输入。
(3)T0:
定时/计数器0溢出中断,对外部脉冲计数由P3.4引脚输入
(4)T1:
定时/计数器1溢出中断,对外部脉冲计数由P3.5引脚输入
(5)串行口中断(包括串行接收中断RI和串行发送中断TI)
2)中断请求标志
TCON寄存器中与中断有关的位见表2
表2TCON寄存器与中断有关的位
位地址
8F
8E
8D
8C
8B
8A
89
88
位名称
TF1
—
TF0
—
IE1
IT1
IE0
IT0
TF1:
T1溢出中断请求标志位。
当定时/计数器T1计数溢出后,由硬件使TF1置1,表示CPU请求中断。
当CPU响应后,由硬件使TF1清0.
TF0:
T0溢出中断请求标志位。
其意义和功能与TF1类同
IE1:
外部中断INT1中断请求标志位。
当检测到P3.3引脚信号有效时,由硬件使IE1置1,表示向CPU请求中断。
当CPU响应该中断后,由硬件使IE1清0。
IE0:
外部中断INT0中断请求标志位。
其意义和功能与IE1类同。
IT1:
外部中断INT1触发方式控制位,也称为外部中断有效方式选择。
该为由用户设置。
IT1=1时,选择边沿触发方式,即当P3.3引脚出现下跳变脉冲信号时,才是有效的中断请求信号;IT1=0时,选择电平触发方式,即当P3.3引脚出现低电平时,才是有效的中断请求信号。
IT0:
外部中断INT0触发方式控制位,也称为外部中断有效方式选择。
该为由用户设置。
IT0=1时,选择边沿触发方式,即当P3.2引脚出现下跳变脉冲信号时,才是有效的中断请求信号;IT0=0时,选择电平触发方式,即当P3.2引脚出现低电平时,才是有效的中断请求信号。
3)中断允许控制
IE寄存器的地址是A8H,寄存器的内容及地址见表3
表3寄存器的内容及地址
位地址
AF
AE
AD
AC
AB
AA
99
A8
位符号
EA
—
—
ES
ET1
EX1
ET0
EX0
EA:
中断允许总控制为。
EA=0,表示CPU禁止所有中断,即所有的中断请求被屏蔽;EA=1,表示CPU开放中断,但每个中断源的情求是允许还是禁止,要由各自的中断允许位控制。
EX0:
INT0中断允许控制位。
EX0=0,禁止INT0中断;EX0=1,允许INT0中断。
EX1:
INT1中断允许控制位。
EX1=0,禁止INT1中断;EX1=1,允许INT1中断。
ETO:
T0中断允许控制位。
ET0=0,禁止TO中断:
ET0=0,允许T0中断。
ET1T1中断允许控制位。
ET1=0,禁止T1中断:
ET1=0,允许T1中断。
ES:
串行口中断允许控制位ES=0,禁止串行口中断;ES=1,允许串行口中断。
4)中断优先级
IP寄存器地址B8H,位地址为BFH~B8H.寄存器的内容及位地址见表
位地址
BF
BE
BD
BC
BB
BA
B9
B8
位符号
/
/
/
PS
PT1
PX1
PT0
PX0
其中,:
PX0:
INT0中断优先级的设定位
PT0:
T0中断优先级的设定位
PX1:
INT1中断优先级的设定位
PT1:
T1中断优先级的设定位
PS串行口中断优先级的设定位.
6.电路原理图
3.2软件部分
1.kile软件的使用
打开Keil程序,执行菜单命令“Project”→“NewProject”创建“80C51单片机可控流水灯”项目,并选择单片机型号为AT89C51。
执行菜单命令“File”→“New”创建文件,输入汇编源程序,保存为“80C51单片机可控流水灯.ASM”。
在Project栏的File项目管理窗口中右击
文件组,选择“AddFilestoGroup`SourceGroup`”,将源程序“80C51单片机可控流水灯.ASM”添加到项目中。
执行菜单命令“Project”→“OptionsforTarget`Target1`”,在弹出的对话框中选择“Output”选项卡,选中“CreateHEXFile”。
在“Debug”选项卡中,选中“Use:
ProteusVSMSimuslator”。
执行菜单命令“Project”→“BuildTarget”,编译源程序。
如果编译成功,则在“OutputWindow”窗口中显示没有错误,并创建了“80C51单片机可控流水灯.HEX”文件。
在已绘制好原理图的ProteusISIS菜单栏中,执行菜单命令“Debug”→“UseRemoteDebugMonitor”将该项选中,使Proteus与Keil真正连接起来,使它们联合调试。
文件组,选择“AddFilestoGroup`SourceGroup`”,将源程序“80C51单片机可控流水灯.ASM”添加到项目中。
执行菜单命令“Project”→“OptionsforTarget`Target1`”,在弹出的对话框中选择“Output”选项卡,选中“CreateHEXFile”。
在“Debug”选项卡中,选中“Use:
ProteusVSMSimuslator”。
执行菜单命令“Project”→“BuildTarget”,编译源程序。
如果编译成功,则在“OutputWindow”窗口中显示没有错误,并创建了“80C51单片机可控流水灯.HEX”文件。
在已绘制好原理图的ProteusISIS菜单栏中,执行菜单命令“Debug”→“UseRemoteDebugMonitor”将该项选中,使Proteus与Keil真正连接起来,使它们联合调试。
2.流程图
2.源程序
;P0接流水灯;P1.0~P1.3接键盘
K1EQUP1.1
K2EQUP1.2
K3EQUP1.3
ORG0000H
LJMPCHU
ORG000BH
LJMPT0ZD
ORG0300H
CHU:
MOVR1,#0
MOVR2,#00H
MOVR7,#00H
MOVDPTR,#HX
MOVTH0,#3CH
MOVTL0,#0B0H
SETBET0
MOVTMOD,#01H
SETBTR0
MAIN:
LCALLKAI
SETBEA
CJNER1,#20,FH;1S后换花型
LCALLHUAN
MOVR1,#00H
FH:
JNBP1.1,G1
JNBP1.2,G2
JNBP1.3,G3
;JBP3.1,MAIN;按下P3.1换花型
;ZJ:
JNBP3.1,ZJ
;CPLP2.0
;JBP2.0,JB1
LJMPMAIN
G1:
LCALLGQ1
LJMPMAIN
G2:
LCALLGQ2
LJMPMAIN
G3:
LCALLGQ3
LJMPMAIN
;LCALLQ1
;LCALLHUAN
;MOVR1,#00H;重新1S后换花型
LJMPMAIN
GQ1:
MOVDPTR,#HX
MOVR2,#00H
RET
GQ2:
MOVDPTR,#HX1
MOVR2,#00H
RET
GQ3:
MOVDPTR,#HX2
MOVR2,#00H
RET;T0中断
T0ZD:
MOVTH0,#3CH
MOVTL0,#0B0H
INCR1
RETI;换花型
HUAN:
MOVA,R2
MOVCA,@A+DPTR
MOVP0,A
INCR2
CJNER2,#16,Qing
MOVR2,#00H
Qing:
RET
Q1:
;花型
HX:
DB7EH,0BDH,0DBH,0E7H,00H,0DBH,0BDH,07EH,7EH,0BDH,0DBH,0E7H,00H,0DBH,0BDH,07EH;两边开始两盏灯向中间依次移动
HX1:
DB7FH,00H,0BFH,00H,0DFH,00H,0EFH,00H,0F7H,00H,0FBH,00H,0FDH,00H,0FEH,00H;1亮全亮2亮全亮3亮全亮4亮全亮.....
HX2:
DB7FH,3FH,1FH,0FH,07H,03H,01H,00H,0FFH,01H,03H,07H,0FH,1FH,3FH,7FH;依次点亮依次熄灭
HX3:
DB67H,33H,66H,77H,88H,22H,11H,99H;HE:
DBHX,HX1,HX2,HX3
KAI:
JBP1.0,KAISHI;按下则全亮,不按则转移
MOVP0,#00H;全亮
CLREA;保持之前效果----关闭中断----
DENG:
JNBP1.0,DENG;判断按下并松开按
E:
JNBP1.0,PAN;第二次按下P1.0
LJMPE
PAN:
JBP1.0,KAI1;再按下松开后则继续之前效果
LJMPPAN
KAI1:
MOVP0,A
KAISHI:
RET
END
4·总结
本次课程设计我的课题是花样流水灯的设计,开始的几个星期我针对这个课题的任务要求从图书馆、上网等渠道获取相关信息,查找相关的参考资料,然后设定了本课题的设计方案。
经过近多日的努力,终于将本次课程设计做完了,但由于水平有限,文中肯定有很多不恰当的地方,请老师指出其中的错误和不当之处,使我能做出改正,我会虚心接受。
在本次课程设计过程中,我增强了自己的动手能力和分析能力。
通过跟老师和同学的交流,也通过自己的努力,我按时完成了这次课程设计。
在此过程中,我学会了很多,也看到了很多自己的不足之处。
在以后的学习生活中,我会努力学习专业知识,完善自我,为将来的发展做好充分的准备。
通过这次单片机课程设计,我们不仅加深了对单片机理论的理解,将理论应用到实践当中去,同时也使我们认识到自身存在的不足之处,无论是理论还是实际设计上遇到处理能力还有待提高。
更加详细和深刻的学习和巩固AT80C51和74LS373相关知识,弥补了以往学习中的漏洞。
为以后的课程设计打好了坚实的基本和准备
总之,在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。
在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。
5·参考文献
[1]胡汉才.单片机原理与接口技术[M].北京:
清华大学出版社,1995.6.
[2]楼然苗等.51系列单片机设计实例[M].北京:
北京航空航天出版社,2003.3.
[3]何立民.单片机高级教程[M].北京:
北京航空航天大学出版社,2001.
[4]赵晓安.MCS-51单片机原理及应用[M].天津:
天津大学出版社,2001.3.
[5]肖洪兵.跟我学用单片机[M].北京航空航天大学出版社,2002.8.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 彩灯 控制 概述
![提示](https://static.bdocx.com/images/bang_tan.gif)