资源描述
摘要
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于数字钟电路的基本组成包含了数字电路的主要组成部分,因此进行数字钟的设计是必要的,研究数字钟及扩大其应用,有着非常现实的意义。
单片机数字时钟就是其中的一款设计。它具有编程灵活,便于电子钟功能的扩充,即可用该电子钟发出各种控制信号,精确度高等特点,同时可以用该电子钟发出各种控制信号。单片机数字钟是单片机为核心。时钟,本设计是以单片机AT89S52配备LED数码显示管,数字钟采用24小时制方式显示时间,带有年月日、秒表和闹钟功能。本设计打算采用蜂鸣器做提醒,因没有蜂鸣器所以采用闪灯来提醒。使人不仅仅是通过视觉来感受单片机数字钟带来的方便。
关键词:单片机 数字时钟 汇编
目录
第一章 系统设计要求 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
5.1 实验仪器与工具 25
5.2 调试闹钟 25
5.3 调试按键子程序 25
第六章 结论 26
参考文献 27
第一章 系统设计要求
1.1做一个基于AT89S52的简易的单片机数字钟。该数字钟有6个共阴极七段数码管,分别显示时分秒,其显示方式为:**时**分**秒。利用8255扩展键盘和显示接口,时间可以任意修改。
1.1课程设计要求
(1)掌握AT89S52实验开发系统中的实验模块原理,画出电路原理图。
(2)综合运用实验模块,用89S52开发设计具有一定功能的单片机控制系统,进行软、硬件设计及调试。
(3)写出完整的设计任务书:摘要、目录、正文、结论、参考文献、附录。
(4)时间以24小时为一个周期;电子钟的格式为:**时**分**秒,由左向右分别为:时、分、秒。完成显示由秒由00一直加1至59,再恢复为00;分由00一直加1至59,再恢复00;时由00一直加1到23,再恢复00。
(5)为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。
第二章 系统组成及工作原理
2.1、系统的组成
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路.由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1MHZ时间信号必须做到准确稳定.通常使用石英晶体振荡器电路构成数字钟.
(1) 晶体振荡器
晶体振荡器给数字钟提供一个频率稳定准确的11.0592MHz的方波信号,可保证数字钟的走时准确及稳定.不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器。
(2) 复位电路
时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器,时个位和时十位电路构成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器,时个位和时十位计数器为24进制计数器。
(3) 数码管
数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供的为LED数码管。
(4) 键盘
键盘是控制和修改时钟的重要输入模块,通过键盘可以修改时间,修改年月日,修改闹钟时间,控制显示等。
(5) 控制部分
AT89S52是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含8K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。AT89S52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32I/O口线,看门狗(WDT),两个数据指针,三个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
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编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口第二功能口。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
第三章 系统硬件电路方案设计
3.1、电子时钟方案
电子时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。
方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设6个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。
3.2、数码管显示方案
方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了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
时缓冲单元清零
秒值加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 ;秒 个位
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 ;分 十位 秒表的分、秒、毫秒
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 ;时分秒赋初值
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 FG,#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,#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,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 ;显示缓冲区加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 MIAOG,#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 RIG
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,#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 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 ;时钟 分 与闹钟 分 相等往下执行
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 R4,#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,#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 ;如果为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 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,#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 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
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 ;数码管上显示时__分__秒__
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
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
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,#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: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、实验仪器与工具
本次课程设计使用的硬件部分是DJ-598K实验开发系统,实验仪主板由许多独立的硬件实验模块组成,可见它们组成各种各样的硬件实验,板上的“O”型圆孔用来作为测试孔或用于连接硬导线组成实验。
下面将详细介绍几个与本次课设有关模块的功能与用途。
1、 LED发光二极管指示电路
实验仪上包括12只发光二极管及相应驱动电路,L1~L12为相应发光二极管驱动信号输入端,该输入端为低电平时发光二极管亮。
2、 显示接口电路
数码管的段控制信号是由8255的PB口经74LS245缓冲器后输出得到,6位位控制信号由8255的PA口经74LS245缓冲器后输出得到。
3、 键盘接口电路
8255的PC0~PC3作为矩阵键盘行扫描线,8255的PA口为矩阵键盘列入线。
本次课程设计使用的软件部分是DJ-51仿真开发系统软件,该软件有编辑、连接、动态调试综合实验仪的硬件接口等功能。
5.2、调试闹钟
调试闹钟时,发现时钟时时分秒和闹钟的时分秒无法判断相等,虽然闹钟的时分秒和时钟的时分秒赋了相同的值,但是闹钟闪灯程序依然不能亮。经多次软件仿真后,得出原来时钟的时十位地址是20H单元,而程序中定义了00H位,
因为00H位是在20H单元中的第一位,所以给闹钟的时分秒和时钟的时分秒赋了相同的值时,当程序运行时,一旦00H位改变,闹钟的时分秒和时钟的时分秒存储单元中的内容就不相同了。后来把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年XX月XX日。按下B键,可以修改日期。按下C键,可以查看闹钟时间,按下D键可以修改闹钟时间。按下SCAL键,可以启动秒表。按下STEP键,可以计时开始和暂停。按下MON键,可以切换时钟显示和秒表显示。
u 调试要点:首先确保各器件的完好性,其次检测各芯片的电源线和地线是否接触良好,然后焊接器件,接好电源用万用表检测各电源端、地端的状态是否正常。检查无误后插上AT89S52并烧写一简易的程序,观察电路是否能协同工作。最后烧写工作程序,根据显示现象调试程序直至成功。上电运行时,数码管开始显示00:00:00,时钟开始走时。
u 制作心得:在这次课程设计的调试过程中,遇到很多问题,如:由于跳转指令出错,导致整个程序在运行时进入死循环,修改时没有根据流程盲目查找原因浪费许多时间,又由于考虑不周,时钟显示29:89。该电路缺少整点报时功能,由于能力和时间问题只能到此为止,很是遗憾,但在查找资料的过程中学到了许多,同时在协作过程中增进同学间的友谊。
参考文献
【1】 陈石胜,单片机技术应用 . 广东: 广东省技师学院电气自动化专业教改教材,2007
【2】 李广第,单片机基础 . 北京: 北京航空航天大学出版社, 2001
【3】求是科技编著,单片机典型模块设计实例导航.北京:人民邮电出版社,2004
【4】孙涵芳,MCS-51系列单片机原理及应用 .北京:北京航空航天大学出版社.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 -
§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 -
第六章 项目产品规划 - 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项目管理与实施进度安排 - 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
展开阅读全文