单片机程序设计与综合实验报告.docx
单片机程序设计与综合实验报告单片机程序设计与综合实验目录一、设计目的(2)二、硬件电路设计(3)1、主原理图(3)2、AT89C52引脚级共能讲明(3)3、74LS138引脚图级功能讲明(4)4、74HC573引脚图级功能讲明(4)5、矩阵是键盘电路及功能讲明(5)6、数码管功能讲明(5)三、流程图(7)1、主流程图(7)2、判定所按键值流程图(7)3、动态显示子程序(8)4、判定有无键按下(8)四、程序设计(8)五、心得体会(13)单片机课程设计报告一、设计题目:简易计算器的设计设计要求:1设计实现两位小于100的整数加、减运算;2键盘采用4*4的矩阵键盘,键盘安排如下;1234567890+-=3输入数据及运算结果采用三位数码管进行显示;设计目的:1把握数码管一位动态扫描的编程方法;2把握矩阵扫描的编程方法;3把握简单数据运算的编程方法二、硬件电路的设计1、原理电路图:图1功能讲明:1如图1,AT89C52单片机的P0.0P0.7接74HC573的输入端,数码管的一样字段接在一起,并分别接在74HC573的输出端PA0-PA7。跳线CON3接Vcc,使74HC573处于透明状态即不锁存,这样由单片机传送的数据即可通过573送到数码管,并显示。另外,573可以提高驱动能力。274HC138的输入端A、B、C分别接单片机的P2.0-P2.2,其输出Y0-Y7接入数码管的选通信号,这样,通过对P2口不同的赋值,即可选择不同的数码管进行显示。3键盘处的跳线CON3选通J1和J3,使用4*4的矩阵键盘。其中P3.0P3.3为行线,P3.4P3.7为列线。2、各芯片引脚及功能:I、AT89C52图2AT89C52引脚各引脚功能:1Vcc:电源线,接+5v电源GND:接地线2时钟引脚XTAL1:内部振荡电路的反相放大电路的输入端。XTAL2:内部振荡电路的反相放大电路的输出端。3RET:复位电路4ALE/PROG:地址锁存允许信号/编程脉冲输入端5PSEN:外部程序存储器读选通输入端,低电平有效。6EA/VPP:内部ROM和外部ROM选择端/编程电压输入端。7三十二位的I/O口,p0p4II、74HC138图374HC138引脚图1、各管脚功能讲明1A,B,C为信号的输入端,分别由P2.0,P2.1,P2.2控制,其输出端Y0,Y1,Y2分别接数码管的选通端,输入信号与选通数码管有如下关系:输入输出数码管选通情况ABCY5Y6Y7111110第一个110101第二个101011第三个2EN1使能端高电平有效;EN2A和EN2B使能端均为低电平有效74HC5731、引脚图2、3、在本次设计中,要使573的使能端为低电平,这样所要显示的数据即可通过74HC573传送到数码管显示。四、矩阵式键盘1、电路图2、功能讲明如图,将开发板上的矩阵出的跳线接J11即可构成4*4矩阵式键盘,其行线分别接到P3.0P3.3,列分别接P3.4P3.7。单片机执行程序时,对键盘进行逐行逐列逐列逐行进行查询能否有键按下,并判定所按下的是那个键3、此次设计中键盘的键值如下:1234567890+-清零=数码管实验中所用数码管为共阴极数码管。其输入端a,b,c,d,e,f,g,dp分别接573的输出端PA0到PA7。当单片机通过P0口将数据传送到74HC573时,选通相应的数码管即可在数码管上显示相应数据。七段数码显示内部段的排列三、软件程序设计I、设计需求:Keil软件、ISP编程器II、设计效果:1单片机上电,打开开关,数码管最低位显示0,高两位处于灭的状态。2按下数字键不多于3位,原理图最左端三位数码管显示键值。例如依次按下123,则数码管显示123,按下12,则数码管最低两位显示12,高一位处于灭的状态。3每次按键数码管显示为灭,待键释放,显示预期结果,用以提示功能键没有虚按。 (4)实现低于两位数相加、相减并显示运算结果。例如1+2=3。5实现连加、连减功能。例如按键12+12+12+,则数码管显示36。6清零功能,按下此键,键盘回到初始状态。III、设计思路:1将要显示的数值存放在78H、79H、7AH三个单元中,用DIR作为显示子程序,显示这三个单元的内容。则每按一次数据键,就将这三个单元中的数据更新。为显示两位数或三位数,这里纪录键盘连续按数字键的次数,根据次数将78H、79H、7AH单元内容改为对应值,调用动态显示程序,并将本次连续的数字转换为整数保存用以后来的计算。初始给78H、79H、7AH赋零、灭、灭所对应的TAB表偏移量。