单片机数字钟设计实习报告Word格式文档下载.docx
《单片机数字钟设计实习报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机数字钟设计实习报告Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
![单片机数字钟设计实习报告Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/27/a7103864-1d8a-4fce-acf0-5af26ab5cf24/a7103864-1d8a-4fce-acf0-5af26ab5cf241.gif)
3.4显示电路的选择与设计…………………………………………………4
3.5设计电路原理图…………………………………………………………5
4.系统软件设计与编程…………………………………………………………5
4.1秒表程序流程图…………………………………………………………5
4.2设计程序……………………………………………………………………6
4.3调试过程…………………………………………………………………11
5.实习心得……………………………………………………………………12
6.附录……………………………………………………………………………12
1.绪论
随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,而本文设计并制作了一款基于AT89S52的8位数码管显示的数字钟,其电路简单,软硬件结构模块化,易于实现。
2.课程设计
2.1设计目的
通过课程设计,能够进一步熟悉AT89S52单片机的结构及工作原理,掌握单片机的接口技术及相关外围芯片的外特性,控制方法,以及以单片机为核心的电路设计的基本方法和技术,了解相关电路参数的计算方法。
通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
通过完成一个包括电路设计和程序开发的完整过程,使我们了解开发单片机应用系统的过程,为今后从事的相关工作打下基础。
2.2具体设计要求
设计一个数字时钟,显示小时,分钟,秒,用8位LED显示,如:
17-00-00,并且实现12和24小时之间的转换,可根据个人情况加上其他扩展功能。
3.系统功能原理及硬件电路
3.1AT89S52单片机简介
AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。
(一)、AT89S52主要功能列举如下:
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程序存储器(ROM)为8KB
4、内部数据存储器(RAM)为256字节
5、32个可编程I/O口线
6、8个中断向量源
7、三个16位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
(二)、AT89S52各引脚功能介绍:
(三)时序
AT89S52典型的指令周期(执行一条指令的时间称为指令周期)为一个机器周期,一个机器周期由六个状态(十二振荡周期)组成。
每个状态又被分成两个时相P1和P2。
所以,一个机器周期可以依次表示为S1P1,S1P2……,S6P1,S6P2。
通常算术逻辑操作在P1时相进行,而内部寄存器传送在P2时相进行。
对于单周期指令,当操作码被送入指令寄存器时,便从S1P2开始执行指令。
如果是双字节单机器周期指令,则在同一机器周期的S4期间读入第二个字节,若是单字节单机器周期指令,则在S4期间仍进行读,但所读的这个字节操作码被忽略,程序计数器也不加1,在S6P2结束时完成指令操作。
图1.7的(a)和(b)给出了单字节单机器周期和双字节单机器周期指令的时序。
89S52指令大部分在一个机器周期完成。
乘(MUL)和除(DIV)指令是仅有的需要两个以上机器周期的指令,占用4个机器周期。
对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入两个字节,唯有MOVX指令例外。
MOVX是访问外部数据存储器的单字节双机器周期指令。
在执行MOVX指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。
图1.7中(c)给出了一般单字节双机器周期指令的时序[9]。
3.274HC595简介
74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是分别的时钟。
数据在SHcp的上升沿输入到移位寄存器中,在STcp的上升沿输入到存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。
8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。
三态。
将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。
3.3接线方式:
74LS138译码器ENA→P1.0ENB→P1.1ENC→P1.2
时钟CLK→P2.0
数码管输入DIN→P2.1
3.4显示电路的选择与设计
对于数字显示电路,通常采用液晶显示或数码管显示。
对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;
对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵),一般多采用并行接口,对单片机的接口要求较高,占用资源多;
另外,AT89S52单片机本身无专门的液晶驱动接口。
而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。
因此,本设计的显示电路采用8段数码管作为显示介质
本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、h引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示0~9的编码见表1.1。
表1.1共阴极数码显示管字型代码
字型
共阳极代码
0C0H
5
92H
1
0F9H
6
82H
2
0A4H
7
0F8H
3
0B0H
8
80H
4
99H
9
90H
3.5设计电路原理图:
见附录
4.系统软件设计与编程
4.1数字钟程序流程图
主程序流程图如下:
结束
4.2设计程序:
ORG0000H
ENABITP1.0
ENBBITP1.1
ENCBITP1.2
CLKBITP2.0
DINBITP2.1
AJMPMAIN
ORG0003H;
外部中断0
AJMPINT0
ORG000BH;
定时器T0
AJMPIV0
ORG0030H;
MAIN:
LCALLINT
WAIT:
LCALLREAD
LCALLDISPLAY
SJMPWAIT;
READ:
MOVA,R4
MOVB,#0AH
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOV75H,A
MOVA,B
MOV74H,A
MOVA,#0BFH
MOV73H,A
MOV70H,A
MOVA,R5
MOV72H,A
MOV71H,A
MOVA,R6
MOV6FH,A
MOV6EH,A
RET
DISPLAY:
CLRENA
SETBENB
SETBENC
MOVR1,6EH
LOOP3:
MOVA,@R1
MOVR0,#08H
LOOP2:
LCALLLOOP
INCR1
CJNER1,#76H,LOOP3;
SETBENA
IV0:
DJNZR3,LOOP1;
MOVR3,#14H
INCR4
CJNER4,#60,LOOP1;
INCR5
MOVR4,#0;
CJNER5,#60,LOOP1
INCR6
MOVR5,#0
SETBTR1;
定时器T1启动
CJNER6,#24,LOOP1
MOVR6,#0
LOOP1:
MOVTH0,#03CH;
MOVTL0,#0B0H;
SETBTR0
RETI
LOOP:
RLCA
MOVDIN,C
NOP
SETBCLK
CLRCLK
DJNZR0,LOOP
INT0:
MOVB,#12
JZNN;
小于12
JNZMM;
大于12
NN:
ADDA,#12
MOVR6,A
MM:
SUBBA,#12
RETI
LOOP4:
MOVTH1,#03CH
MOVTL1,#0B0H
INT:
MOVR4,#00H
MOVR5,#00H
MOVR6,#17
MOVTMOD,#11H
MOVTH0,#03CH
MOVTL0,#0B0H
SETBIT0;
下降沿触发
SETBEX0;
外部中断允许
SETBET0;
定时器中断允许T0
SETBEA;
开中断
SETBTR0;
启动T0
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
4.3调试过程
5.实习心得:
通过这次课程设计,我对单片机和电路设计的相关知识有了更多的了解,同时也锻炼了自己运用已学知识的能力。
在设计过程中,我遇到了不少问题,例如,怎样找资料,电路如何连接和安排等等,但最终这些问题都解决了,成就感油然而生。
单片机课程设计不仅给我们提供了一个很好的展现所学知识的平台,也对自己实际运用能力进行一次考核,从中还可以学到课堂外的东西,获益匪浅,这就是孔子所说的温故知新。
单片机活跃在我们生活中的许多领域,其发展前景很广阔。
学好单片机也许对我们以后的工作有所帮助。
通过这次设计,我学到了很多知识,同时也认识到在团队工作中需要有合作精神,我想这会为今后自己踏上工作岗位、更好地融入新的团队打下良好的基础。
6.附录: