微机综合实践课程设计说明书0060秒表设计说明书.doc

上传人:仙人指路1688 文档编号:2882012 上传时间:2023-03-01 格式:DOC 页数:19 大小:1,001KB
返回 下载 相关 举报
微机综合实践课程设计说明书0060秒表设计说明书.doc_第1页
第1页 / 共19页
微机综合实践课程设计说明书0060秒表设计说明书.doc_第2页
第2页 / 共19页
微机综合实践课程设计说明书0060秒表设计说明书.doc_第3页
第3页 / 共19页
微机综合实践课程设计说明书0060秒表设计说明书.doc_第4页
第4页 / 共19页
微机综合实践课程设计说明书0060秒表设计说明书.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《微机综合实践课程设计说明书0060秒表设计说明书.doc》由会员分享,可在线阅读,更多相关《微机综合实践课程设计说明书0060秒表设计说明书.doc(19页珍藏版)》请在三一办公上搜索。

1、微机综合实践课程设计说明书题 目: 00-60秒表设计 院 (系): 建筑与交通工程学院 姓 名: 一头大象 学 号: 0800140208 专 业: 建筑环境与设备工程 指导老师: XXX 2011年12月16日目录一、设计任务1二、总体方案设计12.1、硬件方案12.2、软件方案1三、系统硬件设计13.1、硬件总体设计方案13.2、并行I/O口P0P3结构与设计13.3、复位电路设计33.4、电源开关设计33.5、晶振输入电路设计4四、相关硬件说明44.1、LED8段数码显示管结构与原理44.2、AT89S52部分系统功能与引脚说明5五、系统软件设计105.1、软件总体设计方案105.2、

2、程序流程图115.3、程序清单135.4、程序运行分析14六、元件清单14七、硬件制作步骤15八、总结15参考文献17一、设计任务00-60秒表设计。用AT89S52单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1,秒计数到60时,自动从0开始。二、总体方案设计2.1、硬件方案2.1.1、 制作一个AT89S52最小系统;2.1.2、 采用两个LED七段数码显示管分别显示秒表的个位和十位;2.1.3、 P1口输出十位段码,P2口输出个位段码。2.2、软件方案2.2.1、 因为当晶振频率为12MHz时,定时/计数器最大计时时间为65536ms,所以应根据计时2

3、.2.2、 时间设定定时/计数器定时时间,累计合适中断次数后执行刷新显示子程序;2.2.3、 每隔1s秒计数加1,秒计数到60自动从0开始,循环不止。三、系统硬件设计3.1、硬件总体设计方案最小系统应符合以下要求:l 引出4个I/O端口,便于硬件拓展,同时接入排阻以满足更多的使用要求;l 在上电自动复位的基础上添加按键复位功能,以提高系统的可控性;l 采用按钮开关、继电器与稳压二极管构成电源电路,以提高系统的稳定性;l 具有专门的编程端口;l 采用内部时钟电路。3.2、并行I/O口P0P3结构与设计3.2.1、 P0口(P0.0-P0.7)P0口是一个8位漏极开路型双向I/O端口。P0口可做通

4、用I/O口使用,但在端口进行输入操作前,应先向端口的输出锁存器写“1”。在CPU访问片外存储器时,P0口自动作为地址/数据复用总线。在编程时,由P0口输入指令字节,而在验证程序时,P0口输出指令字节(验证时应外接上拉电阻)。P0口能以吸收电流的方式驱动8个LS型TTL负载。 图1 P0口结构图3.2.2、 P1口(P1.0-P1.7)P1口是一个内部带上拉电阻的8为准双向I/O端口。当P1输出高电平是,能向外部提供拉电流负载,因此,不需再外接上拉电阻。当端口用作输入时,也应先向端口的输出锁存器写入“1”。在编程和验证程序时,P1口用来输入低8位地址。P1口能驱动4个LS型TTL负载。 图2 P

5、1口结构图3.2.3、 P2口(P2.0-P2.7)P2口也是一个内部带上拉电阻的8位准双向I/O端口。当CPU访问外部存储器时,P2口自动用作输出高8位地址,与P0低8位地址一起形成外部存储器的16位地址总线。此时,P2口不再作为通用I/O口使用。P2口可驱动4个LS型TTL负载。在编程和验证程序时,P2口用作接收高8为地址。 图3 P2口结构图3.2.4、 P3口(P3.0-P3.7)P3口是一个内部带上拉电阻的8位多功能双向I/O端口。P3口除了作通用I/O端口外,其主要功能是它的各位还具有第二功能。无论P3口作通用输入框还是作第二输入功能口使用,相应位的输出锁存器和第二输出功能段都应置

