51单片机数字钟设计实习报告

上传人:aa****6 文档编号:29211891 上传时间:2018-01-22 格式:DOC 页数:16 大小:2.33MB
返回 下载 相关 举报
51单片机数字钟设计实习报告_第1页
第1页 / 共16页
51单片机数字钟设计实习报告_第2页
第2页 / 共16页
51单片机数字钟设计实习报告_第3页
第3页 / 共16页
51单片机数字钟设计实习报告_第4页
第4页 / 共16页
51单片机数字钟设计实习报告_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《51单片机数字钟设计实习报告》由会员分享,可在线阅读,更多相关《51单片机数字钟设计实习报告(16页珍藏版)》请在金锄头文库上搜索。

1、51 单片机数字钟设计实习报告2目录一设计方案: .3二设计内容: .3三相关总线及芯片介绍: .31.SPI 总线: .32.74LS595 芯片: .53. 实验箱电路图: .6四系统软件程序设计: .6五设计程序: .8六程序调试及显示: .11七实习心得: .12八参考文献: .1331设计方案:通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。二设计内容:这里采用应用广泛的 89C52RC 作为时钟控制芯片,利用单片机内部的定时/计数器 T0 实现软时钟的目的。首先将 T0

2、 设定工作于定时方式,对机器周期计数形成基准时间(50ms) ,然后用另一个定时/计数器 T1 对基准时间计数形成秒,秒计 60 次形成分,分计 60 形成小时,小时计到 24。通过外部中断实现 24 进制的切换。最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。三相关总线及芯片介绍:1.SPI 总线:SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以串行方式进行通信以交换信息。外围设置 FLASHRAM、网络控制器、LCD 显示驱动器、A/D 转换器和 MCU 等。SPI 总

3、线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用 4 条线:串行时钟线(SCK)、主机输入/从机输出数据线 MISO、主机输出/从机输入数据线 MOSI 和低电平有效的从机选择线 SS(有的 SPI 接口芯片带有中断信号线 INT 或 INT、有的 SPI 接口芯片没有主机输出/从机输入数据线MOSI)。由于 SPI 系统总线一共只需 34 位数据线和控制即可实现与具有 SPI4总线接口功能的各种 I/O 器件进行接口,而扩展并行总线则需要 8 根数据线、816 位地址线、23 位控制线,因此,采用 SPI 总线接口可以简化电路设计,节省很多常规电路中的接口器件和 I/O

4、口线,提高设计的可靠性。由此可见,在 MCS51 系列等不具有 SPI 接口的单片机组成的智能仪器和工业测控系统中,当传输速度要求不是太高时,使用 SPI 总线可以增加应用系统接口器件的种类,提高应用系统的性能。利用 SPI 总线可在软件的控制下构成各种系统。如 1 个主 MCU 和几个从MCU、几个从 MCU 相互连接构成多主机系统(分布式系统)、1 个主 MCU 和 1 个或几个从 I/O 设备所构成的各种系统等。在大多数应用场合,可使用 1 个 MCU作为控机来控制数据,并向 1 个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。其数据的传输格式是高位(MSB)在

5、前,低位(LSB)在后。当一个主控机通过 SPI 与几种不同的串行 I/O 芯片相连时,必须使用每片的允许控制端,这可通过 MCU 的 I/O 端口输出线来实现。但应特别注意这些串行 I/O 芯片的输入输出特性:首先是输入芯片的串行数据输出是否有三态控制端。平时未选中芯片时,输出端应处于高阻态。若没有三态控制端,则应外加三态门。否则 MCU 的 MISO 端只能连接 1 个输入芯片。其次是输出芯片的串行数据输入是否有允许控制端。因此只有在此芯片允许时,SCK 脉冲才把串行数据移入该芯片;在禁止时,SCK 对芯片无影响。若没有允许控制端,则应在外围用门电路对 SCK 进行控制,然后再加到芯片的时

