1、 摘要 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于数字钟电路的基本组成包含了
2、数字电路的主要组成部分,因此进行数字钟的设计是必要的,研究数字钟及扩大其应用,有着非常现实的意义。 单片机数字时钟就是其中的一款设计。它具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。单片机数字钟是单片机为核心。时钟,本设计是以单片机AT89S52配备LED数码显示管,数字钟采用24小时制方式显示时间,带有年月日、秒表和闹钟功能。本设计打算采用蜂鸣器做提醒,因没有蜂鸣器所以采用闪灯来提醒。使人不仅仅是通过视觉来感受单片机数字钟带来的方便。 关键词:单片机 数字时钟 汇编 目录 第
3、一章 系统设计要求 2 1.1 设计要求 2 第二章 系统的组成及工作原理 3 2.1 系统的组成 3 2.2 系统的工作原理 3 第三章 系统硬件电路方案设计 6 3.1 电子时钟方案 6 3.2 数码显示方案 6 3.3 单元电路设计 7 3.3.1 晶体振荡电路 7 3.3.2 复位电路 7 3.3.3 显示电路 7 3.3.4 键盘电路 7 3.3.5 控制电路 8 第四章 系统的软件设计 9 4.1 程序流程图 9 4.2 源程序 10 第五章 系统调试和测试结果与分析 25
4、5.1 实验仪器与工具 25 5.2 调试闹钟 25 5.3 调试按键子程序 25 第六章 结论 26 参考文献 27 第一章 系统设计要求 1.1做一个基于AT89S52的简易的单片机数字钟。该数字钟有6个共阴极七段数码管,分别显示时分秒,其显示方式为:**时**分**秒。利用8255扩展键盘和显示接口,时间可以任意修改。 1.1课程设计要求 (1)掌握AT89S52实验开发系统中的实验模块原理,画出电路原理图。 (2)综合运用实验模块,用89S52开发设计具有一定功能的单片机控制系统,进行软、硬件设计及调试。 (3)写出完整
5、的设计任务书:摘要、目录、正文、结论、参考文献、附录。 (4)时间以24小时为一个周期;电子钟的格式为:**时**分**秒,由左向右分别为:时、分、秒。完成显示由秒由00一直加1至59,再恢复为00;分由00一直加1至59,再恢复00;时由00一直加1到23,再恢复00。 (5)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。 第二章 系统组成及工作原理 2.1、系统的组成 数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1
6、MHZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟. (1) 晶体振荡器 晶体振荡器给数字钟提供一个频率稳定准确的11.0592MHz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器。 (2) 复位电路 时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器,时个位和时十位电路构成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,时个位和时十位计数器为24进制计数器。 (3) 数码管 数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数
7、码管。 (4) 键盘 键盘是控制和修改时钟的重要输入模块,通过键盘可以修改时间,修改年月日,修改闹钟时间,控制显示等。 (5) 控制部分 AT89S52是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含8K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。AT89S52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32I/O口线,看门狗(WDT),两个数据指针,三个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
8、2.2、系统工作原理 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时
9、P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输
10、出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口第二功能口。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁
11、止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编
12、程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 第三章 系统硬件电路方案设计 3.1、电子时钟方案 电子时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。 方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部
13、包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。 方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设6个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单
14、片机不上电,程序不执行时,时钟将不工作。 基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。 3.2、数码管显示方案 方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。 方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有
15、关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。 从节省I/O口和降低能耗出发,本设计采用方案二。 3.3、单元电路设计 3.3.1、晶体振荡电路 3.3.2 、复位电路 3.3.3、显示电路 3.3.4、键盘电路 3.3.5、控制电路 第四章 系统软件设计 4.1程序流程图主程序开始 设定定时器常数,开中断 显示时间 到1秒? T0中断 现场保护 重装定时器初值 满20次否? 满24小时否? 满60秒否? 满60分否? 恢复现场 时值加1
16、 时缓冲单元清零 秒值加1 分缓冲单元清零 秒缓冲单元清零 分值加1 结束 4.2、源程序 F_1 BIT 70H ;为0时 锁定键盘 为1时 可以输入键值 F_2 BIT 71H ;为1时 执行T1中秒表程序,为0时执行T1中闹钟闪灯程序 F_3 BIT 72H SHIS EQU 20H ;时 十位 时钟的时分秒 SHIG EQU 21H ;时 个位 FENS EQU 22H ;分 十位 FENG EQU 23H ;分 个位 MIAOS EQU 24H ;秒 十位 MIAOG EQU 25H ;秒
17、 个位 NIANS EQU 27H ;年 十位 年、月、日 NIANG EQU 28H ;年 个位 YUES EQU 29H ;月 十位 YUEG EQU 2AH ;月 个位 RIS EQU 2BH ;日 十位 RIG EQU 2CH ;日 个位 SS EQU 35H ;时 十位 定时的时分秒 SG EQU 36H ;时 个位 FS EQU 37H ;分 十位 FG EQU 38H ;分 个位 MS EQU 39H ;秒 十位 MG EQU 3AH ;秒 个位 MFS EQU 45H ;分 十位 秒表的分、秒、毫秒
18、 MFG EQU 46H ;分 个位 MMS EQU 47H ;秒 十位 MMG EQU 48H ;秒 个位 MHS EQU 49H ;毫秒 十位 MHG EQU 4AH ;毫秒 个位 ORG 0000H LJMP MAIN ORG 000BH ;定时T0中断入口地址 LJMP TIM0 ORG 001BH ;定时T1中断入口地址 LJMP TIM1 MAIN: MOV SP,#60H ;堆栈指针设置 CLR F_1 ;清零 锁定键盘 CLR F_2 ;清零 CLR F_3 MOV SHIS,#02H ;
19、时分秒赋初值 MOV SHIG,#03H MOV FENS,#05H MOV FENG,#08H MOV MIAOS,#04H MOV MIAOG,#00H MOV NIANS,#01H ;年月日赋初值 MOV NIANG,#00H MOV YUES,#00H MOV YUEG,#07H MOV RIS,#00H MOV RIG,#02H MOV SS,#01H ;定时闹钟的时分秒赋初值 MOV SG,#02H MOV FS,#00H MOV F
20、G,#00H MOV MS,#00H MOV MG,#00H MOV R0,#20H ;R0指针指向 时 的十位 MOV R1,#27H ;R1指针指向 年 的十位 MOV 32H,#SHIS ;存放显示缓冲区初始值 MOV TMOD,#11H ;设置定时器方式 MOV TH0,#4BH ;定时器T0 50MS初值 MOV TL0,#0F1H MOV TH1,#0DCH ;定时器T1 10MS初值 MOV TL1,#00H MOV IE,#8AH ;开中断 MOV 40H,#00H ;秒计数单元 MOV 43H
21、00H ;0.5秒计数单元 MOV A,#89H ;初始化 设置8255状态字 MOV DPTR,#0FF23H MOVX @DPTR,A MOV DPTR,#0FF21H MOV A,#0FFH MOVX @DPTR,A ;消隐 SETB TR0 ;启动定时器T0 START:LCALL KEY ;调用键扫子程序 LCALL SCAN ;调用显示子程序 LCALL LOCK ;调用闹钟子程序 SJMP START SCAN: PUSH ACC ;显示子程序 SETB RS1 ;换到2区 MOV 31H,
22、32H ;显示的数据送数据显示缓冲区 MOV 30H,#0DFH ;第一个数码管显示 MOV R7,#06H ;动态显示数码管的个数 SCAN1:MOV A,30H MOV DPTR,#0FF20H MOVX @DPTR,A MOV R0,31H MOV A,@R0 MOV DPTR,#TABLE MOVC A,@A+DPTR CPL A MOV DPTR,#0FF21H MOVX @DPTR,A LCALL DELAY MOV A,30H RR A ;将显示数码管右移一位 MOV 30H,A INC 31H
23、 ;显示缓冲区加1 MOV A,#0FFH MOVX @DPTR,A ;消隐 DJNZ R7,SCAN1 POP ACC CLR RS1 RET TIM0: PUSH ACC ;定时器T0中断子程序 MOV TH0,#4BH MOV TL0,#0F1H INC 40H MOV A,40H CJNE A,#14H,LP0 LP0:JC LP2 ;1秒钟到往下执行 MOV 40H,#00H ;清秒计数单元 INC MIAOG ;秒加1 MOV A,MIAOG CJNE A,#0AH,LP2 MOV M
24、IAOG,#00H INC MIAOS MOV A,MIAOS CJNE A,#06H,LP2 MOV MIAOS,#00H INC FENG MOV A,FENG CJNE A,#0AH,LP2 MOV FENG,#00H INC FENS MOV A,FENS CJNE A,#06H,LP2 MOV FENS,#00H INC SHIG MOV A,SHIS CJNE A,#02H,LP01 MOV A,SHIG CJNE A,#04H,LP2 MOV SHIG,#00H MOV SHIS,#00H INC R
25、IG LP01:MOV A,SHIG CJNE A,#0AH,LP2 MOV SHIG,#00H INC SHIS LP2:POP ACC RETI TIM1:PUSH ACC ;定时器T1子程序 MOV TH1,#0DCH MOV TL1,#00H JNB F_2,TM1 INC MHG MOV A,MHG CJNE A,#0AH,TT0 MOV MHG,#00H INC MHS MOV A,MHS CJNE A,#0AH,TT0 MOV MHS,#00H INC MMG MOV A,MMG CJNE A
26、0AH,TT0 MOV MMG,#00H INC MMS MOV A,MMS CJNE A,#06H,TT0 MOV MMS,#00H INC MFG MOV A,MFG CJNE A,#0AH,TT0 MOV MFG,#00H INC MFS MOV A,MFS CJNE A,#06H,TT0 MOV MFS,#00H TT0:SJMP TM2 TM1:INC 43H MOV A,43H CJNE A,#32H,TM10 TM10:JC TM2 MOV 43H,#00H MOV A,P1 CPL A MOV
27、 P1,A TM2:POP ACC RETI LOCK:PUSH ACC ;闹钟子程序 SETB RS0 ;换到1区 MOV R0,#20H MOV A,SS XRL A,@R0 JNZ LOCK1 INC R0 MOV A,SG XRL A,@R0 JNZ LOCK1 ;时钟 时 与闹钟 时 相等往下执行 INC R0 MOV A,FS XRL A,@R0 JNZ LOCK1 INC R0 MOV A,FG XRL A,@R0 JNZ LOCK1 ;时钟 分 与闹钟 分 相等往下执行
28、INC R0 MOV A,MS XRL A,@R0 JNZ LOCK1 INC R0 MOV A,MG XRL A,@R0 JNZ LOCK1 ;时钟 秒 与闹钟 秒 相等 往下执行 SETB TR1 ;时分秒 全相同 启动T1 CLR F_2 ;清0执行闹钟闪灯程序 LOCK1:CLR RS0 ;恢复到0区 POP ACC ;恢复A的值 RET KEY: LCALL KS ;键扫子程序 JZ LK11 LCALL DELAY ;延时 LCALL KS JZ LK11 ;有键按下转 LK2: MOV R
29、4,#00H MOV R3,#08H MOV R2,#0FEH ;R2为键盘键扫单元 LK1:MOV A,R2 MOV DPTR,#0FF20H MOVX @DPTR,A ;输出键扫值 RL A MOV R2,A MOV DPTR,#0FF22H MOVX A,@DPTR ;读键值 CPL A ANL A,#0FH JNZ LK3 INC R4 INC R4 DJNZ R3,LK1 LK11:SJMP LK4 LK3: ADD A,R4 ;算键值 MOV DPTR,
30、KEYTAB MOVC A,@A+DPTR CJNE A,#0FH,LK30 ;如果为F调用按键F子程序 LCALL KEY_F SJMP LK34 LK30:CJNE A,#0EH,LK31 ;如果为E调用按键E子程序 LCALL KEY_E SJMP LK34 LK31:CJNE A,#0DH,LK32 ;如果为D调用按键D子程序 LCALL KEY_D SJMP LK34 LK32:CJNE A,#0CH,LK33 ;如果为C调用按键C子程序 LCALL KEY_C SJMP LK34 LK33:CJNE A,#0BH,LK330
31、 ;如果为B调用按键B子程序 LCALL KEY_B SJMP LK34 LK330:CJNE A,#11H,LK331 ;如果为11调用按键SCAL子程序 LCALL KEY_SCAL SJMP LK34 LK331:CJNE A,#12H,LK332 ;如果为12调用按键STEP子程序 LCALL KEY_STEP SJMP LK34 LK332:CJNE A,#13H,LK34 ;如果为13调用按键MON子程序 LCALL KEY_MON LK34:CLR C CJNE A,#0AH,LK35 ;如果为A调用按键A子程序 LCALL
32、KEY_A SJMP LK4 LK35:JNC LK4 JNB F_1,LK4 MOV @R0,A ;输出键值 INC R0 MOV A,R0 CJNE A,#26H,LK36 MOV R0,#20H ;复位R0指针 LK36:CJNE A,#2DH,LK37 MOV R0,#27H LK37:LCALL SCAN LCALL KS JNZ LK36 LK4: RET KEY_SCAL:MOV 32H,#MFS ;SCAN子程序 秒表子程序 CLR TR1 ;秒表复位 MOV MFS,#00H MOV MFG,#
33、00H MOV MMS,#00H MOV MMG,#00H MOV MHS,#00H MOV MHG,#00H RET KEY_STEP:CPL TR1 ;启动秒表或暂停秒表 SETB F_2 ;为1时 启动秒表计时程序 LK38:LCALL SCAN ;松手检测 LCALL KS JNZ LK38 RET KEY_MON:CPL F_3 ;取反 JB F_3,M1 ;为1时,数码管显示秒表 为0时,数码管显示时钟 MOV 32H,#SHIS SJMP M2 M1: MOV 32H,#MFS M2: LCALL
34、SCAN ;松手检测 LCALL KS JNZ M2 RET KEY_A:MOV 32H,#NIANS ;按键A子程序 查看 年月日 日期 AA0:LCALL SCAN ;松手检测 LCALL KS JNZ AA0 MOV 32H,#SHIS ;恢复时钟显示 RET KEY_B:MOV 32H,#NIANS ;按键B子程序 修改年月日 SETB F_1 ;解除键盘锁定 MOV R0,#27H ;设置指针指向年月日存储区首地址 MOV NIANS,#10H ;数码管上显示时__分__秒__ MOV NIANG,#10H
35、 MOV YUES,#10H MOV YUEG,#10H MOV RIS,#10H MOV RIG,#10H RET KEY_C:MOV 32H,#SS ;按键C子程序 显示闹钟时间 CC0:LCALL SCAN ;松手检测 LCALL KS JNZ CC0 MOV 32H,#SHIS ;恢复显示时钟 RET KEY_D:MOV 32H,#SS ;按键D子程序 修改闹钟时间 SETB F_1 ;键盘解锁 MOV R0,#35H ;设置指针指向闹钟存储区首地址 MOV SS,#10H ;数码管上显示时__分__秒__
36、 MOV SG,#10H MOV FS,#10H MOV FG,#10H MOV MS,#10H MOV MG,#10H RET KEY_E:MOV 32H,#SHIS ;按键E子程序 确认键 恢复时钟键 SETB TR0 ;启动T0 恢复时钟 MOV A,#0FFH ;灭灯 MOV P1,A CLR TR1 ;停止T1 停止闹钟闪灯 CLR F_1 ;锁定键盘 ;以下程序是判断时钟是否符合标准,不符合则清00时00分00秒 MOV R0,#20H MOV A,@R0 SWAP A INC R0
37、ADD A,@R0 CLR C CJNE A,#24H,EE0 EE0: JNC EE5 MOV R0,#22H CJNE @R0,#06H,EE1 EE1: JNC EE5 INC R0 CJNE @R0,#0AH,EE2 EE2: JNC EE5 INC R0 CJNE @R0,#06H,EE3 EE3: JNC EE5 INC R0 CJNE @R0,#0AH,EE4 EE4: JC EE EE5: MOV SHIS,#00H MOV SHIG,#00H MOV FENS,#00H
38、 MOV FENG,#00H MOV MIAOS,#00H MOV MIAOG,#00H EE: MOV R0,#20H RET KEY_F:CLR TR0 ;按键F子程序 修改时钟 SETB F_1 ;解除键盘锁定 MOV R0,#20H ;指向时钟首地址 MOV SHIS,#10H ;数码管上显示时__分__秒__ MOV SHIG,#10H MOV FENS,#10H MOV FENG,#10H MOV MIAOS,#
39、10H MOV MIAOG,#10H RET KS: MOV DPTR,#0FF20H ;判断键是否按下子程序 MOV A,#00H MOVX @DPTR,A MOV DPTR,#0FF22H MOVX A,@DPTR CPL A ANL A,#0FH RET KEYTAB: DB 00H,07H,01H,04H,00H,08H,02H,05H,0FH ;键值表 DB 09H,03H,06H,0EH,0AH,0CH,0BH,0DH,00H,11H,00H,12H,00H,13H,00H DELAY
40、MOV R3,#01H ;扫描延时子程序 D1: MOV R4,#02H D2: MOV R5,#0F8H DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,08H,40H,80H,00H END 第五章 系统调试和测试结果与分析 5.1、实验仪器与工具 本
41、次课程设计使用的硬件部分是DJ-598K实验开发系统,实验仪主板由许多独立的硬件实验模块组成,可见它们组成各种各样的硬件实验,板上的“O”型圆孔用来作为测试孔或用于连接硬导线组成实验。 下面将详细介绍几个与本次课设有关模块的功能与用途。 1、 LED发光二极管指示电路 实验仪上包括12只发光二极管及相应驱动电路,L1~L12为相应发光二极管驱动信号输入端,该输入端为低电平时发光二极管亮。 2、 显示接口电路 数码管的段控制信号是由8255的PB口经74LS245缓冲器后输出得到,6位位控制信号由8255的PA口经74LS245缓冲器后输出得到。 3、 键盘接口电路 8255
42、的PC0~PC3作为矩阵键盘行扫描线,8255的PA口为矩阵键盘列入线。 本次课程设计使用的软件部分是DJ-51仿真开发系统软件,该软件有编辑、连接、动态调试综合实验仪的硬件接口等功能。 5.2、调试闹钟 调试闹钟时,发现时钟时时分秒和闹钟的时分秒无法判断相等,虽然闹钟的时分秒和时钟的时分秒赋了相同的值,但是闹钟闪灯程序依然不能亮。经多次软件仿真后,得出原来时钟的时十位地址是20H单元,而程序中定义了00H位, 因为00H位是在20H单元中的第一位,所以给闹钟的时分秒和时钟的时分秒赋了相同的值时,当程序运行时,一旦00H位改变,闹钟的时分秒和时钟的时分秒存储单元中的内容就不相
43、同了。后来把00H位改为70H位,问题就解决了。 5.3、调试按键子程序 在调试按键子程序时,有一次提示 JZ LK4 行有错误,在程序中查找了很久也没有发现此行错在哪里!后来认真看错误提示,可能是跳转超出了范围,所以就在程序中离JZ LK4最近的地方找到一行LK1:LJMP LK4,然后就把JZ LK4改为JZ LK1,运行程序后无错误。 第六章 结论 本设计能够很准确的走时,并能够通过硬件对时钟进行时间调整。 u 功能介绍: 1. 显示:XX时XX分XX秒 2. 时间可调:按下调整键F键,可以输入任意时间。按下E键,此时可以启动时钟。按下A键,可以查看现在的日期XX
44、年XX月XX日。按下B键,可以修改日期。按下C键,可以查看闹钟时间,按下D键可以修改闹钟时间。按下SCAL键,可以启动秒表。按下STEP键,可以计时开始和暂停。按下MON键,可以切换时钟显示和秒表显示。 u 调试要点:首先确保各器件的完好性,其次检测各芯片的电源线和地线是否接触良好,然后焊接器件,接好电源用万用表检测各电源端、地端的状态是否正常。检查无误后插上AT89S52并烧写一简易的程序,观察电路是否能协同工作。最后烧写工作程序,根据显示现象调试程序直至成功。上电运行时,数码管开始显示00:00:00,时钟开始走时。 u 制作心得:在这次课程设计的调试过程中,遇到很多问题,如:由于跳转
45、指令出错,导致整个程序在运行时进入死循环,修改时没有根据流程盲目查找原因浪费许多时间,又由于考虑不周,时钟显示29:89。该电路缺少整点报时功能,由于能力和时间问题只能到此为止,很是遗憾,但在查找资料的过程中学到了许多,同时在协作过程中增进同学间的友谊。 参考文献 【1】 陈石胜,单片机技术应用 . 广东: 广东省技师学院电气自动化专业教改教材,2007 【2】 李广第,单片机基础 . 北京: 北京航空航天大学出版社, 2001 【3】求是科技编著,单片机典型模块设计实例导航.北京:人民邮电出版社,2004 【4】孙涵芳,MCS-5
46、1系列单片机原理及应用 .北京:北京航空航天大学出版社.1996-4 【5】于海生,微型计算机控制技术 .北京:清华大学出版社.1999-6目 录 第一章 项目总论 - 1 - §1.1项目简介 - 1 - §1.2可行性研究的范围 - 2 - §1.3编制依据 - 2 - 第二章 项目建设背景及必要性 - 3 - §2.1橡胶密封件项目提出的背景 - 3 - §2.2国家产业政策 - 6 - §2.3项目建设的必要性 - 8 - 第三章 项目优势 - 11 - §3.1市场优势 - 11 - §3.2技术优势 - 16 - §3.3组织优势 - 17 -
47、 §3.4政策优势:关中—天水经济区发展规划 - 17 - §3.5区域投资环境优势 - 17 - 第四章 产品介绍与技术介绍 - 20 - §4.1橡胶密封件产品介绍 - 20 - §4.2 产品标准 - 21 - §4.3 产品特征及材质 - 21 - §4.4产品方案 - 26 - §4.5产品技术来源 - 27 - 第五章 项目产品发展预测 - 28 - §5.1产品行业关联环境分析 - 28 - §5.2行业竞争格局与竞争行为 - 33 - §5.3竞争力要素分析 - 39 - §5.4项目发展预测 - 41 - §5.5竞争结构分析及预测 - 43 -
48、 第六章 项目产品规划 - 47 - §6.1项目产品产能规划方案 - 47 - §6.2产品工艺规划方案 - 47 - §6.3项目产品营销规划方案 - 51 - 第七章 项目建设规划 - 58 - §7.1项目建设总规 - 58 - §7.2项目项目建设环境保护方案 - 61 - §7.3项目建设节能方案 - 65 - §7.4项目建设消防方案 - 66 - §7.5项目建设生产劳动安全方案 - 69 - 第八章 项目组织实施情况 - 73 - §8.1项目组织 - 73 - §8.2项目劳动定员和人员培训 - 74 - §8.3项目管理与实施进度安排 -
49、 77 - §8.4工程招标 - 80 - 第九章 项目财务评价分析 - 82 - §9.1项目总投资及资金筹措 - 82 - §9.2项目财务评价依据及相关说明 - 83 - §9.3 项目总成本费用估算 - 84 - §9.4 销售收入、销售税金及附加和增值税估算 - 84 - §9.5 利润分配估算 - 85 - §9.6 借款偿还计划 - 85 - §9.7现金流估算 - 85 - §9.8不确定性分析 - 86 - §9.9风险分析 - 88 - 第十章 项目经济、社会效益评价 - 90 - §10.1经济效益评价 - 90 - §10.2社会效益评价 - 90 - 第十一章 可行性研究结论与建议 - 91 - §11.1研究结论 - 91 - §11.2建议 - 91 - 30