6、“1”。P3口能驱动4个LS型TTL负载。P3口作为第二功能使用时各引脚定义如下:P3.0 RXD:串行口输入端; P3.1 TXD:串行口输出端; 图4 P3口结构图P3.2 INT0:外部中断0请求输入端; P3.3 INT1:外部中断1请求输入端; P3.4 T0:定时/计数器0外部信号输入端; P3.5 T1:定时/计数器1外部信号输入端; P3.6 WR:外RAM写选通信号输出端; P3.7 RD:外RAM读选通信号输出端。为便于硬件拓展以及满足更多的使用有求,在P0、P2口处分别接1K和2.2K的上拉电阻,并在每个端口出添加VCC和GND引脚。各端口原理图如下:图5 P0口外围电路

7、原理图 图6 P1口外围电路原理图图7 P2口外围电路原理图 图8P2口上拉电阻原理图 图9 P3口外围电路原理图3.3、复位电路设计本设计中AT89S52是采用上电自动复位和按键复位两种方式。复位电路如图所示。上电瞬间,电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。其中R4和R5分别选择100和4.7K的电阻,电容器一般选择10F。3.4、电源开关设计本设计采用按钮开关、继电器以及稳压二极管构成的电路,以提高系统稳定性。各元件规格如图: 图10 复位电路原理图 图11电源开关电路原理图3.5、晶振输入电路设计AT89S52单片机内部的振荡电路

8、是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89S52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。即利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为12MHz的石英晶体,电容器一般选择20PF左右。 图12 晶振输入电路原理图四、

9、相关硬件说明4.1、LED8段数码显示管结构与原理按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管 的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时。 图13 LED8段数码显示管原理图、引脚图相应字段就不亮。L

10、ED数码管段码如下表:表1八段LED数码管段码表显示数码共阴型段码共阳型段码显示数码共阴型段码共阳型段码03FHC0HA77H88H106HF9Hb7CH83H25BHA4HC39HC6H34FHB0HD5EHA1H466H99HE79H86H560H92HF71H8EH670H82H707HF8H87FH80H96FH90H本设计采用共阳静态显示,其中P2口输出个位段码,P1口输出十位段码。仿真图如图12所示。4.2、AT89S52部分系统功能与引脚说明AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造

11、,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 23 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保

12、护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作

13、。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存

14、储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。4.2.1、 AT89S52定时/计数器详细介绍l 定时/计数器基本结构l 定时器/计数器的控制字:定时器/计数器有4种工作模式,由TMOD设置并由TCON控制。工作方式寄存器TMOD的地址为89H,它不能位寻址,在设置时一次写入。其功能为确定定时器的工作方式及功能选择。格式如下:图17TMOD的各位定义(1)、 GATE:门控位 0:定时器/计数器仅受TR的控制; 1:只有I

15、NT为高电平,且TR=1时,定时器/计数器才工作。 (2)、 C/T :功能选择位 0:定时功能;1:计数功能。 (3)、 M1M0:工作方式选择位 00 方式0;13位定时计数器,TH高8位和TL低5位; 01 方式1;16位定时/计数器; 10 方式2;自动重装入初值的8位定时/计数器; 11 方式3;T0分成两个独立的8位计数器,T1无方式3。l 定时器控制寄存器:TCON除可字节寻址外,各位还可以位寻址。 格式为:图18TCON的各位定义功能为:TR1、TR2控制定时/计数器的启动与停止,IT1、IT2控制溢出中断的允许与屏蔽。当标志位TF0/TF1采用软件查询时应禁止中断,且需要以软

16、件的方式将标志位清“0”若采用中断方式查询标志位,返主后由硬件自动清“0”。 l 定时/计数器工作原理(1)、 模式0定时/计数器TH0(或TH1)的高8位和TL0(或TL1)的低5位组成的一个13位定时器/计数器。此种方式与MCS48系列兼容,如果不是为了兼容的目的,一般不用方式0。方式0的全部功能,方式1都可以代替。图19T0工作模式0逻辑结构框图(2)、 模式1该模式对应的是一个16位的定时器/计数器。THx8位和TLx8位组成16位加1计数器,最大计数脉冲个数:165536(216),最长定时时间(晶振12MHz T=1ms)为65536s。图20T0工作模式1逻辑结构框图(3)、 模