6、钟输入端;当然,也可以只在SPI 总线上连接 1 个芯片,而不再连接其它输入或输出芯片。对于不带 SPI 串行总线接口的 MCS-51 系列单片机来说,可以使用软件来模拟 SPI 的操作,包括串行时钟、数据输入和数据输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。对于在 SCK 的上升沿输入(接收)数据和在下降沿输出(发送)数据的器件,一般应将其串行时钟输出口 P1.1 的初始状态设置为 1,而在允许接收后再置 P1.1 为 0。这样,MCU 在输出 1 位 SCK 时钟的同时,将使接口芯片串行左移,从而输出 1 位数据至 MCS-51 单片机的 P1.3口(模拟 MCU 的 MIS

7、O 线),此后再置 P1.1 为 1,使 MCS-51 系列单片机从P1.0(模拟 MCU 的 MOSI 线)输出 1 位数据(先为高位)至串行接口芯片。至此,5模拟 1 位数据输入输出便宣告完成。此后再置 P1.1 为 0,模拟下 1 位数据的输入输出,依此循环 8 次,即可完成 1 次通过 SPI 总线传输 8 位数据的操作。对于在 SCK 的下降沿输入数据和上升沿输出数据的器件,则应取串行时钟输出的初始状态为 0,即在接口芯片允许时,先置 P1.1 为 1,以便外围接口芯片输出 1 位数据(MCU 接收 1 位数据),之后再置时钟为 0,使外围接口芯片接收 1 位数据(MCU 发送 1

8、位数据),从而完成 1 位数据的传送。2.74LS595 芯片:74595 的数据端:QA-QH: 八位并行输出端,可以直接控制数码管的 8 个段。QH: 级联输出端。我将它接下一个 595 的 SI 端。SI: 串行数据输入端。74595 的控制端说明:/SCLR(10 脚): 低点平时将移位寄存器的数据清零。通常我将它接 Vcc。SCK(11 脚):上升沿时数据寄存器的数据移位。QAQBQC.QH;下降沿移位寄存器数据不变。(脉冲宽度:5V 时,大于几十纳秒就行了。我通常都选微秒级)RCK(12 脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我将 RCK

9、 置为低点平,当移位结束后,在 RCK 端产生一个正脉冲(5V 时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。/G(13 脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。注:1)74164 和 74595 功能相仿,都是 8 位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比 74595(35mA)的要小,14 脚封装,体积也小一些。62)74595 的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。3)

10、595 是串入并出带有锁存功能移位寄存器,它的使用方法很简单,在正常使用时 SCLR 为高电平, G 为低电平。从 SER 每输入一位数据,串行输 595 是串入并出带有锁存功能移位寄存器,它的使用方法很简单,如下面的真值表,在正常使用时 SCLR 为高电平, G 为低电平。从 SER 每输入一位数据,串行输入时钟 SCK 上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。入时钟 SCK 上升沿有效一次,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端。3.实验箱电路图:图 1.实验箱电路7四系统软件程序设计:1.主程

11、序:先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和中断处理模块,当有外部中断按下时,则转入相应的功能程序。2.数码管显示模块:本实验有 8 个数码管,从右到左为时、横线、分、横线、秒。在本系统中数码管显示利用 SPI 总线进行传输显示。3.定时器/计数器 T0 中断服务程序:T0 用于计时,选中方式一,重复定时,定时时间设为 50ms,定时时间到则中断,在中断服务程序中用一个计数器对 50ms 计数,计 20 次则对秒单元加一。秒单元加到 60 则对分单元加一,同时秒单元清 0;分单元加到 60 则对时单元加一,同时分单元清 0;时单元加到 12 则对时单元清 0,标志一天时

12、间计满。在对各单元计数的同时,把他们的值放到存储器单元的指定位置。4.外部中断服务程序:对定时器启动停止进行切换。5.键盘扫描电路:流程图如下:8图 2. 主程序 图 3.中断处理程序 1图 4.数据显示模块 图 5.外部中断处理程序开始定时器 T0 初始化开中断调用显示子程序是否有中断N进入中断处理程序Y恢复现场开始1S 到?N计数自加Y60S 到?N计数单元清零恢复现场返回显示初始化查表取字型码延时显示8 位显示扫描完?N数据显示判断 TR0 是否等于11 还是 0?关闭定时器制启动定时器1 0恢复现场返回9扫描是否有按键被按下有K e y 1 = 0 K e y 3 = 0k e y 2

13、 = 0否S e c + + m i n + + h o u r + +如果 s e c = 6 0 ;m i n + + 。如果 h o u r = 1 2 ;m i n = 0 , s e c = 0 。如果 m i n = 6 0 ;h o u r + + 。结束10五设计程序:#include#define uchar unsigned char#define uint unsigned intuchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar hour,min,sec,j,k,m,n;b

14、it flag=0;sbit clk=P20;sbit din=P21;sbit enable_a=P22;sbit enable_b=P23;sbit enable_c=P24;sbit beeper=P00;sbit key1=P10;sbit key2=P12;sbit key3=P14;sbit key4=P16;void init()EX0=1; EX1=1;/外部中断 0,外部中断 1 打开IT0=1;IT1=1; /外部中断 1.0 均为下降沿触发TMOD=0X21; /T1 工作在方式 2,T0 工作在方式 1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /50msTR0=1; /启动定时器 1,0IP=0X15; / 中断优先级号ET0=1; /开启定时器EA=1;/开总中断beeper=0;flag=0;void

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号