1、3.4显示电路的选择与设计 43.5设计电路原理图 54. 系统软件设计与编程 54.1 秒表程序流程图 54.2 设计程序64.3 调试过程 115 实习心得 126.附录 121.绪论随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,而本文设计并制作了一款基于AT89S52 的8位数码管显示的数字钟,其电路简单,软硬件结构模块化,易于实现。2.课程设计2.1 设计目的通过课程设计,能够进一步熟悉AT89S52 单片机的结构及工作原理,掌握单片机的接口技术及相关外围芯片的外特性,控制方法,以及以单片机为核心的电路设计的基本方法和技术,了解相关电路参数的计算方法。通过实际程序设
2、计和调试,逐步掌握模块化程序设计方法和调试技术。通过完成一个包括电路设计和程序开发的完整过程,使我们了解开发单片机应用系统的过程,为今后从事的相关工作打下基础。2.2 具体设计要求设计一个数字时钟,显示小时,分钟,秒,用8位LED显示,如:17-00-00,并且实现12和24小时之间的转换,可根据个人情况加上其他扩展功能。3.系统功能原理及硬件电路3.1 AT89S52单片机简介AT89S52为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。(一)、AT89S52主要功能列举如下:1、拥有灵巧的8位CPU和在系统可编程Flash2、晶片内部具
3、时钟振荡器(传统最高工作频率可至 12MHz)3、内部程序存储器(ROM)为 8KB4、内部数据存储器(RAM)为 256字节5、32 个可编程I/O 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工UART串行通道(二)、AT89S52各引脚功能介绍:(三)时序AT89S52典型的指令周期(执行一条指令的时间称为指令周期)为一个机器周期,一个机器周期由六个状态(十二振荡周期)组成。每个状态又被分成两个时相P1和P2。所以,一个机器周期可以依次表示为S1P1,S1P2,S6P1,S6P2。通常算术逻辑操作在P1时相进行,而内部寄存器传送在P2时相进行。对
4、于单周期指令,当操作码被送入指令寄存器时,便从S1P2开始执行指令。如果是双字节单机器周期指令,则在同一机器周期的S4期间读入第二个字节,若是单字节单机器周期指令,则在S4期间仍进行读,但所读的这个字节操作码被忽略,程序计数器也不加1,在S6P2结束时完成指令操作。图1.7的(a)和(b)给出了单字节单机器周期和双字节单机器周期指令的时序。89S52指令大部分在一个机器周期完成。乘(MUL)和除(DIV)指令是仅有的需要两个以上机器周期的指令,占用4个机器周期。对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入两个字节,唯有MOVX指令例外。MOVX是访问外部数据存储器的单字节
5、双机器周期指令。在执行MOVX指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。图1.7中(c)给出了一般单字节双机器周期指令的时序9。3.2 74HC595简介74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。 74HC595是具有8位移位寄存器和一个存储器,三态输出功能。 移位寄存器和存储器是分别的时钟。 数据在SHcp的上升沿输入到移位寄存器中,在STcp的上升沿输入到存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个
6、并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。三态。将串行输入的8位数字,转变为并行输出的8位数字,例如控制一个8位数码管,将不会有闪烁。3.3接线方式:74LS138译码器 ENAP1.0 ENBP1.1 ENCP1.2时钟 CLKP2.0数码管输入 DINP2.13.4显示电路的选择与设计对于数字显示电路,通常采用液晶显示或数码管显示。对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵),
7、一般多采用并行接口,对单片机的接口要求较高,占用资源多;另外,AT89S52单片机本身无专门的液晶驱动接口。而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。因此,本设计的显示电路采用8段数码管作为显示介质本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、h引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示09的编码见表1.1。表1.1 共阴极数码显示管字型代码字型共阳极代码0C0H592H10F9H682H20A4H
8、70F8H30B0H880H499H990H3.5 设计电路原理图:见附录4.系统软件设计与编程4.1数字钟程序流程图主程序流程图如下:结束 4.2设计程序:ORG 0000HENA BIT P1.0ENB BIT P1.1ENC BIT P1.2CLK BIT P2.0DIN BIT P2.1AJMP MAINORG 0003H ; 外部中断0AJMP INT0ORG 000BH ;定时器T0AJMP IV0ORG 0030H ;MAIN: LCALL INTWAIT: LCALL READ LCALL DISPLAY SJMP WAIT ;READ: MOV A,R4 MOV B,#0AH
9、 DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV 75H,A MOV A,B MOV 74H,A MOV A,#0BFH MOV 73H,A MOV 70H,A MOV A,R5 MOV 72H,A MOV 71H,A MOV A,R6 MOV 6FH,A MOV 6EH,A RETDISPLAY: CLR ENA SETB ENB SETB ENC MOV R1,6EHLOOP3: MOV A,R1 MOV R0,#08HLOOP2: LCALL LOOP INC R1 CJNE R1,#76H,LOOP3 ; SETB ENAIV0: DJNZ R3,LOOP
10、1 ; MOV R3,#14H INC R4 CJNE R4,#60,LOOP1 ; INC R5 MOV R4,#0 ; CJNE R5,#60,LOOP1 INC R6 MOV R5,#0 SETB TR1 ;定时器T1启动 CJNE R6,#24,LOOP1 MOV R6,#0LOOP1: MOV TH0,#03CH ; MOV TL0,#0B0H ; SETB TR0 RETILOOP: RLC A MOV DIN,C NOP SETB CLK CLR CLK DJNZ R0,LOOPINT0: MOV B,#12 JZ NN ;小于12 JNZ MM ;大于12 NN: ADD A,
11、#12 MOV R6,A MM: SUBB A,#12 RETI LOOP4: MOV TH1,#03CH MOV TL1,#0B0HINT: MOV R4,#00H MOV R5,#00H MOV R6,#17 MOV TMOD,#11H MOV TH0,#03CH MOV TL0,#0B0H SETB IT0 ;下降沿触发 SETB EX0 ;外部中断允许 SETB ET0 ;定时器中断允许 T0 SETB EA ;开中断 SETB TR0 ; 启动T0TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H43 调试过程5. 实习心得:通过这
12、次课程设计,我对单片机和电路设计的相关知识有了更多的了解,同时也锻炼了自己运用已学知识的能力。在设计过程中,我遇到了不少问题,例如,怎样找资料,电路如何连接和安排等等,但最终这些问题都解决了,成就感油然而生。单片机课程设计不仅给我们提供了一个很好的展现所学知识的平台,也对自己实际运用能力进行一次考核,从中还可以学到课堂外的东西,获益匪浅,这就是孔子所说的温故知新。单片机活跃在我们生活中的许多领域, 其发展前景很广阔。学好单片机也许对我们以后的工作有所帮助。通过这次设计,我学到了很多知识,同时也认识到在团队工作中需要有合作精神,我想这会为今后自己踏上工作岗位、更好地融入新的团队打下良好的基础。 6. 附录:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1