单片机设计说明书.docx
《单片机设计说明书.docx》由会员分享,可在线阅读,更多相关《单片机设计说明书.docx(21页珍藏版)》请在冰豆网上搜索。
单片机设计说明书
新疆农业大学机械交通学院
《单片机技术与应用》
课程设计说明书
题目:
查询式键盘电路设计
专业班级:
学号:
学生姓名:
指导教师:
艾海提•赛买提、李春兰
时间:
2016年10月
组员分工
职务
姓名
任务
组长
绘制流程图、编写程序
组员
参数计算
组员
电路板实物连接
组员
Proteus仿真、Keil调试
查询式键盘电路设计
学生姓名:
赵陈指导老师:
艾海提·赛买提、李春兰
1设计目的
熟悉并掌握单片机原理及基本的应用,掌握单片机基本外设的使用方法,掌握汇编语言编程方法,熟悉PROTEUS、keil软件的使用,综合运用所学的知识及电子焊接技术的基础知识连接硬件实现设计功能。
2设计内容
用AT89S51的并行口P1接查询式键盘如图2-1所示。
图2-1查询式键盘
将8个按键从0-7编号,如果有其中一个按键按下时,则在数码管上显示相应的键号,并在P2口接8个LED灯,按下0键数码管显示0时,亮1个LED灯;按下1键数码管显示1时,亮2个LED灯;按下2键数码管显示2时,亮3个LED灯;按下3键数码管显示3时,亮4个LED灯;按下4键数码管显示4时,亮5个LED灯;按下5键数码管显示5时,亮6个LED灯;按下6键数码管显示6时,亮7个LED灯;按下7键数码管显示7时,亮8个LED灯。
3设计步骤
3.1硬件电路设计
3.1.1硬件电路组成
独立式查询键盘设计中,我们采用AT89C51单片机芯片作为实验的主体,通过在振荡电路和复位电路的作用下,让单片机获得自启动,从而输入相应的程序,通过按键然后在数码管显示电路中显示键值和对应的LED灯亮灯个数。
所得的硬件电路组成框图如图3-1所示。
图3-1硬件电路组成框图
3.1.2各单元电路及工作原理
(1)控制电路
对于AT89C51单片机单元,由于其共有40个管脚,其中有32个管脚可作为I/O口用,它们分别为P0口的八个管脚、P1口的八个管脚、P2口的八个管脚和P3口的八个管脚,其中P3口的八个管脚可作串行口、外部中断、定时器、读写控制等特殊用途,当不需要作特殊用途的时候,P3口可作I/O口使用。
AT89C51单片机芯片如图3-2所示。
图3-2AT89C51单片机
(2)晶振电路
晶振电路用于产生单片机工作所需的时钟信号,晶振电路如图3-3所示,通常,
ƒ=12MHz,电容C1和C2的值在5~30ƤF之间,在此取30ƤF。
图3-3晶振电路
(3)复位电路
复位是使单片机处于初始化状态。
为了确保单片机复位,复位时间t必须大于两个机器周期(24个时钟周期)t=RC≧24μs,当R=10KΩ时,C取10μs可满足要求。
复位电路如图3-4所示。
图3-4复位电路
(4)查询式键盘电路如图3-5所示。
图3-5查询式键盘电路
(5)数码管显示电路如图3-6所示。
图3-6数码管显示电路
(6)LED灯电路如图3-7所示
图3-7LED灯电路
3.2程序设计
3.2.1绘制程序流程图
流程图及解释如图3-8所示。
显示
图3-8流程图
3.2.2汇编程序
ORG0000H
LJMPSMG_JIANCE
ORG0030H
MOVSP,#60H
SMG_JIANCE:
;数码管检测程序,查看是否有损坏
MOVDPTR,#JIANCE_TAB
MOVR2,#00;设定查表初值,从a段开始检测
LOOP:
MOVA,R2
MOVCA,@A+DPTR;取表值
MOVP0,A;把表值送给P0口
LCALLDELAY_500MS;延时500ms
INCR2
CJNER2,#10,LOOP
K_IN:
MOVP2,#00H;熄灭所有LED灯
AJMPMIAN
MIAN:
;主程序
MOVP1,#0FFH;初始化P1口
MOVA,P1;读P1口值
CJNEA,#0FFH,K_IN1;判断是否有键按下,有键按下转K_IN1
SJMPMIAN
K_IN1:
;消除抖动判断
ACALLDELAY;调用延时
MOVA,P1;读取P1口
CJNEA,#0FFH,K_IN2;再次判断是否有键按下,有键按下转K_IN2
SJMPMIAN
K_IN2:
;已确认有键按下,作数据处理
MOVA,P1
CJNEA,#0FEH,K1
MOVR3,#00H;数码管显示0
MOVP2,#01H
LCALLDISP
K1:
MOVA,P1
CJNEA,#0FDH,K2
MOVR3,#01H;数码管显示1
MOVP2,#03H
LCALLDISP
K2:
MOVA,P1
CJNEA,#0FBH,K3
MOVR3,#02H;数码管显示2
MOVP2,#07H
LCALLDISP
K3:
MOVA,P1
CJNEA,#0F7H,K4
MOVR3,#03H;数码管显示3
MOVP2,#0FH
LCALLDISP
K4:
MOVA,P1
CJNEA,#0EFH,K5
MOVR3,#04H;数码管显示4
MOVP2,#01FH
LCALLDISP
K5:
MOVA,P1
CJNEA,#0DFH,K6
MOVR3,#05H;数码管显示5
MOVP2,#03FH
LCALLDISP
K6:
MOVA,P1
CJNEA,#0BFH,K7
MOVR3,#06H;数码管显示6
MOVP2,#07FH
LCALLDISP
K7:
MOVA,P1
CJNEA,#07FH,WAIT
MOVR3,#07H;数码管显示7
MOVP2,#0FFH
LCALLDISP
WAIT:
;等待按键释放
MOVP1,#0FFH
MOVA,P1
CJNEA,#0FFH,WAIT
LJMPMIAN
DELAY_500MS:
;延时用于数码管检测段
MOVR3,#30
DE:
LCALLDELAY
DJNZR3,DE
RET
DELAY:
;延时用于消抖处理
MOVR0,#20
DL1:
MOVR1,#250
DJNZR1,$
DJNZR0,DL1
RET
DISP:
;将查表的码表值送入P0端口点亮数码显示
MOVDPTR,#D_TAB
MOVA,R3
MOVCA,@A+DPTR
MOVP0,A
RET
JIANCE_TAB:
;数码管检测段编码表
DB0FFH;全灭
DB0FEH,0FDH,0FBH,0F7H;abcd
DB0EFH,0DFH,0BFH,07FH;efgh
DB0C0H;显示0
D_TAB:
;7段LED数码管显示0——F码表(共阳极)
DB0C0H,0F9H,0A4H,0B0H;0123
DB99H,92H,82H,0F8H;4567
END
3.2.3keil软件的使用方法
首先正确安装keil软件—>打开keil—>project—>newproject—>为工程取名字,并选择工程要保存的路径,建议每个工程新建一个文件夹,方便文件管理—>出来一个对话框,是选择芯片的,根据自己所选的芯片公司和型号来选择就行了,我们组选择的是最常用的AT89C51,点ATMEL,找到AT89C51,点OK后会出来一个对话框,问是否添加启动文件,点“是”,这样就建好了一个工程,点File菜单下New新建文件—>先保存文件,点保存按钮后出来路径框,取名字后缀是.ASM,点保存。
接下来在左边project下把Target1点开,在SourceGroup1上右键,点击AddFiletoGroup'SourceGroup1'—>在弹出的框中点刚刚保存的文件,然后点Add,关闭对话框,左边project框中可以看到文件已经添加
下面是设置KEIL软件的配置参数的步骤
(1)构建项目
图3-9keil软件构建项目
(2)设置项目参数
图3-10设置项目参数
图3-11设置输出参数
(3)程序编译
图3-12程序编译
4调试与仿真
4.1硬件仿真
4.1.1元件清单
元件清单如表4-1所示
表4-1元件清单
元器件
数量
AT89C51单片机
1个
晶振12MHz
1个
普通电容30Pf
2个
极性电容10uF
1个
电阻10KΩ
1个
共阳极8段数码管
1个
导线
若干
按钮
8个
LED灯(红)
8个
4.1.2PROTEUS仿真
Proteus仿真图形如图4-1至4-9所示。
图4-1硬件电路
图4-2按0键时的仿真
图4-3按1键时的仿真
图4-4按2键时的仿真
图4-5按3键时的仿真
图4-6按4键时的仿真
图4-7按5键时的仿真
图4-8按6键时的仿真
图4-9按7键时的仿真
4.2电路板连接
4.2.1电路板连接图
电路板连接图如图4-10所示。
图4-10电路板连接图
4.2.2硬件板电路调试
硬件板电路所得结果如图4-11至4-19所示。
图4-11启动
图4-12按0键时的显示结果
图4-13按1键时的显示结果
图4-14按2键时的显示结果
图4-15按3键时的显示结果
图4-16按4键时的显示结果
图4-17按5键时的显示结果
图4-18按6键时的显示结果
图4-19按7键时的显示结果
参考文献:
[1]谭成豪,许建明.试述51系列单片机矩阵键盘编程[J].科技传播,2011,06:
197.
[2]董雷刚,崔晓微,程书伟.基于单片机的数字计算器的设计[J].电脑知识与技术,2012,10:
2386-2388+2414.
[3]刘静波.基于单片机的四位BCD编码器电路设计[J].现代电子技术,2006,18:
130-133.
[4]张旭强.PIC单片机键盘电路应用四例[J].电子制作,2007,08:
20-24.
[5]贵国庆.单片机新手入门实例详解之三4×4矩阵健盘的工作原理与编程[J].电子制作,2006,03:
60-62.
[6]徐纬.51单片机综合学习系统——矩阵键盘篇[J].电子制作,2007,11:
54-56.
[7]马立国.AD7888与AT89C51单片机接口应用技术[J].集成电路通讯,2007,02:
32-36+40.
[8]胡全.51单片机的数码管动态显示技术[J].中国新技术新产品,2009,13:
25.
[9]张喜凤,屈宝鹏.基于VHDL的矩阵键盘及显示电路设计[J].现代电子技术,2010,16:
14-16.
[10]李伍元.浅谈单片机非编码键盘工作原理及设计方法[J].科技情报开发与经济,2009,02:
109-111.
[11]杨宁,阳泳,江世明.基于单片机的LED流水灯控制与简述[J].电子世界,2016,01:
52.
[12]高培先.一种独立式键盘电路及其中断程序设计[J].计算机测量与控制,2008,03:
373-375.
[13]李强.键盘接口编程技术[J].电子世界,2003,10:
34-35.
[14]NottoliEM,LambertJB,LetsingerRL.StudyofconformationalchangesinducedonsubstitutingNHforOatC(51)ofthymidinenucleosidesandnucleotides.[J].AmericanChemicalSociety.Journal,1977,9910