您的当前位置:首页正文

独立式按键控制灯移动设计2

2022-06-23 来源:钮旅网


设 计 说 明 书课程名称: 单片机原理及应用 设计题目:独立式按键控制灯移动设计 院 系: 电子信息与电气工程系 学生姓名: 学 号: 专业班级: 指导教师:

课 程

课 程 设 计 任 务 书

设计题目 学生姓名 设计要求: 1.具有电源开关及指示灯,有复位按键 2.四个按键开关K1、K2、k3、k4分别与单片机P2.4、P2.5、P2.6、P2.7相连,组成独立式键盘接口输入电路;P1端口接8只发光二极管,用作输出演示 3.按K1,亮灯从右向左移动:按K2,亮灯从左向右移动 按K3,左边四只灯与右边四只灯交替闪亮:按K4,灯闪烁5次(注:演示效果可更改) 4.按键查询方式工作:首先判断有按键按下,接着按键消抖(可采用软件演示方法),最后再重新判断是否有键按下 学生应完成的工作: 1.根据要求设计硬件原理图。 2.根据硬件原理图和要实现的功能,设计程序流程图并编写,调试程序。 3.按硬件原理图进行软件仿真。 4.绘制PCB板并焊接元器件。 5.编写调试程序调试电路板。 6.课程设计说明书的书写。 7.上交实物板和课程设计说明书。 8.本人主要负责理论指导。 参考文献阅读: [1] 张毅刚.单片机原理及应用.北京:高等教育出版社,2009.1 [2] 徐爱钧.智能化测量控制仪表原理与设计.北京:北京航空航天大学出版社,2007.8 [3] 赵亮,侯国瑞.单片机C语言编程与实例.西安:人民邮电出版社,2003. 工作计划: 5月4号课程设计任务书下达;5月5号结合指导老师,完成硬件电路的设计;5月6号程序编写;5月7号进行软硬件联机调试;5月8号—5月9号课程设计说明书的书写;5月10号领元器件;5月11号 焊接电路板;5月12号—5月13号 程序的烧写和电路板调试 ;5月14号交课程设计说明书和焊接电路板。 任务下达日期 指导教师(签名): 学生(签名): 独立式键盘控制灯移动设计 所在院系 电子信息与电气工程系 专业、年级、班

独立式键盘控制灯移动设计

摘 要:本系统主要由AT89C52单片机,电源电路,时钟电路,手动复位电路,8个

LED和四个点动独立按键等构成。通过定时器T0扫描独立按键,当检测到某个键按下时执行相应的程序,通过LED灯的移动和闪烁显示程序执行结果。

关键词:AT89C52单片机 移动 闪烁 独立按键 定时器T0

目 录

1.设计背景……………………………………………………………………1 1.1课题的提出……………………………………………………………1 1.2研究独立式按键的意义…………………………………………………1 2.设计方案……………………………………………………………………2 2.1硬件部分设计方案………………………………………………………2 2.2软件部分设计方案………………………………………………………2 3.方案实施……………………………………………………………………2 3.1硬件部分实施方案………………………………………………………2 3.2软件部分实施方案………………………………………………………6 4.结果与结论…………………………………………………………………8 4.1结果………………………………………………………………………8 4.2结论………………………………………………………………………8 5.收获与致谢…………………………………………………………………8 6.参考文献……………………………………………………………………8 7.附录…………………………………………………………………………9 附录一 电路图………………………………………………………………9 附录二 元器件清单………………………………………………………10 附录三 源程序……………………………………………………………11

1. 设计背景

1.1课题的提出

本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,

是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。

1.2 研究独立式按键意义

独立式键盘控制的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的。通常在所需按键数量不多时,系统常采用独立式按键。这种按键的电路配置灵活,软件结构简单。由于实际应用中,不同系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能 简述了该系统中一些重要芯片的基本工作原理,着重论述了硬件线路各个模块的设计思想。进而使学生熟练掌握相关专业基础知识的综合应用,提高学生的实际动手和设计能力。

1

2.设计方案

本方案主要有硬件部分和软件部分构成。 2.1 硬件部分设计方案

硬件部分主要由单片机最小系统和输入输出设备构成。

