多级外部中断控制灯移Word文档格式.docx
《多级外部中断控制灯移Word文档格式.docx》由会员分享,可在线阅读,更多相关《多级外部中断控制灯移Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
![多级外部中断控制灯移Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/29/52584daa-5178-4ebe-b3c0-eb93531784cf/52584daa-5178-4ebe-b3c0-eb93531784cf1.gif)
1、根据要求确定设计方案
2、用PROTEUS软件画出硬件连接图并仿真。
3、写出相应程序
4、焊接电路板及调试
5、写出课程设计报告
参考文献阅读:
[1]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:
北京航空航天大学出版社,2006.6
[2]张毅刚.单片机原理及应用.北京:
高等教育出版社,2003.12
工作计划:
5月4日学习课程设计的基本要求和注意事项
5月5日确定设计方案
5月6日绘制硬件连接图
5月7日编写程序
5月10日仿真并修改程序
5月11日领取元器件,
5月12日焊接电路板
5月13日写入程序进行验证
5月14日写实验报告
任务下达日期:
指导教师(签名):
学生(签名):
摘要:
本设计是用AT89C52及其基本外围电路实现单片机控制灯移动。
主要包括:
电源电路、复位电路、时钟脉冲电路、二级外部中断电路以及发光二极管显示几个部分。
在写入相应的程序后,能够实现用两个外部中断控制八只灯的闪烁和有规律循环。
该系统能够很方便调整灯的移动,两个外部中断之间有优先级的差别,使灯在移动过程中不会混乱,具有较广泛的实用价值。
关键词:
AT89C52、中断、汇编程序、桥堆、晶振。
目录
1.设计背景………………………………………………………1
1.1.课题依据…………………………………………………1
1.2.实习背景…………………………………………………1
2.设计方案………………………………………………………1
2.1.提出方案…………………………………………………1
2.2.确定方案…………………………………………………1
3.方案实施………………………………………………………1
3.1.硬件原理…………………………………………………1
3.2.软件程序…………………………………………………4
3.3.做出实物…………………………………………………6
4.结果与结论……………………………………………………6
4.1.结果………………………………………………………6
4.2.结论………………………………………………………6
5.收获与致谢……………………………………………………6
5.1.收获………………………………………………………6
5.2.致谢………………………………………………………7
6.参考文献………………………………………………………7
7.附件……………………………………………………………7
7.1.原理图……………………………………………………7
7.2.程序清单…………………………………………………8
7.3.元器件清单………………………………………………10
1.设计背景
1.1课题依据
单片机中断功能可以提高CPU的效率;
可以实现实时处理,以满足实时控制要求;
可及时处理故障,提高单片机的可靠性。
1.2实习背景
由于单片机具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉、易于使用等优点,在世界范围内已经得到广泛普及和应用。
目前在工业控制、智能仪器仪表、家用电器、测控等领域,都可以看到单片机的踪影。
在我国,单片机的开发和使用技术发展迅速。
近年来,单片机成为全国各高校相关专业的重要课程。
实习是学以致用的重要途径之一。
2.设计方案
2.1方案提出
方案一单片机的P1口接8只LED,
和
接两级外部中断电路;
采用汇编语言编程,在主程序中调用中断程序、循环程序和延时程序的嵌套。
方案二单片机的P1口接8只LED,
采用C语言编程,在主程序中调用循环程序并且调用中断子程序和延时子程序。
2.2确定方案
采用汇编语言编程占用资源少,而且执行效率高;
思路清晰,但是程序较繁琐。
采用C语言编程程序较简短一些,编写比较难理解,占用资源多。
中断优先级容易设置,方案一和方案二都能够达到实验要求。
在讲两种编程语言对比后,结合自己的知识掌握情况。
我们使用了汇编语言编程。
决定采用方案一。
3.方案实施
3.1硬件原理
本设计主要以AT89C52芯片为中心,分别与电源电路、复位电路,中断系统、时钟电路、LED显示电路连接,组成一个具有两级中断控制灯移动的简易系统。
原理图如附件7.1.在此次实习中,本人主要负责硬件电路的设计。
各部分电路如下:
1、电源电路
图1电源电路
桥堆是整流电路中常见的器件,它实际上就是将4只整流二极管封装在一起。
桥堆有4根引脚,从它的内电路中可以看出,四只二极管构成桥式电路。
7805三端稳压器件是最常用的线性降压型DC/DC转换器,内含过流和过载保护电路。
如图1所示,用桥堆2W10和7805以及电容电阻与外界变压器相连为复位电路、LED显示电路、中断部分提供+5伏电压。
图中开关控制电源,发光二极管为电源指示灯。
2、复位电路
图2复位电路
复位电路的基本功能是:
系统上电时提供复位信号直至系统稳定后,撤销复位信号,在初始化程序中应安排一定的复位延迟时间用来系统可靠复位。
本设计采用了按键手动电平复位,如图2所示,R12左端引线接电源,C6右端引线接AT89C52的RST接口。
其工作原理是:
VCC上电时,电容充电,在1K电阻上出现电压,使得单片机复位;
几个毫秒后,电容充满,1K电阻上电流降为0,电压也为0,使得单片机进入工作状态。
工作期间,按下按键,电容放电。
松手,电容又充电,在1K电阻上出现电压,使得单片机复位。
几个毫秒后,单片机进入工作状态。
本实验中,当LED在有规律率闪烁时。
按下开关SW,就可以恢复到8个发光二极管闪烁。
这种复位电路比较简单,其中电阻和电容参数可以根据时钟频率确定。
3、中断电路
图3中断电路
51系列单片机的外部中断
为低电平有效,如图3所示,R9和R10
左端接电源,下端两根引线分别接
,在按下按键K1和K2时。
外部中断接收低电平,发出中断请求,此时LED灯按照程序循环。
K2的优先级高于K1。
4、时钟电路
图4时钟电路
51系列单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输入端为引脚XTAL2,这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,为单片机提供始终脉冲。
如图构成单片机最小工作模式。
图中晶振Y1采用12MH,属于内部时钟电路。
根据书中所述确定两个电容的值。
Y1设置为12MH时,C1、C1值为33PF。
5、LED显示电路
AT89C52有四个双向8位并行I/O端口,分别记作P0-P3,共32根口线。
在次设计中,P1口作为输出口使用,外电路无需接上拉电阻。
如图5所示。
八只LED接到AT89C52DEP1端口,在外部电平的驱动下。
由于程序的作用。
这8只LED按照要求发光,每个发光二极管都要串联一个适当的都电阻作为保护措施。
图5显示电路
3.2软件编程
采用汇编语言编程,在主程序中,先把累加器赋初值0FEH,可以点亮第一个灯。
初始化后要进行累加器的取反,主程序调用中断子程序,此程序的主要部分是两个中断子程序和延时程序。
中断要先设置优先级,在设计中我们将K1接
作为低级中断,让一个工作寄存器循环向右移动一位,在执行三次循环之后返回,K2接
作为高级中断,让相邻两个寄存器依次向右移动两位,在执行四个循环后返回。
两个中断子程序均要嵌套调用一个延时程序。
在写完程序之后,要使用KEIL软件进行编译。
程序流程图如图6。
图6程序流程图
3.3做出实物
这次课程设计采用万能板,按照原理图焊接电路,焊接过程必须注意不能短路。
焊接之后将程序写入,验证能否实现设计要求的所有功能,如果不能,检验是否焊接错误。
如有错误进行修改,直到能够实现功能。
在验证时,由于没有变压器。
我们采用了常用低压充电器替代。
4.结果与结论
4.1结果
在老师的指导和同学的帮助下,我们按时完成了设计,而且能实现要求的功能。
在验证的时候,由于开始单片机接地线疏忽了,导致单片机芯片(AT89C52)不能工作,在经过修改之后,基本能完成设计要求的所有功能。
在按下K1之后,一只LED循环移动三个来回之后,恢复闪烁。
按下K2,则两个灯循环四个来回之后恢复。
若在K1按下之后立即按下K2,则先执行两个灯循环,然后继续执行一个灯循环,结束后恢复八只灯闪烁。
4.2结论
该设计实现了外部中断对灯移动的控制,在许多LED显示中都有应用。
在实际的产品中,程序和电路更加复杂,显示功能也更加强大。
若是对该系统加以修整,可以制作电子显示屏、流水灯等。
应用前景很广泛。
5.收获与致谢
5.1收获
此次实习让我更加熟练的掌握AT89C52的时钟电路、复位电路,这些是最基本的单片机知识。
由于电源电路有多种实现方式,这此实习使用的比较简单。
在显示电路中,AT89C52有多种工作模式,在不同条件下,输出也不同。
对单片机的工作原理,结构和使用方法了解深入。
在编写程序时,中断、循环、嵌套、延时等的编写都需要对汇编语言的常用指令和基本程序的设计有很深入的了解。
在硬件和软件都掌握的情况下,可以用单片机作出很多实际用途的系统。
通过这次课程设计,我更加深刻的理解单片机的相关知识,初步掌握如何应用单片机,对汇编语言编程有了更深入的认识。
在学习课本知识的同时,增强了动手能力。
理论联系实际。
锻炼了自己的能力。
为以后的工作和学习打下坚实基础。
5.2致谢
在实习中,范老师和段老师对我们进行了耐心指导和细心的讲解,本小组成员相互交流,积极参与,配合工作。
同班同学在一些问题上也给与了很多的指正和讲解。
再次我向尊敬的老师和亲爱的同学们表示真诚的谢意。
另外,感谢学校和系里为我们提供了一个自我锻炼的平台,感谢在这次实习活动中付出辛勤劳动的各位老师和工作人员。
6.参考文献
[1]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:
[2]张毅刚.单片机原理及应用.北京:
7.附件
7.1原理图
7.2程序清单
ORG00H
JMPMAIN
ORG0003H
JMPTIN0
ORG0013H
JMPTIN1
ORG0030H
MAIN:
MOVA,#0FFH
MOVP1,A
SETBIT0
SETBIT1
SETBEX1
SETBEX0
SETBPX1
SETBEA
HERE:
CPLA
CALLDELAY
SJMPHERE
TIN0:
PUSHACC;
中断0入口
PUSHPSW
MOVA,#0FEH;
初始化
MOVR2,#08H
MOVR4,#03H
LOOP1:
MOVP1,A;
单灯左移四次
RLA
DJNZR2,LOOP1
MOVR2,#08H
LOOP2:
RRA;
单灯右移四次
DJNZR2,LOOP2
DJNZR4,LOOP1;
循环三次
POPPSW
POPACC
RETI
TIN1:
中断1入口
MOVA,#0FCH;
赋初值
MOVR3,#04H
MOVR1,#04H
LOOP3:
双灯左移四次
RLA
DJNZR3,LOOP3
LOOP4:
双灯右移四次
RRA
DJNZR3,LOOP4
MOVR3,#04H;
循环四次
DJNZR1,LOOP3
POPPSW
DELAY:
MOVR5,#02;
延时子程序
D1:
MOVR6,#200
D2:
MOVR7,#200
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END
7.3元器件清单
单片机课程设计元器件清单
2010.4.30
元件
数量
AT89C52
1
晶振11.0592MHZ
瓷片电容33PF
2
瓷片电容104
4
电解电容22UF
电解电容1000UF
LED指示灯
9
电阻300Ω
11
电阻1KΩ
3
7805
桥堆2W10
40脚IC插座
单针插座
拨动开关
按键
排线
万能板
指导教师评语:
课程设计报告成绩:
,占总成绩比例:
30%
课程设计其它环节成绩:
环节名称:
考勤,成绩:
20%
综合,成绩:
50%
总成绩:
指导教师签字:
年月日
本次课程设计负责人意见:
负责人签字: