《单片机关于定时器的大作业实验报告.docx》由会员分享,可在线阅读,更多相关《单片机关于定时器的大作业实验报告.docx(8页珍藏版)》请在三一办公上搜索。
1、单片机关于定时器的大作业实验报告课 程 设 计 报 告 基于微处理器的定时器设计 一 硬件系统的设计: 设计要求: 本课程设计的定时器,待机状态是一台时钟,以秒为单位两点闪烁,可设置多个闹铃时间,蜂鸣器鸣叫时间持续一分钟,并可作秒表使用,可控制秒表启停。 设计目的: 1. 复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进行系统的回顾和总结。 2. 拓展知识面,课堂的知识是远远满足不了设计的要求的,这就需要我们主动去找寻更多的资料,了解更多的知识。 3. 培养了设计能力和解决实际问题的能力,同时增强了自学能力,通过设计完整的单片机系统也初步掌握了组成系统、编程、调试等能力。 4.
2、通过本LCD电子钟的设计初步了解了单片机应用系统开发研制过程,软件和硬件设计的方法。 5. 本课程设计目的是制作基于微处理器的定时器,将学过的微处理器硬件和软件知识,以及电子线路知识进行综合应用,形成一个能实际运行的电子作品。 系统组成及工作原理 该定时器主要由单片机,复位电路 ,电源,蜂鸣器和开关构成。 本定时器采用ATMEL公司的AT89S51单片机为核心,使用晶振11.0592MHz晶振与单片机AT89S51相连,通过软件编程的方法实现12分钟为一个周期,同时LCD显示分钟和秒的要求。 硬件的设计: 本设计的硬件系统主要由以下几个模块来实现:控制模块、输入模块、输出模块、电源模块。 控制
3、模块主要用开关实现秒表与时钟以及闹钟之间的变换。 输入模块主要用于向控制器模块输入各种信息。 输出模块主要用于实时的实现各种显示。 电源模块主要用于向整个硬件系统供电。 (b)设计电路连线原理图: C1220p19(c)时钟电路 X1CRYSTALC2220p18929本设计是采用内部时钟方式,用一个11.0592MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图见图 (d)AT89S51及LCD的引脚图: a) : b) (4)元器件清单 名称 CPU 晶振 电阻 AT89S51 11.0592MHZ 5.1K 150 三极管 排阻 电容 901
4、2 4.7K*8 10uf 0.1uf 30pf 40引脚插针 蜂鸣器 数量 1 1 3 1 1 1 1 1 2 1 1 液晶显示器ED-S801 剪刀 镊子 面包板、键盘 1 1 1 1、1 (二)软件系统的设计: 使用单片机资源的情况: 设计时使用单片机资源的情况如下:AT89S51单片机的P0、P1、P2口作为液晶数据线接口,其中,P0口接液晶分个位,P1接液晶秒十位,P2接液晶秒个位。P3 口接时钟电路和控制开关,用单片机定时器0中方式1来控制定时器运行。 (2)软件系统的各个模块功能: 本设计的软件系统主要采用以下基本模块来实现: 主程序、中断服务程序、开关控制和液晶显示程序。 主程
5、序用于对于各个程序模块的运行及控制,以及各个模式程序的初始化。特别是定时中断的初始值。实验中定时时间为50ms。所以TH0=3CH, TL0=0B0H。 中断服务程序用于时钟的运行,以及通过定时中断来实现各个模式。即是待机模式,闹钟模式,秒表模式。通过定时中断控制液晶中间两点闪烁,每隔0.5s闪烁一次。在闹钟模式,但时钟走到10s时,蜂鸣器响5s。 开关控制用于确定按键并进行相应的模式处理。如,当K2=1,时钟进入秒表模式,假如K1=1,秒表计时,否则K1=0,秒表暂停。但K2=0,判断1,假如K1=1,时钟进入闹钟模式,否则进入待机模式。 液晶显示程序用于控制液晶的显示,显示分秒时钟。 (3
6、)设计的软件流程框图: YES 进入秒表模式 开始 进入主程序 开始计时 K2为高吗? NO K1为高吗? YES NO 进入闹钟模式 待机模式 开始计时 开始计时 继续计时 K1为低? 时钟到10no YES no 秒? yes 秒表暂停 秒 响够no 5秒? no 秒表继续计时 yes 继续计时 开始计时 (3)实验程序 ORG 0000H LJMP MAIN ORG 000BH LJMP ITT0 ORG 0100H MAIN: MOV SP,#60H MOV TH0,#3CH MOV TL0,#0B0H MOV TMOD,#01H SETB ET0 SETB EA MOV R0,#0
7、MOV R1,#0 MOV R2,#0 CLR P3.0 MOV R7,#0 MOV DPTR,#TAB SETB P3.1 SETB P3.3 SETB TR0 SJMP $ ORG 0500H ITT0: MOV TH0,#3CH MOV TL0,#0B0H INC R7 CJNE R7,#20,MM;1S是否到 CPL P3.1 MOV R7,#0 JB P3.7,MODE2;K2为1则进入秒表模式,否则顺序执行,进入待机或闹钟模式 INC R2 JNB P3.3,DELL;闹钟响?跳入判断是否响够5S WW: CJNE R2,#10,EXIT;秒个位溢出 MOV R2,#0 INC R
8、1 JB P3.6,MODE1;K1为1跳转入闹钟模式,否则顺序执行,进入待机模式 QQ: CJNE R1,#6,EXIT;秒十位溢出 MOV R1,#0 INC R0 CJNE R0,#10,EXIT;分个位溢出 MOV R0,#0 CPL P3.0;分十位变化,只为0或1 SJMP EXIT MM: CJNE R7,#10,EXIT0 CPL P3.1;0.5S到,两点取反 EXIT: MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV A,R1 MOVC A,A+DPTR MOV P1,A MOV A,R2 MOVC A,A+DPTR MOV P2,A;输出分秒 EX
9、IT0: RETI TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH MODE1: JB P3.0,EXIT1 CJNE R0,#0,EXIT1 CJNE R1,#1,EXIT1 CJNE R2,#0,EXIT1;时间到00:10吗 CLR P3.3 MOV R6,#5 EXIT1: SJMP QQ DELL: DJNZ R6,LOOP;响够5S吗 SETB P3.3 LOOP: SJMP WW MODE2: INC R2 CJNE R2,#10,EXIT2 MOV R2,#0 INC R1 CJNE R1,#6,EXIT2 MOV R1,#0 INC R0 CJNE R0,#10,EXIT2 MOV R0,#0 CPL P3.0 SJMP EXIT2 EXIT2: JNB P3.6,STOP;秒表暂停键按下,即K1为0 EXIT3: SETB TR0;继续,开定时器中断,继续计时 MOV A,R0 MOVC A,A+DPTR MOV P0,A MOV A,R1 MOVC A,A+DPTR MOV P1,A MOV A,R2 MOVC A,A+DPTR MOV P2,A SJMP EXIT0 STOP: CLR TR0;暂停,关定时器中断,停止计时 JB P3.6,EXIT3 SJMP STOP END