首先搭建单片机最小系统,包括电源电路,手动复位电路,时钟电路。考虑到所提供的元器件,时钟电路才用内部时钟方式,手动复位电路采用按键电平复位方式。再根据要求在P2口串接8个发光二极管作为输出设备,分别通过上拉电阻接电源,在P1口串接4个独立按键,作为输入设备。通过独立按键控制LED灯的闪烁和移动。

2.2 程序部分设计方案

设定T0为定时工作方式,T0每隔一定的时间扫描独立按键,当检测到某个键按下时,在主函数中执行相应的程序。

3. 方案实施

3.1 硬件部分实施方案

3.1.1 时钟电路

该时钟电路采用内部时钟方式。

时钟电路用于产生MCS-51单片机工作时所必需的时钟信号。MCS-51单片机的内部电路在时钟信号的控制下,严格地按时序执行指令进行工作。MCS-51内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接晶振和微调电容,就构成一个稳定的自激振荡器,图3.1.1是MCS-51内部时钟方式的振荡器电路。各参数如图3.1.1所示。

2

图3.1.1 内部时钟电路

3.1.2 复位电路

复位是单片机的初始化操作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态,通过复位按键可使单片机重新启动。复位电路只需给MCS-51复位引脚RST加上大于2个机器周期的高电平即可。图3.1.2是时钟频率为6MHz,51单片机复位电路的典型接法。各参数如图3.1.2所示。

图3.1.2 复位电路

由于6MHz晶振的机器周期是2us,要想复位成功,至少要提供两个周期也就是4us的高电平。要用到的11.0592晶振的机器周期约为1us,要想在此晶振下正常复位,需提供至少两个机器周期,也就是约2us的高电平,由于4us>2us故6MHz的晶振复位电

3

路各参数肯定能在11.0592MHz下使用,故上面的参数也适合于11.0592MHz的晶振电路。 3.1.3 电源电路

图3.1.3 电源电路

图3.1.3所示电源电路为电路的工作提供合适的电源。经过变压器降压后的交流电通过桥堆2W10的整流变为直流电,电容C1、C2分别起到滤掉谐波分量、改善稳定性和瞬态响应的作用,前级输入通过三端稳压器7805后输出+5电压,D9(LED)作为电源的指示灯,R10作为限流电阻防止发光二极管电流过大被烧坏。此电源电路为电路提供+5的工作的电压。 3.1.4 外围电路

外围电路主要有输入设备和输出设备。输入设备主要由4个独立按键构成,如图3.1.5所示。输出设备由8个二极管构成,如图3.1.4所示。其中K1控制8个二极管从右向左移动,K2控制8个二极管从左向右移动,K3控制左面四个数码管和右边四个数码管交替闪烁K4控制8个二极管闪烁5次。其中二极管的保护电阻的取值范围为220-880欧姆之间。

4

D1R1300LEDD2R2300D3LEDR3300D4LEDR4300D5LEDR5300D6LEDR6300D7LEDR7300LEDD8R8300LED 图3.1.4 输出电路

图3.1.5 输出电路

5

3.2 软件部分实施方案

开始 设置定时器T0为工作方式1 为定时器T0赋初值 开总中断 开定时器中断 启动T0 flag1=1? N flag2=1? N N flag3=1? N flag4=1? Y 灯从右向左移动 Y 灯从左向右移动 Y 左边四个和右边四个交替闪烁 Y 八个灯闪烁

图3.2.1 主程序流程图

6

开始 为T0赋初值 消抖 YES flag1=1; flag2=0; flag3=0; flag4=0; S1=0? NO S2=0? YES 消抖 flag2=1; flag1=0; flag3=0; flag4=0; NO S3=0? YES 消抖 flag3=1; flag1=0; flag2=0; flag4=0; NO 消抖 flag4=1; flag1=0; flag2=0; flag3=0;

S4=0? NO 返回

YES 图3.2.2 中断服务程序流程图

7

4. 结果与结论

4.1 结果

按以上实施方案设计好硬件连接图并根据硬件图编写好程序后,在Protues中模拟,产生的模拟结果与预想的一致,制作好电路板并装好元件后,通电后,系统所显示的结果与仿真的结果完全一致。

4.2 结论

在测试发光二极管是否能用的同时,直接把+5V电源接到二极管的正负引脚,造成其

中的一个二极管电流过大,被烧坏了,以后再对二极管测时,一定要注意串接保护电阻。

5. 收获与致谢