17、式2模式2把TL0(或TL1)设置成一个可以自动重装载的8位定时器/计数器。用于需要重复定时和计数的场合。最大计数值:256 (28),最大定时时间(晶振12MHz时 T=1ms): 256ms。自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。 图21T0工作模式2逻辑结构框图(4)、模式3TL0和TH0被分成为两个相互独立的8位计数器 。TL0占用T0控制位:C/T,TR0,TF0,GATE;TH0占用T1控制位:TR1和中断标志位TF1。T1不能使用方式3工作。 图22T0工作模式3逻辑结构框图T0工作于模式3时,T1仍可设置为模式02。此时,仅使用T1控制位

18、C/T切换其定时或计数器工作方式。寄存器(8位、13位、16位)溢出时,只能将输出送入串行口或用于不需要中断的场合。图23T0模式3下的T1逻辑结构框图l 定时器/计数器初始化步骤(1)、 确定工作模式(是计数还是定时)、工作方式和启动控制方式,并将其写入TMOD寄存器。(2)、 设置定时或计数器的初值,可直接将初值写入TH0、TL0或TH1、TL1中,16位计数初值必须分两次写入对应的计数器。(3)、 根据要求决定是否采用中断方式:直接对IE位赋值。开放中断时,对应位置1;采用程序查询方式时,IE位应清0以进行中断屏蔽。(4)、 启动定时器工作。可使用SETB TRi启动。五、系统软件设计5

19、.1、软件总体设计方案5.1、 采用查表方式输出段码,使程序更为简练,节约存储空间;5.2、 AT89S52单片机的定时/计数器在四种工作模式中,其最大定时时间(TF溢出周期)为:表2AT89S52定时/计数器最大定时时间表工作模式0123最大定时时间8192s65536s256s256s因定时时间为1s,可选用模式1,每隔50ms中断一次,中断20次为1s。5.3、 每隔20个中断执行一次刷新显示子程序;5.4、 六十进制。个位刷新显示子程序每执行十次,执行一次十位刷新显示子程序,同时个位显示“0”,达到个位逢十进一的目的;5.5、 十位刷新显示子程序执行六次后,重新初始化,数码管显示“00

20、”。5.2、程序流程图5.2.1、主程序流程图: 图245.2.2、中断服务子程序流程图: 图255.3、程序清单ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 0100HMAIN:MOVTMOD,#01HSETBET0SETBEASETBTR0MOV R5,#14H;循环计时计数器,循环20次MOV R6,#0AH;个位显示计数器,逢10进1MOV R3,#00H;十位数段码指针MOVR4,#06H;十位显示计数器,满6清零MOVDPTR,#BIAOMOVA,#0C0H;将“0”段码输出显示MOVP2, AMOVP1, AMOVTH0,#3CHMOVTL0

21、,#0B0H;定时50MSSJMP $;等待中断INT_T0:MOVTH0,#3CHMOVTL0,#0B0H;重新赋值DJNZ R5,GO;循环不足20次(不够1S)返回等待MOV R5,#14H;循环计时计数器重新赋值CLR AMOVC A,A+DPTRMOV P2,A;显示个位INC DPTR;指向下一段码DJNZ R6,GO;个位不满10,跳过十位显示MOV R6,#0AH;个位显示计数器重新赋值MOV A,R3MOV DPTR,#BIAOMOVC A,A+DPTRMOVP1,A;显示十位MOV A,#0C0HMOV P2,AINC R3DJNZ R4,GO;十位不满6,跳过初始化 MO

22、V A,#0C0H;初始化MOVP1,AMOVP2,AMOV R5,#14HMOVR6,#0AHMOVR3,#00HMOV R4,#06HMOVTH0,#3CHMOVTL0,#0B0HMOVDPTR,#BIAOGO:RETIBIAO: DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;“0”“9”段码(共阳)END5.4、程序运行分析因定时/计数器的定时时间为50ms,中断20,即1s后执行一次刷新显示子程序。程序只考虑硬件延时,并没有将中断服务子程序的运行时间计算在内,所以在秒表运行时,会出现计时显示时间滞后于标准时间的现象。据中断服务子程序以及指令周期表

