微机综合实践课程设计说明书-00-60秒表设计说明书.doc_第1页
微机综合实践课程设计说明书-00-60秒表设计说明书.doc_第2页
微机综合实践课程设计说明书-00-60秒表设计说明书.doc_第3页
微机综合实践课程设计说明书-00-60秒表设计说明书.doc_第4页
微机综合实践课程设计说明书-00-60秒表设计说明书.doc_第5页
免费预览已结束,剩余15页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机综合实践课程设计说明书 题题 目:目: 0 0 - 6 0 秒秒 表表 设设 计计 院院 (系):(系): 建建筑筑与与交交通通工工程程学学院院 姓姓 名:名: 一一头头大大象象 学学 号:号: 0 8 0 0 1 4 0 2 0 8 专专 业业: : 建建筑筑环环境境与与设设备备工工程程 指指导导老老师师: : xxx 2011 年年 12 月月 16 日日 目录目录 一、设计任务.1 二、总体方案设计.1 2.1、硬件方案1 2.2、软件方案1 三、系统硬件设计.1 3.1、硬件总体设计方案1 3.2、并行 i/o 口 p0p3 结构与设计1 3.3、复位电路设计.3 3.4、电源开关设计.3 3.5、晶振输入电路设计.4 四、相关硬件说明.4 4.1、led8 段数码显示管结构与原理4 4.2、at89s52 部分系统功能与引脚说明5 五、系统软件设计.10 5.1、软件总体设计方案.10 5.2、程序流程图.11 5.3、程序清单.13 5.4、程序运行分析.14 六、元件清单.14 七、硬件制作步骤.15 八、总结15 参考文献17 1 一、设计任务一、设计任务 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.2.2、 时间设定定时/计数器定时时间,累计合适中断次数后执行刷新显示子程序; 2.2.3、 每隔 1s 秒计数加 1,秒计数到 60 自动从 0 开始,循环不止。 三、系统硬件设计三、系统硬件设计 3.1、硬件总体设计方案 最小系统应符合以下要求: 引出 4 个 i/o 端口,便于硬件拓展,同时接入排阻以满足更多的使用要求; 在上电自动复位的基础上添加按键复位功能,以提高系统的可控性; 采用按钮开关、继电器与稳压二极管构成电源电路,以提高系统的稳定性; 具有专门的编程端口; 采用内部时钟电路。 3.2、并行 i/o 口 p0p3 结构与设计 3.2.1、 p0 口(p0.0- p0.7) p0 口是一个 8 位漏极开路型双向 i/o 端口。 p0 口可做通用 i/o 口使用,但在端 口进行输入操作前,应先向端口的输出锁 存器写“1” 。在 cpu 访问片外存储器时, p0 口自动作为地址/数据复用总线。 在编程时,由 p0 口输入指令字节, 而在验证程序时,p0 口输出指令字节(验证时应外接上拉电阻) 。p0 口能以吸收电流的方式驱 动 8 个 ls 型 ttl 负载。 图 1 p0 口结构图 2 3.2.2、 p1 口(p1.0- p1.7) p1 口是一个内部带上拉电阻的 8 为 准双向 i/o 端口。 当 p1 输出高电平是,能向外部提供 拉电流负载,因此,不需再外接上拉电阻。 当端口用作输入时,也应先向端口的输出 锁存器写入“1” 。 在编程和验证程序时,p1 口用来输入低 8 位地址。p1 口能驱动 4 个 ls 型 ttl 负载。 图 2 p1 口结构图 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 口作通用输入框还是作第二输入功能口使 用,相应位的输出锁存器和第二输出功能 段都应置“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 外部信号输入端; 3 p3.5 t1:定时/计数器 1 外部信号输入端; p3.6 wr:外 ram 写选通信号输出端; p3.7 rd:外 ram 读选通信号输出端。 为便于硬件拓展以及满足更多的使用有求,在 p0、p2 口处分别接 1k 和 2.2k 的上拉 电阻,并在每个端口出添加 vcc 和 gnd 引脚。各端口原理图如下: 图 5 p0 口外围电路原理图 图 6 p1 口外围电路原理图 4 图 7 p2 口外围电路原理图 图 8 p2 口上拉电阻原理图 图 9 p3 口外围电路原理 图 3.3、复位电路设计 本设计中 at89s52 是采 用上电自动复位和按键复位两 种方式。复位电路如图所示。 上电瞬间,电路充电,rst 引线端出现正脉冲,只要 rst 端保持 10ms 以上的高电 平,就能使单片机有效地复位。 其中 r4 和 r5 分别选择 100 和 4.7k 的电阻,电 容器一般选择 10f。 3.4、电源开关设计 本设计采用按钮开关、继电器以及稳压二极管构成的电路,以提高系统稳定性。各元件规格如 图: 图 10 复位电路原理图 5 图 11电源开关电路原理图 3.5、晶振输入电路设计 at89s52 单片机内部的振荡电路是一个高增益反向 放大器,引线 xtal1 和 xtal2 分别是放大器的输入 端和输出端。单片机内部虽然有振荡电路,但要形成时 钟,外部还需附加电路。at89s52 的时钟产生方式有两 种:内部时钟电方式和外部时钟方式。由于外部时钟方 式用于多片单片机组成的系统中,所以此处选用内部时 钟方式。即利用其内部的振荡电路在 xtal1 和 xtal2 引线上外接定时元件,内部振荡电路产生自激振荡。最 常用的是在 xtal1 和 xtal2 之间接晶体振荡器与电 路构成稳定的自激振荡器,如图电路所示为单片机最常 用的时钟振荡电路的接法,其中晶振可选用振荡频率为 12mhz 的石英晶体,电容器一般选择 20pf 左右。 图 12 晶振输入电 路原理图 四、相关硬件说明四、相关硬件说明 4.1、led8 段数码显示管结构与原理 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二 极管 的阳极接到一起形成公共阳极(com)的数码管,共阳数码管在应用时应将公共极 com 接到 +5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时, 相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管, 共阴数码管在应用时应将公共极 com 接到地线 gnd 上,当某一字段发光二极管的阳极为高电平 时,相应字段就点亮,当某一字段的阳极为低电平时。 6 图 13 led8 段数码显示管原理图、引脚图 相应字段就不亮。led 数码管段码如下表: 表 1八段 led 数码管段码表 显示数码共阴型段码共阳型段码显示数码共阴型段码共阳型段码 03fhc0ha77h88h 106hf9hb7ch83h 25bha4hc39hc6h 34fhb0hd5eha1h 466h99he79h86h 560h92hf71h8eh 670h82h 707hf8h 87fh80h 96fh90h 本设计采用共阳静态显示,其中 p2 口输出个位段码,p1 口输出十位段码。仿真图如图 12 所 示。 4.2、at89s52 部分系统功能 与引脚说明 at89s52 是一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编 程 flash 存储器。使用 atmel 公司高密度非 易失性存储器技术制造,与工业 80c51 产 品指令和引脚完全兼容。片上 flash 允许程 序存储器在系统可编程,亦适于常规编程器。 在单芯片上,拥有灵巧的 8 位 cpu 和在系 统可编程 flash,使得 at89s52 为众多嵌入 7 式控制应用系统提供高灵活、超有效的解决方案。at89s52 具有以下标准功能: 8k 字节 flash,256 字节 ram, 23 位 i/o 口线,看门狗定时器, 2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外, at89s52 可降至 0hz 静态逻辑操作,支持 2 种软件可选 择节电模式。空闲模式下,cpu 停止工作,允许 ram、 定时器/计数器、串口、中断继续工作。掉电保护方式下, ram 内容被保存,振荡器被冻结,单片机一切工作停止, 直到下一个中断或硬件复位为止。 rst:复位输入。当振荡器工作时,rst 引脚出现两 个机器周期以上高电平将是单片机复位。 ale/prog:当访问外部程序存储器或数据存储器时, ale(地址锁存允许)输出脉冲用于锁存地址的低 8 位字 节。一般情况下,ale 仍以时钟振荡频率的 1/6 输出固定 的脉冲信号,因此它可对外输出时钟或用于定时目的。要 注意的是:每当访问外部数据存储器时将跳过一个 ale 脉冲。对 flash 存储器编程期间,该引脚还用于输入编 程脉冲(prog) 。如有必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元的 d0 位置位,可 禁止 ale 操作。该位置位后,只有一条 movx 和 movc 指令才能将 ale 激活。此外,该引脚会 被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。 psen:程序储存允许(psen)输出是外部程序存储器的读选通信号,当 at89s52 由外部程 序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两个脉冲,在此期间,当访 问外部数据存储器,将跳过两次 psen 信号。 ea/vpp:外部访问允许,欲使 cpu 仅访问外部程序存储器(地址为 0000h-ffffh) ,ea 端 必须保持低电平(接地) 。需注意的是:如果加密位 lb1 被编程,复位时内部会锁存 ea 端状态。 如 ea 端为高电平(接 vcc 端) ,cpu 则执行内部程序存储器的指令。flash 存储器编程时,该引 脚加上+12v 的编程允许电源 vpp,当然这必须是该器件是使用 12v 编程电压 vpp。 xtal1:振荡器反相放大器和内部时钟发生电路的输入端。 xtal2:振荡器反相放大器的输出端。 4.2.1、 at89s52 定时/计数器详细介绍 8 定时/计数器基本结构 定时器/计数器的控制字: 定时器/计数器有 4 种工作模式,由 tmod 设置并由 tcon 控制。工作方式寄存器 tmod 的地址为 89h,它不能位寻址,在设置时一次写入。其功能为确定定时器的工作 方式及功能选择。格式如下: 图 17tmod 的各位定义 (1) 、 gate:门控位 0:定时器/计数器仅受 tr 的控制; 1:只有 int 为高电平,且 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。 定时器控制寄存器: tcon 除可字节寻址外,各位还可以位寻址。 格式为: 图 18tcon 的各位定义 功能为:tr1、tr2 控制定时/计数器的启动与停止,it1、it2 控制溢出中断的允许与屏 蔽。当标志位 tf0/tf1 采用软件查询时应禁止中断,且需要以软件的方式将标志位清 9 “0”若采用中断方式查询标志位,返主后由硬件自动清“0” 。 定时/计数器工作原理 (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=1s)为 65536s。 图 20t0 工作模式 1 逻辑结构框图 (3) 、 模式 2 模式 2 把 tl0(或 tl1)设置成一个可以自动重装载的 8 位定时器/计数器。用于需 要重复定时和计数的场合。最大计数值:256 (28),最大定时时间(晶振 12mhz 时 t=1s): 256s。自动恢复初值 8 位定时/计数器。tlx 为 8 位加 1 计数器,thx 为 8 位初值暂存 器。 10 图 21t0 工作模式 2 逻辑结构框图 (4) 、模式 3 tl0 和 th0 被分成为两个相互独立的 8 位计数器 。tl0 占用 t0 控制位: c/t,tr0,tf0,gate;th0 占用 t1 控制位:tr1 和中断标志位 tf1。t1 不能使用方式 3 工作。 图 22t0 工作模式 3 逻辑结构框图 t0 工作于模式 3 时,t1 仍可设置为模式 02。此时,仅使用 t1 控制位 c/t 切换其定 时或计数器工作方式。寄存器(8 位、13 位、16 位)溢出时,只能将输出送入串行口或用 于不需要中断的场合。 11 图 23t0 模式 3 下的 t1 逻辑结构框图 定时器/计数器初始化步骤 (1) 、 确定工作模式(是计数还是定时) 、工作方式和启动控制方式,并将其写入 tmod 寄存器。 (2) 、 设置定时或计数器的初值,可直接将初值写入 th0、tl0 或 th1、tl1 中,16 位 计数初值必须分两次写入对应的计数器。 (3) 、 根据要求决定是否采用中断方式:直接对 ie 位赋值。开放中断时,对应位置1; 采用程序查询方式时,ie 位应清 0 以进行中断屏蔽。 (4) 、 启动定时器工作。可使用 setb tri 启动。 五、系统软件设计五、系统软件设计 5.1、软件总体设计方案 5.1、 采用查表方式输出段码,使程序更为简练,节约存储空间; 5.2、 at89s52 单片机的定时/计数器在四种工作模式中,其最大定时时间(tf 溢出周期)为: 表 2at89s52 定时/计数器最大定时时间表 工作模式0123 最大定时时间 8192s65536s256s256s 因定时时间为 1s,可选用模式 1,每隔 50ms 中断一次,中断 20 次为 1s。 5.3、 每隔 20 个中断执行一次刷新显示子程序; 5.4、 六十进制。个位刷新显示子程序每执行十次,执行一次十位刷新显示子程序,同时个位 显示“0” ,达到个位逢十进一的目的; 12 5.5、 十位刷新显示子程序执行六次后,重新初始化,数码管显示“00” 。 5.2、程序流程图 5.2.1、主程序流程图: n y 开始 各工作寄存器、指针赋初值 设定计数器 0 为工作 模式 1,计数器赋初值 7 段数码管显示“00” 开中断,启动计数器 等待中断 r5-1=0?(等待时 间足够 1s?) 输出计时时间 图 24 5.2.2、中断服务子程序流程图: 13 n y n y n y 保护断点 计数器重新赋值 r5-1 =0? (循环计时 50ms是否够 20 次?) 循环计时计数器 r5 重新赋值 查表去段码, 输出个位数, 个位指针指向下一段码 r6-1=0? (个位满 10?) 查表取段码,输出十位数,个位输出“0” ,十位 输出计数器 r3+1 r4-1=0? (计时满 60?) 各计数器、指针、工作寄存器、端口初始化 返回主程序 图 25 14 5.3、程序清单 org 0000h ljmp main org 000bh ljmp int_t0 org 0100h main: movtmod,#01h setbet0 setbea setbtr0 mov r5,#14h;循环计时计数器,循环 20 次 mov r6,#0ah;个位显示计数器,逢 10 进 1 mov r3,#00h;十位数段码指针 movr4,#06h;十位显示计数器,满 6 清零 movdptr,#biao mova,#0c0h;将“0”段码输出显示 movp2, a movp1, a movth0,#3ch movtl0,#0b0h;定时 50ms sjmp $;等待中断 int_t0: movth0,#3ch movtl0,#0b0h;重新赋值 djnz r5,go;循环不足 20 次(不够 1s)返回等待 mov r5,#14h;循环计时计数器重新赋值 clr a movc a,a+dptr mov p2,a;显示个位 inc dptr;指向下一段码 djnz r6,go;个位不满 10,跳过十位显示 mov r6,#0ah;个位显示计数器重新赋值 mov a,r3 mov dptr,#biao 15 movc a,a+dptr movp1,a;显示十位 mov a,#0c0h mov p2,a inc r3 djnz r4,go;十位不满 6,跳过初始化 mov a,#0c0h;初始化 movp1,a movp2,a mov r5,#14h movr6,#0ah movr3,#00h mov r4,#06h movth0,#3ch movtl0,#0b0h movdptr,#biao go:reti biao: db 0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;“0”“9”段码(共阳) end 5.4、程序运行分析 因定时/计数器的定时时间为 50ms,中断 20,即 1s 后执行一次刷新显示子程序。程序只考虑 硬件延时,并没有将中断服务子程序的运行时间计算在内,所以在秒表运行时,会出现计时显示时 间滞后于标准时间的现象。 据中断服务子程序以及指令周期表可知,刷新显示子程序运行时间最小的情况为:不带进位的 秒计数加 1,运行时间最大的情况为:满 60 自动从 0 开始。据此可推算其最大最小运行时间分别 为 196s 和 169s。经 proteus 仿真测试,运行一小时将会出现大约 1s 的误差,且随着时间推移, 误差将会累积增大。在实际的计时中,也会因环境以及设备的不完善,影响计时的精确性。 在对秒计时影响不大的情况下,适当增大定时/计数器初值,以及提高制板工艺的方法尽可能 的减小误差。 六、元件清单六、元件清单 表 3元件清单表 序号元件名称规格备注 1 电阻 1k 1 个 2 电阻 10 1 个 3 电阻 100 1 个 4 电阻 4.7k 1 个 16 5 cpu 插座 con40 1 个 6 单片机 at89s52 1 个 7 继电器 hk4100f-dc5v-shg 1 个 8 牛角座 con10 1 个 9 按钮 4 脚2 个 10 发光二级管 1 个 11 电容 10uf 1 个 12 电容 470uf 1 个 13 电容 20pf 2 个 14 排阻 1k 1 排 15 排阻 2.2k 1 排 16 晶振 12mhz 1 个 17 稳压管 5819 1 个 18 led 七段数码显示管红色,共阳2 个 19 排针 若干 20 导线 若干 21 最小系统电路板 1 块 七、硬件制作步骤七、硬件制作步骤 1、 在 protel 99 se 中编辑原理图,生成 pcb 文件,打印; 2、 将用于腐蚀的电路板抛光,以便保证印刷电路板的熨烫效果; 3、 将印刷电路熨烫在电路板上,待油墨充分粘附于板上后,撕下喷墨菲林片; 4、 腐蚀掉电路板多余的铜,进行第二次抛光,将多余的油墨清洗掉,按照电路图在 电路板上钻孔; 5、 将元器件焊接在板上并检测各焊点是否接触可靠; 6、 烧录程序,调试,直至成功运行。 八、总结八、总结 出于对单片机和电路板制作的浓厚兴趣以及自身知识的匮乏,我在做这课设的时候感 觉既困扰又欣慰。通过这次课程设计,我拓宽了知识面,锻炼了动手能力。特别是 proteus 软件的使用。通过整个电路设计与制作的过程,我掌握了实物硬件的连接和组装

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论