通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,发现了一些自己在课堂学习过程中对理论知识理解上的不足,通过这次课程设计,翻阅了一些关于单片机的书籍,加深了我对理论知识的理解,培养了动手能力和独立思考的能力,让我更加明白理论联系实际的重要性。在整个设计过程中,遇到一些问题,但在丁莹亮老师及其他辅导老师的帮助下我们最终还是战胜了这些困难,顺利完成了设计。在此对所有给予我们指导的老师表示深深地感谢。

6. 参考文献

[1] 张毅刚.单片机原理及应用.北京:高等教育出版社,2009.1

[2] 徐爱钧.智能化测量控制仪表原理与设计.北京:北京航空航天大学出版社,2007.8 [3] 赵亮,侯国瑞.单片机C语言编程与实例.西安:人民邮电出版社,2003.

8

7. 附录

附录一 电路图

D1R1300LEDD2R2300C130p19U1X1CRYSTAL18XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D3LEDR3300C230p9XTAL2D4LEDR4300RSTD5LEDR5300D6293031LEDR6300PSENALEEAC310u12345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52D7LEDR7300R9200R101kLEDD8R8300LED 图7.1 电路图

9

附录二 元器件清单

元件 AT89S52 晶振11.0592MHZ 瓷片电容104 电解电容1000UF LED指示灯 电阻300 电阻1K 7805 桥堆2W10 40脚IC插座 按键 排线 万能板 数量 1 1 2 2 8 13 1 1 1 1 5 2 1

10

附录三 源程序

#include

#include

sbit S1=P3^4; sbit S2=P3^5; sbit S3=P3^6; sbit S4=P3^7;

unsigned char flag1,flag2,flag3,flag4; unsigned char temp,i;

void delay(unsigned int z) {

unsigned int x,y; for(x=z;x>0;x--)

for(y=100;y>0;y--); }

void main() {

TMOD=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256;

EA=1; ET0=1; TR0=1; while(1) {

if(flag1==1) { P2=0xfe;

delay(500); temp=P2; for(i=0;i<8;i++)

{

if(flag1==1) { temp=_crol_(temp,1); P2=temp;

delay(500);

if(i==7) i=0; } } }

if(flag2==1) 11

//设置定时器T0为工作方式1 //定时器赋初值

//开总中断 //开启定时器T0中断 //启动定时器T0 //灯右移模块子程序

//灯左移模块子程序

{ P2=0x7f; delay(500);

temp=P2;

for(i=0;i<8;i++)

{

if(flag2==1) { temp=_cror_(temp,1);

P2=temp; delay(500);

if(i==7) i=0;

} } }

if(flag3==1) { if(flag3==1) { P2=0x0f;

delay(1000);}

if(flag3==1) { P2=0xf0; delay(1000);} }

if(flag4==1)

{

P2=0xff;

for(i=0;i<10;i++)

{

if(flag4==1) {

P2=~P2;

delay(1000);

} }

} }

}

void timer0() interrupt 1 {

TH0=(65536-10000)/256; TL0=(65536-10000)%256;

if(S1==0)

{

//四个灯交替闪烁子程序

//八个灯交替闪烁5次子程序 //定时器T0中断服务程序 //T0重新装初值 //检测是否是S1按下 12

delay(5); //软件延时消抖

if(S1==0) //再次检测S1是否确实按下

{ while(!S1); //松手检测 flag1=1; //设置标志位 flag2=0; flag3=0; flag4=0; } }

if(S2==0) {

delay(5); if(S2==0)

{ while(!S2); flag1=0; flag2=1; flag3=0; flag4=0; } }

if(S3==0)

{

delay(5); if(S3==0) {

while(!S3);

flag1=0; flag2=0; flag3=1; flag4=0; } }

if(S4==0) { delay(5);

if(S4==0) {

while(!S4);

flag1=0;flag2=0;flag3=0;flag4=1; } } }

13

指导教师评语: 课程设计报告成绩: ,占总成绩比例: 30% 课程设计其它环节成绩: 环节名称: 考勤 ,成绩: ,占总成绩比例: 20% 环节名称: 综合 ,成绩: ,占总成绩比例: 50% 总 成 绩: 指导教师签字: 年 月 日 本次课程设计负责人意见: 负责人签字: 年 月 日

14

因篇幅问题不能全部显示,请点此查看更多更全内容