23、可知,刷新显示子程序运行时间最小的情况为:不带进位的秒计数加1,运行时间最大的情况为:满60自动从0开始。据此可推算其最大最小运行时间分别为196s和169s。经proteus仿真测试,运行一小时将会出现大约1s的误差,且随着时间推移,误差将会累积增大。在实际的计时中,也会因环境以及设备的不完善,影响计时的精确性。在对秒计时影响不大的情况下,适当增大定时/计数器初值,以及提高制板工艺的方法尽可能的减小误差。六、元件清单表3元件清单表序号元件名称规格备注1电阻1K1个2电阻101个3电阻1001个4电阻4.7K1个5CPU插座CON401个6单片机AT89S521个7继电器HK4100F-DC5

24、V-SHG1个8牛角座CON101个9按钮4脚2个10发光二级管1个11电容10uF1个12电容470uF1个13电容20pF2个14排阻1K1排15排阻2.2K1排16晶振12MHz1个17稳压管58191个18LED七段数码显示管红色,共阳2个19排针若干20导线若干21最小系统电路板1块七、硬件制作步骤1、 在protel 99 SE中编辑原理图,生成PCB文件,打印;2、 将用于腐蚀的电路板抛光,以便保证印刷电路板的熨烫效果;3、 将印刷电路熨烫在电路板上,待油墨充分粘附于板上后,撕下喷墨菲林片;4、 腐蚀掉电路板多余的铜,进行第二次抛光,将多余的油墨清洗掉,按照电路图在电路板上钻孔;

25、5、 将元器件焊接在板上并检测各焊点是否接触可靠;6、 烧录程序,调试,直至成功运行。八、总结出于对单片机和电路板制作的浓厚兴趣以及自身知识的匮乏,我在做这课设的时候感觉既困扰又欣慰。通过这次课程设计,我拓宽了知识面,锻炼了动手能力。特别是proteus软件的使用。通过整个电路设计与制作的过程,我掌握了实物硬件的连接和组装与调试的方法,熟悉了小规模集成电路的使用。通过理论与实践的结合,进一步深入体会到一种新的学习方法,特别是对于电子设计方面,首先要明确总体的设计方案与方法;其次是对各个部分进行设计与改进;最后将各个部分整合在一起进行比较观察。 通过亲手制作,收获蛮多。此次制作主要遇到的问题有以

26、下几个:一是电路的总体设计问题,当初设计画图的时候用线过细,以致后面焊接困难;二是电路的焊接问题,某些元器件由于不够仔细,焊接不紧,或器件正负反向等;三是电路的调试问题,有了前面的问题,这一块也真不好搞,需要一一检查;四是由于不缺少电路板制作的理论知识,造成了一定的浪费。 通过这次设计,增强了我们对单片机理论知识的理解;学会了单片机的设计、计算,进一步提高了分析解决实际问题的能力;这次课程设计给我们创造了一个动脑动手、独立开展电路实验的机会,锻炼了分析、解决程序编写问题的时机本领,真正实现了由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。 这次的课程

27、设计中另一件让我感触颇深的事情是,由于我们所在的校区远离市区,导致在很多时候遇到问题,无法与老师进行面对面沟通,问题得不到解决,只能依靠自己有限的自学能力和求助其他专业的同学。虽然一个最小系统结构原理都很简单,但是对于一个非电学专业的学生来说,难度还是比较大的。希望以后的学习中能够得到更多的指导。参考文献1 赵全利,肖兴达.单片机原理及应用教程M.北京: 第2版.机械工业出版社,2007.2 张文祥,李志军,张子红,张小清.单片机系统M.北京:电子工业出版社,2011.3 吉红,闫昆.单片机系统设计与调试M.北京:化学工业出版社,2010.4 刘明,刘蓉,姚华雄.嵌入式单片机技术与实践M北京:清华大学出版社,2010.5 王嘉陵.毕业论文写作与答辩M.成都:四川大学出版社,2003.6 赵润林 张迎辉.单片机原理与应用教程M.北京:北京大学出版社,2005.7 李广第.单片机基础M.北京:北京航空航天大学出版社,1999.8 徐惠民,安德宁.单片机微型计算机原理与应用M.北京:北京邮电大学出版社,1996.9 赵晓安.MCS-51单片机原理及应用M.天津:天津大学出版社,2001.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号