资源描述
单片微机课程设计报告 题 目: 单片机制作实训 学生姓名: 陈 娥 学号:0710401030 系别:物理与信息工程系 专业:电子信息科学与技术 指导教师:段 正 华 2010-5-7-2010-6-26目 录摘要2关键词2前言31 设计任务和要求 5 1.1 设计目的5 1.2 设计要求52单片机简介 53单片机最小系统及外围电路 64外围电路原理 11 4.1 矩阵键盘 11 4.2 数码管显示 12 4.3 H桥电路电机控制 125 实例设计 12参考文献 15致谢 15附录 16摘 要本次课程设计通过单片机最小系统和外围电路的制作实训,加深对单片机基本的了解,以及掌握单片机的一些最基本的应用和汇编语言开发平台。此次单片机最小系统包括的内容:ISP下载线,电源电路,复位电路,晶振,外围电路,全加器,四位数码管显示,H桥电机驱动,扬声器驱动,矩阵键盘。在单片机开发板上对以上的电路进行硬件安装,以此来培养学生在单片机制作的上的合理布局和焊接技巧的能力;另一方面增强学生独立思考和排除为题的能力。在软件编程方面让学生接触一些基本的汇编语言。最终达到硬软结合的最佳效果,更深层次的了解单片机的开发过程与基本步骤。关键字电源电路;复位电路;外围电路;四位数码管显示;矩阵键盘前 言单片机技术课程的性质目的单片机是微型计算机应用技术的一个重要分支,在工业智能仪器仪表,光机电设备,自动检测,工业智能仪器仪表,光机电设备,自动检测,信息处理,家电等方面有广泛应用。单片机技术这门课是为电子信息工程,测控技术,生物医学工程类专业及计算机应用专业学生开设的专业基础必修课或专业基础选修课,设的专业基础必修课或专业基础选修课。本课程的教学目的是通过理论教学与实验环节,使学生正确理解单片机的基本概念,基本原理,掌握单片机程序设计和微机接口应用的基本方法,并能综合运用单片机的软,硬件技术分析实际问题。为工业生产,单片机的软,硬件技术分析实际问题,为科学研究和实验设备等领域的单片机应用和开发打下良好的基础,也是进一步学习计算机原理和有关接口知识重要环节。课程教学内容本课程以理论教学为主要环节,以学生课堂本课程以理论教学为主要环节,实验为辅。具体安排如下 一,计算机基础 1)单片机的基本概念:主要介绍单片机的发展概况(现状,未来的发展),特点,应用和当前单片机的系列产品。2)单片机的数制表示法:主要介绍数制的转换,原码,反码,补码 及计算机中常用的编码。二,单片机的内部结构及工作原理。单片机的内部结构及工作原理主要内容:掌握MCS-51单片机的内部结构及基本工作原理;单片机并行I/O口的结构特点;单片机最小系统的设计方法;单片机存储器的扩展方法。三,单片机的指令系统。单片机的指令系统主要内容:MCS-51单片机指令的格式,分类和寻址方式;汇编语言的各种指令类型;伪指令的使用及汇编语言程序的完整格式.四,程序设计。程序设计主要内容:MCS-51单片机汇编语言程序设计的步骤;循环程序,分支程序,延时程序,查表程序的结构及使用方法。五,单片机的中断系统。单片机的中断系统主要内容:MCS-51单片机中断源的种类及工作方式;外部中断的结构及原理;中断控 制寄存器IE,中断优先级寄存器IP及定时器/计数器及外部中断控制寄存器TCON的使用方法;六,单片机的定时器,计数器单片机的定时器/计数器。单片机的定时器主要内容:单片机定时器/计数器的结构,原理,工作方式及使用方法。七,单片机的串行通信。单片机的串行通信主要内容:单片机串行通信I/O接口的结构及工作方式;串行通信控制寄存器的使用方法; MCS-51单片机串行通信波特率的设置方法;MCS-51单片机的双机通信和多机通信的基本原理。八,并行口的应用与扩展。并行 MCS-51单片机基本I/O口的应用与扩展;键盘与显示器的扩展原理及方法;常用外围电路接口芯片8255,8155的性能特点及使用方法;存储器的扩展原理与方法。九,A/D,D/A转换器的应用。转换器的应用主要内容: MCS-51单片机与8位A/D和D/A 转换的原理。十,单片机实验。实验主要内容: 纯软件实验:无符号加法实验 验证性实验:P1口实验 电子时钟 A/D转换实验 综合性实验:电子温度计。一 设计任务与要求1.1 设计目的1. 解并熟悉对直流电源的设计。2. 构成单片机最小系统的设计与控制方法。3. 熟悉单片机应用系统的开发过程和方法。4. 熟悉Keil软件的使用。 1.2 设计要求1、 设计一个5V直流稳压电源,为实验板上各个模块供电。2、 设计一个单片机小系统,通过软件编程,能够实现数码管动态显示,点亮流水灯,键盘控制,扬声器播放歌曲等功能。 3、 设计一个一位全加器。 4、 设计一位六管静态存单元。 5、 设计一个矩阵键盘。二 单片机简介单片机是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本。广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。AT89s51单片机外部引脚如图1所示:P0-P3口用于与外部交换数据与通信,并进行对外部电路的控制,完成设计要求。40脚和31脚接电源,20脚接地。图1三单片机最小系统及外围电路3.1 图2 为单片机的晶振部分晶振为11.0592,经过单片机内部10分频,机器周期为1us。焊接过程中晶振应该尽量靠近18,19脚。 图23.2 图3为矩阵键盘扫描图3 矩阵键盘,采用反转法进行键盘扫描,可以用较少的端口实现多个键盘扫描。3.3 图4为上电复位电路 次电路进行电源上电复位,使单片机上电让PC指针复位,程序从开始地址进行运行,避免程序执行错误。图43.4 图5为数码管显示电路 电路为共阳数码管驱动电路,12、9、8、6为数码管为选脚,其余为数码管数字显示控制脚。图5.1图5.23.5 图6为+5V稳压电路稳压电路保证为单片机提供稳定的工作电源,使单片机正常运行。图6.1图6.23.6 图7为扬声器驱动电路用9013三极管进行扬声器驱动图73.7 图8为H桥电机双向驱动电路通过P3.5和P3.6进行电机的正、反转。图83.8 图9为与非门组成的一位全加器电路X、Y为输入,Ci为输入进位,Z为输出,CO为输出进位。图93.9 图10为电机驱动电路图通过对其一给高电平,另一控制引脚给低电平,是相应的三极管导通,而使直流电机转动。同时通过改变高电平的占空比实现直流电机的不同速度转动。也可以改变电机控制引脚的电平极性实现电机的反转和正转。图103.10 图11为一位全加器电路图在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将俩个对应位的加数和来自低位的进位3个数相加。这种运算称为全加,所用的电路称为全加器。本次设计为利用74LS00设计最简单的一位全加器。以高电平(5V)代表二进制数1,以低电平(0V)代表二进制数0。其原理框图如下所示:图11.1图11.2四外围电路原理4.1 矩阵键盘原理: 利用反转法进行键盘扫描,P1.0,P1.1,P1.2为高电平,P1.3,P1.4,P1.5为低电平,当有键按下时,P1.0,P1.1,P1.2其一将被拉为低电平(如P1.0为0),根据检测哪位被拉低,可以判断是哪一列的键盘按下;然后P1.0,P1.1,P1.2为低电平,P1.3,P1.4,P1.5为高电平,此时P1.3,P1.4,P1.5中有一被拉低(如P15.为0),可以判断是哪一行有键盘按下,这样根据行列的判断,就可以扫描出是哪个键盘按下(K1键盘按下)。4.2 数码管显示原理: 此实验为共阳数码管,用四个9013三极管进行驱动,分别接到数码管的位选端,单片机P2.0,P2.1,P2.2,P2.3控制三极管导通进行位选(高电平有效),P0.0-P0.7接到数码管的段选端,进行数据显示(低电平有效)。数码管段选控制如附录所示。4.3 H桥电路电机控制:P3.5为高电平,P3.6为低电平时,Q2,Q3导通,电机反转;P3.5为低电平,P3.6为高电平时,Q1,Q4导通,电机正传;图8为H桥电路示意图,实际中,P3.5为高电平,P3.6为低电平时,Q2,Q3基极电位相同,三极管不导通;P3.5为低电平,P3.6为高电平时,Q1,Q4基极电位相同,三极管不导通;因为还需要进行调试。五实例设计 矩阵键盘扫描,数码管静态按键显示5.1主程序的流程图开始初始化调用显示程序有键按下键1键2键n键n子程序键2子程序键1子程序5.2子程序的流程图开始向I/O送字形向位选送数调用延时子程序返回5.3延时子程序的流程图向Rn送数开始Rn=0返回参考文献主要参考资料:1余修武 单片机原理及应用 电子科技大学出版社 2008年1月出版2吴金戌 8051单片机实践与应用 清华大学出版社 2004年11月出版3,余锡存 单片机原理及接口技术 西安电子科技大学2004年1月出版4,余成波 传感器与自动检测技术 高等教育出版社 2004年2月出版5,张立科 单片机典型模块设计实例导航人民邮电出版社 2004年5月出版6,陈忠平单片机原理及接口清华大学出版社 2007年3月出版致 谢经过一个多月的设计过程,单片机微型板终于完成了。这个过程中感谢段老师和王老师的随身指导,在你们的指导下我们才能顺利按时完成这次的单片机制作。与此同时,一些相对专业好一点的同学的帮助是我制作过程中的不可或缺的一部分。是你们共同的帮助才有我的单片微机系统的完好呈现。附 录附录A 一位全加器真值表次数123456Xi010111Yi001110Ci-1000011Ci000111Zi011010附录B 调试过程与仿真的截图附录C 1 汇编程序ORG 0000 MAIN:MOV P1,#00111000B AA:MOV A,P1 CJNE A,#00111000B,BB JMP AA BB:MOV P1,#00000111B MOV R0,A MOV A,P1 ADD A,R0 CJNE A,#00110110B,K2 CALL KEY1 K2:CJNE A,#00101110B,K3 CALL KEY2 K3:CJNE A,#00011110B,K4 CALL KEY3 K4:CJNE A,#00110101B,K5 CALL KEY4 K5:CJNE A,#00101101B,K6 CALL KEY5 K6:CJNE A,#00011101B,K7 CALL KEY6 K7:CJNE A,#00110011B,K8 CALL KEY7 K8:CJNE A,#00101011B,K9 CALL KEY8 K9:CJNE A,#00011011B,MAIN CALL KEY9 JMP MAINKEY1:MOV P2,#00001111B MOV P0,#11111001B RETKEY2:MOV P2,#00001111B MOV P0,#10100100B RETKEY3:MOV P2,#00001111B MOV P0,#10110000B RETKEY4:MOV P2,#00001111B MOV P0,#10011001B RETKEY5:MOV P2,#00001111B MOV P0,#10010010B RETKEY6:MOV P2,#00001111B MOV P0,#10000010B RETKEY7:MOV P2,#00001111B MOV P0,#11111000B RETKEY8:MOV P2,#00001111B MOV P0,#10000000B RETKEY9:MOV P2,#00001111B MOV P0,#10010000B RETEND2 利用动态扫描方法在六位数码管上显示出稳定的654321.时钟频率为11.0592M*/*/#include /52单片机头文件#include /包含有左右循环移位子函数的库#define uint unsigned int /宏定义#define uchar unsigned char /宏定义sbit dula=P26; /数码管段选锁存端sbit wela=P27; /数码管位选锁存端uchar code table= /数码管显示编码0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;void display(uchar,uchar,uchar,uchar,uchar,uchar); /函数声明void delay(uint);void main()while(1)display(6,5,4,3,2,1); /始终显示void display(uchar one,uchar two,uchar three,uchar four,uchar five,uchar six) dula=1;P0=tableone; /送段数据dula=0;P0=0 xff;/送位数据前关闭所有显示,防止打开位选锁存后段选数据通过位选锁存器wela=1;P0=0 xfe;wela=0;delay(1);dula=1;P0=tabletwo;dula=0;P0=0 xff;wela=1;P0=0 xfd;wela=0;delay(1);dula=1;P0=tablethree;dula=0;P0=0 xff;wela=1;P0=0 xfb;wela=0;delay(1);dula=1;P0=tablefour;dula=0;P0=0 xff;wela=1;P0=0 xf7;wela=0;delay(1);dula=1;P0=tablefive;dula=0;P0=0 xff;wela=1;P0=0 xef;wela=0;delay(1);dula=1;P0=tablesix;dula=0;P0=0 xff;wela=1;P0=0 xdf;wela=0;delay(1);void delay(uint z) /延时子函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);附录D信系单片微机课程设计元件清单5 元件清单序号元件名称、规格数量备 注1单片微机芯片AT89S51 1片2石英晶体11.0592 Mhz1个3电容22-30pf 2个4电解电容10F/25V1个5电解电容10F/50V1个6电解电容1000F/25V1个7IC插座40针1个8稳压模块78051个9整流二极管1N40074个10二极管20个11碳膜电阻1K40个12万能板(13cmX25cm)1块13线(红、蓝、黑)各1截约30cm14红色发光二极管12个(3)15绿色发光二极管12个(3)16变压器 (220V变7.5V)输出电流500mA1个建议自购17电源线1根建议自购18电容104pf 6个19三芯线(或一般,红、蓝、黑代替) 1米串口通信20喇叭1个21微动开关10个22自锁开关5个23晶体三极管901315个24碳膜电阻10K5个25数码管(四位共阳)1个26下载线插座(6芯)1个27AT89S51下载线1根建议自购28四2与非门芯片和IC插座3个附录EMCS-51指令表指 令功 能 简 述字节数机器周期MOV C,bit直接寻址位送C21MOV bit,CC送直接寻址位21CLR CC清零11CLR bit直接寻址位清零21CPL CC取反11CPL bit直接寻址位取反21SETB CC置位12SETB bit直接寻址位置位22ANL C,bitC逻辑与直接寻址位22ORL C,bitC逻辑或直接寻址位22JC relC为1转移22JNC relC为0转移22JB bit,rel直接寻址位为1转移23JNB bit,rel直接寻址位为0转移32JBC bit,rel直接寻址位为1转移并清该位32表D1:位操作指令指 令功 能 简 述字节数机器周期ACALL addr112KB范围内绝对调用22AJMP addr112KB范围内绝对转移22LCALL addr1664KB范围内绝对调用32LJMP addr1664KB范围内绝对转移32SJMP rel相对短转移22JMP A+DPTR相对长转移12RET子程序返回12RETI中断返回12JZ rel累加器为零转移22JNZ rel累加器为非零转移22CJNZ A,#data,rel累加器与立即数不等转移32CJNZ A,data,rel累加器与直接寻址单元不等转移32CJNZ Rn,#data,rel寄存器与立即数不等转移32CJNZ Ri,#data,rel内部RAM单元与立即数不等转移32DJNZ Rn,rel寄存器减1,不为零转移22DJNZ data,rel直接寻址单元减1不为零转移32NOP空操作11表D2:控制转移指令指 令功 能 简 述字节数机器周期MOV A,Rn寄存器送累加器11MOV Rn,A累加器送寄存器11MOV A,Ri内部RAM单元送累加器11MOV Ri,A累加器送内部RAM11MOV A,#data立即数送累加器21MOV A,data直接寻址单元送累加器21MOV data,A类加器送直接寻址单元21MOV Rn,#data立即数送寄存器21MOV data,#data立即数送直接寻址单元32MOV Ri,#data立即数送内部RAM单元21MOV data,Rn寄存器送直接寻址单元22MOV Rn,data直接寻址单元送寄存器22MOV data,Ri内部RAM单元送直接寻址单元22MOV Ri,data直接寻址单元送内部RAM单元22MOV data2,data1直接寻址单元送直接寻址单元32MOV DPTR,#data1616位立即数送数据指针32MOVX A,Ri外部RAM单元送累加器(8位地址)12MOVX Ri,A累加器送外部RAM单元(8位地址)12MOVX A,DPTR外部RAM单元送累加器(16位地址)12MOVX DPTR,A累加器送外部RAM单元(16位地址)12MOVC A,A+DPTR查表数据送累加器(数据指针为基址)12MOVC A,A+PC查表数据送累加器(程序计数器为基址)12XCH A,Rn累加器与寄存器交换12XCH A,Ri累加器与内部RAM单元交换11XCH A,data累加器与直接寻址单元交换21XCHD A,Ri累加器与内部RAM单元低4位交换11SWAP A累加器高4位与低4位交换11POP data栈顶弹至直接寻址单元21PUSH data直接寻址单元压入栈顶22表D3: 数据传送指令指 令功 能 简 述字节数机器周期ADD A,Rn累加器加寄存器11ADD A,Ri累加器加内部RAM单元11ADD A, data累加器加直接寻址单元21ADD A,#data累加器加立即数21ADDC A,Rn累加器加寄存器和进位标志11ADDC A,Ri累加器加内部RAM单元和进位标志11ADDC A, data累加器加直接寻址单元和进位标志21ADDC A,#data累加器加立即数和进位标志21INC A累加器加111INC Rn寄存器加111INC data直接寻址单元加121INC Ri内部RAM单元加111INC DPTR数据指针加112DA A十进制调整11SUBB A,Rn累加器减寄存器和进位标志11SUBB A,Ri累加器减内部RAM单元和进位标志11SUBB A,#data累加器减立即数和进位标志21SUBB A, data累加器减直接寻址单元和进位标志21DEC A累加器减111DEC Rn寄存器减111DEC Ri内部RAM单元减111DEC data直接寻址单元减121MUL AB累加器乘寄存器B14DIV AB累加器除以寄存器B14附录F面向程序员的结构RAM中的位寻址区对照表SFR特殊功能寄存器地址表36
展开阅读全文