单片机系统设计课程设计报告吴薇.docx
- 文档编号:25704183
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:19
- 大小:156.75KB
单片机系统设计课程设计报告吴薇.docx
《单片机系统设计课程设计报告吴薇.docx》由会员分享,可在线阅读,更多相关《单片机系统设计课程设计报告吴薇.docx(19页珍藏版)》请在冰豆网上搜索。
单片机系统设计课程设计报告吴薇
目录
一、设计要求2
1、设计目的2
2、设计任务2
二、设计原理及框图2
1、设计原理2
2、设计框图3
三、器件说明4
1、设计所用器件清单4
2、引脚排列图或功能表4
四、设计过程6
1、存储单元分配6
2、主程序设计6
3、数码管显示数据转换子程序6
4、数码管动态显示子程序7
五、综合逻辑电路图7
六、仿真调试过程8
七、设计体会及收获8
八、参考文献9
九、附录10
一、设计要求
1、设计目的
通过本次课程设计,运用《AT89S51系列单片微型计算机及其应用》所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。
通过本次设计训练,可以使我们在基本思路和基本方法上对基于AT89S51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
2、设计任务
在本次课程设计中,主要完成如下方面的设计任务:
1)简要说明数码管动态显示和矩阵键盘基本原理;
2)掌握51单片机的最小电路及外围扩展电路的设计方法;
3)了解单片机数据转换功能及工作过程;
4)完成主要功能模块的硬件电路设计及必要的参数确定;
5)用protues软件完成原理电路的绘制;
二、设计原理及框图
1、设计原理
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
本次设计主要包含四个模块的电路,分别是显示电路、按键电路、最小系统和复位电路。
通过对键盘输入的循环扫描来获取输入值,在单片机内部进行计算,最后将结果显示在数码管上。
2、设计框图
三、器件说明
1、设计所用器件清单
器件名称
数量
AT89C51
1
计算器键盘
1
10K电阻
5
电容22uF
2
共阳数码管
1
晶振12MHz
1
2、引脚排列图或功能表
1)AT89S51引脚图
当单片机工作于内部时钟模式的时候,只需在XTAL1和XTAL2引脚连接一个晶体振荡器或者陶瓷振荡器,并接两个电容后接地即可,在使用时对于电容的选择有一定的要求:
●当外接晶体振荡器的时候,电容值一般选择C1=C2=30+10pF或30-10pF;
●当外接陶瓷振荡器的时候,电容值一般选择C1=C2=40+10pF或40-10pF;
2)计算器键盘引脚及内部构造
计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。
矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
矩阵键盘的工作原理:
计算器的键盘布局如图1所示:
一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。
3)共阳数码管引脚图
四、设计过程
51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。
如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!
因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。
1、存储单元分配
30H单元:
数值个位显示单元;31H单元:
数值十位显示单元;32H单元:
数值百位显示单元;33H单元:
数值千位显示单元;23H单元:
第一操作数存储单元;24H单元:
第二操作数存储单元;25H单元:
键值暂存单元;27H单元:
清除键状态;34H-37H单元:
结果数据转换暂存单元;38H-39H单元:
结果高低8位暂存单元;R5单元:
操作数计数单元;R4单元:
操作数数值位数计数单元;R3单元:
运算符号存储单元。
2、主程序设计
主程序进行程序中用到的一些存储单元的初始化,数值显示和4*4键盘扫描。
首先,进行存储单元初始化,给数码管显示单元30H-33H赋予“0000”字形数据,将数值计数单元,存储单元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,赋予初值零。
之后,调用键盘扫描子程序,和数码管显示数据转换程序,数码管动态显示子程序。
主程序不断进行键盘扫描,数码管显示数据转换子程序和动态显示子程序。
3、数码管显示数据转换子程序
由于数值单元存放的是二进制数,而用户熟悉的是十进制数,所以应将数值单元中的二进制转换为十进制数,即BCD码。
要通过数码管显示出当前数值,还必须将BCD码进一步转换为七段码,转换的最终结果数据存放于显示缓冲区30H-33H单元中,其中30H单元存放数值的个位七段码,31H单元存放数值的十位七段码,32H单元存放数值的百位七段码,33H单元存放数值的千位七段码。
4、数码管动态显示子程序
本任务由P1口输出字形码,P0口输出字位码。
先将存放于30H单元的数值个位七段码由P1口输出,同时P0口输出使数值个位显示数码管点亮的字位码。
由于采用的是共阳数码管,所以只有该位数码管对应的P0.0为1,其他位P0.1-P0.3位0,点亮延时10MS。
然后P1口输出数值十位七段码,P0.1位1,数值十位数码管点亮,延时10MS。
接着P1口输出数值百位七段码,P0.2为1,数值百位数码管点亮,延时10MS。
最后P1口输出数值千位七段码,P0.3为1,数值千位数码管点亮,延时10MS。
五、综合逻辑电路图
六、仿真调试过程
●在protues仿真时出现了数码管动态显示频率过慢的问题,对此我更改了数码管动态显示子程序中延时的那一部分,最终问题得以缓解。
●在最初的仿真结果中,数码管动态显示十分缓慢,后来请教了学的出色的同学,知道了是片选端所接电阻阻值不当的问题,后来换了较大阻值的电阻,使问题得以解决。
七、设计体会及收获
这是我们进入大学来的第三个关于设计类的课题。
第一个是数电,第二个是长通杯。
这次与前两次的不同在于这个留给我的更多的是抽象与纠结。
在这次课程设计中,我学到了好多东西,有些甚至是课本上面所没有的。
1、我对proteus仿真软件有了更多地的了解和认识。
通过使用proteus仿真软件,可以让我们在虚拟的环境中进行实验,可以先通过它来检验电路的正确性和可行性,而不需要真实电路环境的介入,不必顾及仪器设备的短缺与时间环境的限制,能够极大的提高实验的效率。
2、以前总认为查阅资料没有多大的意义,但是通过这次设计,我们了解到查阅参考书的独立思考的能力以及培养非常重要,我在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。
这也提示我们以后要学会学方面的查找资料,逐步提高自己的学习能力。
3、相互讨论共同研究也是很重要的,我们在仿真的时候经常出现一些问题,比如数码管的显示、键盘的扫描等。
一个人的能力毕竟是有限的,所以大家一起集思广益,每个人都发动自己的思维,集体讨论,最后取得了很好的效果。
最后我还懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到了不少棘手的问题,可谓是困难重重。
我们必须要学着自己去找资料、去理解、去解决问题,加强我们独立思考的能力。
同时在设计的过程中。
我发现了许多自己的不足之处,认识的自己对以前所学过的知识理解得不够深刻,掌握得不够牢固,没有在日常生活中将理论与实际相结合起来,以后要多加努力才行啊!
感谢老师给了我们这样一次机会,让我们有机会将我们所学的东西付诸于实践。
这次课设不仅是我们收获了好多,同时还不断的鞭策我们,使我们不断的学习,朝向自己的目标,不断前进!
八、参考文献
1)张毅刚.单片机原理及应用[M].高等教育出版社,2010
2)徐爱钧.智能化测量控制仪表原理与设计(第二版).北京航天航空大学出版社,2004.9
3)李萍等.智能仪器实验指导书.大连交通大学,2007.9
九、附录
程序源代码
DISPBUFEQU30;显示缓冲区首地址定义
ORG0000H;主程序的入口地址
START:
MOVDISPBUF,#0C0H
;4个数码管显示"0000"字形数据
MOVDISPBUF+1,#0C0H
MOVDISPBUF+2,#0C0H
MOVDISPBUF+3,#0C0H
MOV37H,#00H;数值初始化
MOV27H,#00H
MOV26H,#00H
MOV25H,#00H
MOV24H,#00H
MOV23H,#00H
MOVR3,#00H
MOVR5,#00H
MOVR4,#00H
LOOP:
LCALLK;调用键盘扫描子程序
MOVR6,27H
CJNER6,#00H,START;清除键判断
MOVR6,26H
CJNER6,#00H,F;显示数据转换子程序选择
LCALLCONV
;调用数码管显示数据转换子程序
FA:
LCALLDISPSCAN
;调用数码管动态显示子程序
SJMPLOOP
KEY:
MOVP2,#0FH;键盘扫描子程序
MOVA,P2
ANLA,#0FH
CJNEA,#0FH,K10
RET
K10:
JBP2.0,K20
K11:
MOVP2,#0EFH
JBP2.0,K12
CJNER5,#00H,L1
MOVR4,#00H
INCR5
MOVR3,#1H
L1:
LJMPCEND
K12:
MOVP2,#0DFH
JBP2.0,K13
CJNER5,#00H,L2
MOVR4,#00H
INCR5
MOVR3,#2H
L2:
LJMPCEND
K13:
MOVP2,#0BFH
JBP2.0,K14
CJNER5,#00H,L3
MOVR4,#00H
INCR5
MOVR3,#3H
L3:
LJMPCEND
K14:
MOVP2,#7FH
JBP2.0,KIL
CJNER5,#00H,L4
MOVR4,#00H
INCR5
MOVR3,#4H
KIL:
LJMPKEND
L4:
LJMPCEND
K20:
JBP2.1,K30
K21:
MOVP2,#0EFH
JBP2.1,K22
LJMPDYU
K22:
MOVP2,#0DFH
JBP2.1,K23
MOV25H,#3H
LJMPOPR
K23:
MOVP2,#0BFH
JBP2.1,K24
MOV25H,#6H
LJMPOPR
K24:
MOVP2,#7FH
JBP2.1,cctv
MOV25H,#9H
LJMPOPR
cctv:
LJMPKEND
K30:
JBP2.2,K40
K31:
MOVP2,#0EFH
JBP2.2,K32
MOV25H,#0H
LJMPOPR
K32:
MOVP2,#0DFH
JBP2.2,K33
MOV25H,#2H
LJMPOPR
K33:
MOVP2,#0BFH
JBP2.2,K34
MOV25H,#5H
LJMPOPR
K34:
MOVP2,#7FH
JBP2.2,KEND
MOV25H,#8H
LJMPOPR
K40:
JBP2.3,KEND
K41:
MOVP2,#0EFH
JBP2.3,K42
INC27H
LJMPKEND
K42:
MOVP2,#0DFH
JBP2.3,K43
MOV25H,#1H
LJMPOPR
K43:
MOVP2,#0BFH
JBP2.3,K44
MOV25H,#4H
LJMPOPR
K44:
MOVP2,#7FH
JBP2.3,KEND
MOV25H,#7H
LJMPOPR
OPR:
INCR4;键值存储
CJNER5,#00H,CHANG
CJNER4,#2H,KBK
ZHI:
MOVA,20H
MOVB,#0AH
MULAB
MOV20H,25H
ADDA,20H
CJNER5,#00H,CZH
MOV23H,A
LJMPKEND
CZH:
MOV24H,A
LJMPKEND
KEND:
MOVP2,#0FH
MOVA,P2
ANLA,#0FH
CJNEA,#0FH,KEND
RET
CHANG:
CJNER4,#2H,HONG
AJMPZHI
HONG:
JNCCEND
INCR5
MOV20H,25H
MOV24H,25H
LJMPCEND
KBK:
JNCCEND
MOV20H,25H
MOV23H,25H
LJMPCEND
DYU:
MOVR5,#00H;结果计算
MOVR4,#00H
MOV25H,#00H
CJNER3,#1H,S
MOVA,23H
ADDA,24H
MOV23H,A
SJMPCEND
S:
CJNER3,#2H,S1
CLRC
MOVA,23H
CJNEA,#00H,JIANFA
MOV23H,#0EH
SJMPCEND
JIANFA:
SUBBA,24H
MOV23H,A
SJMPCEND
S1:
CJNER3,#3H,S2
MOVA,23H
MOVB,24H
MOVA,23H
MULAB
MOVR6,B
CJNER6,#00H,CHENG
MOV23H,A
SJMPCEND
S2:
CJNER3,#4,CEND
MOVA,24H
CJNEA,#00H,ZY
MOVA,#00H
SJMPCEND
ZY:
MOVA,23H
MOVB,24H
DIVAB
MOV23H,A
CEND:
MOVP2,#0FH
MOVA,P2
ANLA,#0FH
CJNEA,#0FH,CEND
RET
CHENG:
MOVR3,B
MOVB,#64H
DIVAB
MOV36H,A
MOVA,B
MOVB,#0AH
DIVAB
MOV35H,A
MOV34H,B
MOVDPTR,#TABLE
XIAN:
MOVA,34H
ADDA,#6H
MOVB,#0AH
DIVAB
MOV25H,A
MOV34H,B
MOVA,B
MOVCA,@A+DPTR
MOVDISPBUF,A
MOVA,35H
ADDA,#5H
ADDA,25H
MOVB,#0AH
DIVAB
MOV25H,A
MOV35H,B
MOVA,B
MOVCA,@A+DPTR
MOVDISPBUF+1,A
MOVA,36H
ADDA,#2H
ADDA,25H
MOVB,#0AH
DIVAB
ADDA,37H
MOV37H,A
MOVCA,@A+DPTR
MOVDISPBUF+3,A
MOV36H,B
MOVA,B
MOVCA,@A+DPTR
MOVDISPBUF+2,A
DJNZR6,XIAN
MOV26H,#1H
AJMPCEND
CONV:
CJNER5,#02H,BEI
;数码管显示数据转换子程序
MOVA,24H
AJMPJING
BEI:
MOVA,23H
JING:
MOVB,#64H
DIVAB
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVDISPBUF+2,A
MOVA,B
MOVB,#0AH
DIVAB
MOVCA,@A+DPTR
MOVDISPBUF+1,A
MOVA,B
MOVCA,@A+DPTR
MOVDISPBUF,A
RET
DISPSCAN:
MOVR0,#DISPBUF
;数码管动态显示子程序
MOVR2,#4H
MOVA,#1H
SC:
PUSHACC
MOVA,@R0
MOVP1,A
POPACC
MOVP0,A
LCALLDELAY1
RLA
INCR0
DJNZR2,SC
MOVP0,#1H
RET
DEL12:
MOVR6,#1EH
DEL2:
MOVR7,#64H
DEL1:
DJNZR7,DEL1
DJNZR6,DEL2
RET
DELAY1:
MOVR6,#50
D2:
MOVR7,#180
DJNZR7,$
DJNZR6,D2
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H;字符表
DB92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H
DB8EH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 系统 设计 课程设计 报告