单片机课程设计说明书内容及格式要求图文Word文档下载推荐.docx
《单片机课程设计说明书内容及格式要求图文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课程设计说明书内容及格式要求图文Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
3.1元件清单
原件名称所属类所属子类AT89C51MicroprocessorICs8051family
CAPCapacitorsGeneric
CAP-ELECCapacitorsGeneric
CRYSTALMiscellameous-------
RESResistorsGeneric
7SEG-MPX8-CC-BLUEOptoelectronics6-SegmengDisplays
74LS245TTL74LSseriesTransceivers
BUTTONSwitches&
RelaysSwitches
SOUNDERSpeakers&
Sounder-------
LED-YELLOWOptoelectronicsLEDs
元件全部添加完后,在ProteusISIS的编辑区域中按下图所示的原理图连接硬件电路。
原理图
电路元件说明及原理图
3.3.1LED数码显示器
LED显示块是由发光显示二极管显示字段的显示器件。
它实际上是由8个发光二极管,其中7个发光二极管构成七笔字形“8”,另一个发光二极管构成小数点。
七段显示块与单片机接口非常容易。
只要将一个8位并行输出与显示块的发光二极管引脚相连即可。
8位并行输出口输出不同的字节数据即可获得不同的数字或字符,
通常将控制发光二极管的8位字节数据称为段选码。
LED数码显示器内部有两种不同的形式:
共阳极显示和共阴极显示,此设计采用共阴极显示。
LED数码显示字形(段码表如下:
显示字形字形码(共阳极字形码(共阴极
0C0H3FH
1F9H06H
2A4H5BH
3B0H4FH
499H66H
592H6DH
682H7DH
7F8H07H
880H7FH
990H6FH
A88H77H
B83H7CH
CC6H39H
DA1H5EH
E86H79H
F8EH71H
3.3.2复位电路
复位电路有上电自动复位和手动复位,此设计用的是上电复位,电路图如上。
pin9:
RESET/VPD复位信号复位脚,当8951通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统及初始复位。
3.3.3时钟电路
89C51芯片内部有一个高增益反相放大器,用于构成振荡器。
反相放大器的输入端为XTAL1,输出端为XTAL,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。
电容
器C1和C2通常取30PF,可稳定频率并对振荡频率有微调作用。
此振荡脉冲频率为12MHZ。
单片机时钟电路振荡脉冲可以由内部方式和外部方式产生,XTAL1(19引脚XTAL2(18引脚即为单片机的两个时钟引脚。
3.3.4矩阵键盘
矩阵式键盘又称行列式键盘,往往用于按键个数多的场合,矩阵式键盘的按键于行、列的交叉点上,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接,列线通过上拉电阻接电源,将行线所得单片机的I/O口作为输出端,列线所接的I/0口为输入端,编程所有行线输出低电平,列线输出高电平,当没有键被按下时,所有输出端为高电平,表示无键按下,一旦有键按下,则出现输入端被拉低变为低电平。
这样,通过读入列线的状态即可知道是否有键按下。
3.3.574LS245说明
74LS45芯片常来驱动LED或者其它设备,它是8路同相三态双向总线收发器,可双向传输数据。
当单片机的PO口总线负载达到或者超过PO最大负载能力是,必须接入74LS245等总线驱动器。
3.3.6单片机引脚说明
Pin20:
接地脚。
pin40:
正电源脚,工作时,接+5v电源。
pin19:
时钟XTAL1引脚,片内振荡电路的输入端。
pin18:
时钟XTAL2脚,片内振荡电路的输出端。
4程序存储器和数据存储器的单元分配
4.1程序存储器和数据存储器的单元分配
存储器是单片机的一个重要组成部分,每个存储单元对应一个地址,每个个单元共有1个地址,用两位16进制数表示,即存储器的地址(00H~FFH。
存储器中每个存储单元可存放一个八位二进制信息,通常用两位16进制数来表示,这就是存储器的内容。
4.1.1程序存储器
在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。
程序存储器可以放在片内或片外,亦可片内片外同时设置。
由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH。
4.1.2数据存储器
单片机的数据存储器由读写存储器RAM组成。
其最大容量可扩展到64k,用于存储实时输入的数据。
8051内部有256个单元的内部数据存储器,其中00H~7FH为内部随机存储器RAM,80H~FFH为专用寄存器区。
4.1.3特殊功能寄存器
特殊功能寄存器(SFR的地址范围为80H~FFH。
在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。
MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。
其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能。
5程序设计
8位数码显示,初始化时,显示“EF”,接着输入最大6位数的密码,当密码输入完毕后,按下“ENTER”键,与密码初始值进行比较,若发光二极管发光,则说明密码正确;
如果蜂鸣器发出报警声,则说明密码错误。
在输入密码过程中,显示器只显示“-”,当输入密码位数超过6个数字时,蜂鸣器会发出报警声。
在输入
密码过程中,若输入错误,则可以通过清零键“CLR”删除输入错误的数字,接着可以继续输入数字。
5.1程序流程
5.2源程序
LED_BIT1EQU30H
LED_BIT2EQU31H
LED_BIT3EQU32H
LED_BIT4EQU33H
LED_BIT5EQU34H
LED_BIT6EQU35H
LED_BIT7EQU36H是CLR键?
是ENTER存键值
已输6位段码,密码
左移
等待输入计算键值
首次按键?
段码,密码右移计数值减1比较报警密码正确
开锁
计数值加1
初始化,设
置初始密码
是否
是
LED_BIT8EQU37H
WORD_1EQU38H
WORD_2EQU39H
WORD_3EQU3AH
WORD_4EQU3BH
WORD_5EQU3CH
WORD_6EQU3DH
KEY_1EQU3EH
KEY_2EQU3FH
KEY_3EQU40H
KEY_4EQU41H
KEY_5EQU42H
KEY_6EQU43H
KEY_CNTEQU46H
LINEEQU47H
ROWEQU48H
VALEQU49H
ORG0000H
SJMPSTARTSTART:
MOVCNT_A,#00HMOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00H
CLRP1.0
CLRP1.7
MOVLED_BIT1,#00HMOVLED_BIT2,#00HMOVLED_BIT3,#00HMOVLED_BIT4,#00HMOVLED_BIT5,#00HMOVLED_BIT6,#00HMOVLED_BIT7,#79HMOVLED_BIT8,#73H
MOVKEY_1,#00HMOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMOVKEY_5,#00HMOVKEY_6,#00H
MOVWORD_1,#6MOVWORD_2,#5MOVWORD_3,#4MOVWORD_4,#3MOVWORD_5,#2MOVWORD_6,#1
A0:
LCALLDISPLSCAN:
MOVP3,#0F0H
L1:
JNBP3.0,L2LCALLDLY_SJNBP3.0,L2MOVLINE,#00HLJMPRSCANL2:
JNBP3.1,L3LCALLDLY_SJNBP3.1,L3MOVLINE,#01HLJMPRSCANL3:
JNBP3.2,L4LCALLDLY_SJNBP3.2,L4MOVLINE,#02HLJMPRSCANL4:
JNBP3.3,A0LCALLDLY_SJNBP3.3,A0MOVLINE,#03H
RSCAN:
MOVP3,#0FHC1:
JNBP3.4,C2MOVROW,#00HLJMPCALCUC2:
JNBP3.5,C3MOVROW,#01HLJMPCALCUC3:
JNBP3.6,C1MOVROW,#02H
CALCU:
MOVA,LINEMOVB,#03HMULAB
ADDA,ROWMOVVAL,ACJNEA,#0AH,J1MOVR1,KEY_CNTCJNER1,#00H,J2LCALLALARM_2LJMPSTARTJ2:
DECKEY_CNTLCALLSHIFTRW00:
LCALLDISP
MOVA,P3
CJNEA,#0FH,W01LJMPA0W01:
CJNEA,#0F0H,W02LJMPA0W02:
SJMPW00
J1:
MOVA,VALCJNEA,#0BH,J3MOVR1,KEY_CNTCJNER1,#06H,J4MOVA,WORD_1CJNEA,3EH,J5MOVA,WORD_2CJNEA,3FH,J5
MOVA,WORD_3CJNEA,40H,J5MOVA,WORD_4CJNEA,41H,J5MOVA,WORD_5CJNEA,42H,J5MOVA,WORD_6CJNEA,43H,J5SETBP1.0LCALLDLY_LLJMPFINIJ5:
LCALLALARM_2LJMPSTARTJ4:
LCALLALARM_2LJMPSTARTJ3:
INCKEY_CNTMOVA,KEY_CNTCJNEA,#07H,K1LCALLALARM_2W10:
LCALLDISPMOVA,P3CJNEA,#0FH,W11LJMPSTARTW11:
MOVA,P3CJNEA,#0FH,W12LJMPSTARTW12:
SJMPW10
LJMPSTARTK1:
LCALLSHIFTL
W20:
CJNEA,#0FH,W21
LJMPA0
W21:
CJNEA,#0F0H,W22LJMPA0
W22:
SJMPW20
ALARM_2:
SETBP1.7
LCALLDLY_L
SHIFTL:
MOVLED_BIT6,LED_BIT5MOVLED_BIT5,LED_BIT4MOVLED_BIT4,LED_BIT3MOVLED_BIT3,LED_BIT2MOVLED_BIT2,LED_BIT1MOVLED_BIT1,#40H
MOVKEY_6,KEY_5MOVKEY_5,KEY_4MOVKEY_4,KEY_3MOVKEY_3,KEY_2MOVKEY_2,KEY_1MOVKEY_1,VAL
RET
SHIFTR:
MOVLED_BIT1,LED_BIT2MOVLED_BIT2,LED_BIT3
MOVLED_BIT3,LED_BIT4MOVLED_BIT4,LED_BIT5MOVLED_BIT5,LED_BIT6MOVLED_BIT6,#00HMOVKEY_1,KEY_2MOVKEY_2,KEY_3MOVKEY_3,KEY_4MOVKEY_4,KEY_5MOVKEY_5,KEY_6MOVKEY_6,#00H
DISP:
CLRP2.7
MOVP0,LED_BIT8LCALLDLY_S
SETBP2.7
CLRP2.6
MOVP0,LED_BIT7LCALLDLY_S
SETBP2.6
CLRP2.5
MOVP0,LED_BIT6LCALLDLY_S
SETBP2.5
CLRP2.4
MOVP0,LED_BIT5LCALLDLY_S
SETBP2.4
CLRP2.3
MOVP0,LED_BIT4LCALLDLY_SSETBP2.3
CLRP2.2
MOVP0,LED_BIT3LCALLDLY_SSETBP2.2
CLRP2.1
MOVP0,LED_BIT2LCALLDLY_SSETBP2.1
CLRP2.0
MOVP0,LED_BIT1LCALLDLY_SSETBP2.0
DLY_S:
MOVR6,#10D1:
MOVR7,#250DJNZR7,$
DJNZR6,D1RET
DLY_L:
MOVR5,#100D2:
MOVR6,#100D3:
MOVR7,#248DJNZR7,$
DJNZR6,D3DJNZR5,D2RET
中北大学信息商务学院单片机课程设计说明书FINI:
NOP6运行结果按下Play键,显示器显示字母“EF”,输入密码后,按“ENTER”键,密码正确,二极管发光,密码不正确,发出警报声。
若操作错误也会发出警报声。
7总结及体会在这次课程设计中,我们运用到了以前所学的专业课知识,如:
protel99制图、汇编语言等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最后,要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;
要有一个清晰的思路和一个完整的的软件流程图;
在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料第16页共17页
中北大学信息商务学院单片机课程设计说明书的保存和交流提供了方便;
在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
另外,这次课程设计让我感到了团队合作的重要性。
在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。
还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。
参考文献[1]周润景张丽娜丁莉.基于PROTEUS的电路及单片机设计与仿真(第二版).北京航天航空大学出版社2009.12[2]李朝清.单片机原理及接口技术(第三版).北京航天航空大学出版社.2006.12[3]周兴华.手把手教你学单片机.北京航天航空大学出版社.2006.12[4]张文利.微机原理及单片机接口技术.中国科学技术大学出版社2007.7第17页共17页
中北大学信息商务学院单片机课程设计说明书第18页共17页
中北大学信息商务学院单片机课程设计说明书第19页共17页