目录
一、 设计任务和要求………………………………………….….3
(1)设计任务…………………………..…………………...…..…3
(2)设计要求…………………..……………..………………....…3
二、 设计方案与论证………………………………………….....3
三、 单元电路设计与参数计算………………………………….4
(1)时钟电路…………………………………………………….4
(2)按钮电路…………………………………………………….4
(3)显示电路…………………………………………………….5
(4)单片机……………………………………………………….5
四、 原理图及器件清单………………………………………….6
( 1 )总原理图…………………………………………………..…..6
(2)PCB图………………………………………………….…….7
(3)Proteus仿真图…………………………………………….……7
(4)元器件清单………………………………………..……….….8
五、 安装与调试……………………………………………..…..8
(1)安装………………………………………………………...8
(2)调试………………………………………………………...8
六、 性能测试和分析…………………………………………….9
七、 结论和心得………………………………………………….9
八、 参考文献……………………………………………….…...9
秒表设计
一、 设计任务和要求错误!未找到目录项。
(1)设计任务
用AT89C51设计一个3位的LED数码作为“秒表”。
(2)设计要求
显示时间为0.0-99.9秒,每0.1秒自动加1,另外设计一个“开始”键、一个“复位”键和一个“停止”键。秒表可单独分别计时,且最多可计5次。
二、方案设计与论证
本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。其模块电路如图2-1所示。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。 但根据显示方式的不同选择,我们可以有几种方案:
方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。
方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。
本小组尝试了各种方案,在此报告中以静态显示方式为例说明。(动态显示方式省略)
图2-1
三、单元电路设计与参数计算
注://单元电路设计中的网络标号的数字即为单片机的管脚//
(1)时钟电路
图3-1
时钟电路如图3-1所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。晶振频率根据设计需要设为12MHz,又根据谐振性质,电路中的电容C1、C2选择为30pF左右。该电容的的大少会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。
(2)按钮电路
图3-2a 图3-2b
A、复位按钮
根据计算容抗的公式以及并联电阻变小的性质,可以知道,当S13断开时,C3的容抗大,管脚9处的电位U9为电阻R3上的压降,因而U9为低电平,复位键无效。当S13按下时,R2与C3的并联阻抗变小,R3上的压降增大,U9为高电平,复位键有效,实现复位功能。本设计中C3取值22uF,电阻R2取值100欧姆,R3取值1K欧姆。具体电路如图3-2a所示。
B、开始,停止、翻页按钮
电路如图3-2b所示
(3)显示电路
P1口控制显示的是十位,p0口控制显示的是个位,P2口控制显示的是十分位。
不同的数码管显示方式,对应的最适合的共阴或者共阳级的数码管也不同。静态显示的适宜选共阳的数码管,动态显示的适宜选共阴的数码管。如果动态显示方式下选择共阳的数码管,位选端直接用单片机驱动则数码管的亮度不够,因而应该在位选端使用上拉电阻以提高数码管的驱动电流,但因为显示那个的数据段选的数目不同,故而需要用电阻对各段进行限流,以保证显示的每个数据亮度相同。相同情况下,静态显示的数码管的亮度要比动态的亮。
(4)单片机
单片机的程序可用汇编语言也可用C语言,为了提高使用汇编语言的能力,本设计特用了汇编语言了编写程序主程序流程图如下所示,具体程序见电子档。主程序流程图:
四、总原理图及元器件清单
(1)总原理图
(2)PCB图
(3)Proteus仿真图
(4)元器件清单
1) AT89C51的引脚图和数码管5101BS的引脚图
图4-3a AT89C51引脚图 图4-3b 5101引脚图
2)元器件总清单
连接器con2
五、安装与调试
(1)安装
制板的顺序依次是:画原理图、做封装、在原理图中添加元器件对应的封装、布PCB板、改焊盘大少、打印PCB图、用快速制板机将PCB图烤制到铜板上、腐蚀铜板、钻孔、放置元器件、烙铁焊好器件。一块电路板就安装完毕了。
(2)调试
将外部电源接至电路板上,检验电路板是否完全实现设计要求。本设计中,发现按钮功能完全符合设计要求,但是数码管的显示中有些段码不亮,从而显示的数据乱码,用万用表检测对应的管脚是否有电压,发现焊盘有虚焊,引脚与引脚之间有短路,排查后电路板实现设计要求。
六、性能测试与分析
所制电路板虽然能实现设计中要求的功能,但是在实际使用中还是存在着许多缺陷。这块电路板不能随意查看记录的数据,而是必须在计完五次数据后才能依次的翻页查看,复位后所计数据便会丢失,不能翻看历史,所计数据组数不能满足现实需要。
七、结论与心得
在这三周的课程设计中,不管是在软件方面还是硬件方面我都有了更深入的学习。
………
八、参考文献
(1)单片机原理及接口技术 张毅刚 彭喜元著 人民邮电出版社
(2)单片机课程设计实例指导 李光飞等编著 北京航空航天大学出版社
(3)51系列单片机原理、开发与应用实例 孙进平等编著
(4)单片机程序设计实例 先锋工作室编著 清华大学出版社
(5)电子工程师之家 、豆丁网 、百度、搜狗、电子工程专辑 等等
附程序如下:
D EQU 60H
E EQU 61H
F EQU 62H
G EQU 63H
H EQU 64H
I EQU 65H
ORG 0000H
LJMP MAIN
ORG 000BH ;定时器T0的入口地址
LJMP DINGSHI
ORG 0013H ;外部中断1的入口地址
LJMP STOP1
ORG 0030H ;主程序入口地址
MAIN: MOV P0,#0C0H ;置初值
MOV P2,#0C0H
MOV P1,#0C0H
MOV DPTR,#TABLE ;数据指针指向表头地址
SETB EA ;开中断
SETB EX0
SETB EX1
SETB ET0
SETB PX0 ;设中断优先级
SETB PX1
MOV TMOD,#01H ;工作方式为方式1
;********************************************
;开始及计数程序
;********************************************
START: MOV R0,#40H
MOV R1,#50H
MOV R2,#00H
CLR P1.0
MOV TH0,#0D8H ;置计数初始值
MOV TL0,#0F0H
MOV R3,#00H
MOV R4,#00H
MOV R7,#00H
MOV B,#10
MOV SP,#30H
MOV D,#60H
MOV E,#61H
MOV F,#62H
MOV G,#63H
MOV I,#65H
MOV R5,#05
XUNHUAN: JB P1.7,START1 ;p1.7=0是开始
LCALL DELAY10 ;按键消抖
JB P1.7,XUNHUAN
JNB P1.7,$
LJMP GN1
LJMP XUNHUAN
START1: JB P3.0,XUNHUAN
LCALL DELAY10
JB P3.0,XUNHUAN
JNB P3.0,$
LCALL FANYE
LJMP XUNHUAN
;********************************************
;翻页模块
;********************************************
FANYE: MOV A,@R0
MOV R3,A
MOV A,@R1
MOV R4,A
DEC R5
CJNE R5,#04,LOP1
MOV A,D
MOV R7,A
LJMP L1
LOP1: CJNE R5,#03,LOP2
MOV A,E
MOV R7,A
LJMP L1
LOP2: CJNE R5,#02,LOP3
MOV A,F
MOV R7,A
LJMP L1
LOP3: CJNE R5,#01,LOP4
MOV A,G
MOV R7,A
LJMP L1
LOP4: CJNE R5,#00,FANYE
MOV A,I
MOV R7,A
LJMP L1
L1: INC R0
INC R1
INC R2
CJNE R2,#5,LOOP2
MOV R0,#40H
MOV R1,#50H
MOV R2,#00H
LOOP2:LCALL XIANSHI
RET
;********************************************
;数码管记录程序
;********************************************
GN1: SETB TR0
LOOP: CJNE R2,#05H,LOOP
MOV R0,#40H
MOV R1,#50H
MOV R2,#00H
CLR EA
AJMP XUNHUAN
;********************************************
;1毫秒延时子程序
;********************************************
DELAY1: MOV R6,#2
DL1: MOV H,#248
DJNZ H,$
DJNZ R6,DL1
RET
;********************************************
;10毫秒延时子程序
;********************************************
DELAY10: MOV R6,#20
DL2: MOV H,#248
DJNZ H,$
DJNZ R6,DL2
RET
;********************************************
;外部中断1中断程序,停止模块
;********************************************
STOP1 : PUSH ACC
PUSH PSW
LCALL DELAY10 ;延时10毫秒消抖
JB P3.3, FAN1
JNB P3.3,$
MOV A, R3
MOV @R0 , A
MOV A, R4
MOV @R1, A
DEC R5
CJNE R5, #04, LOP5
MOV A, R7
MOV D, A
LJMP L4
LOP5: CJNE R5, #03, LOP6
MOV A, R7
MOV E, A
LJMP L4
LOP6: CJNE R5, #02, LOP7
MOV A, R7
MOV F, A
LJMP L4
LOP7: CJNE R5, #01, LOP8
MOV A, R7
MOV G, A
LJMP L4
LOP8: CJNE R5, #00, STOP1
MOV A, R7
MOV I,A
LJMP L4
L4: INC R0
INC R1
INC R2
FAN1: POP PSW
POP ACC
RETI
;********************************************
;显示子程序
;********************************************
XIANSHI:
MOV A ,R3 ;扫描十分位上的数字
MOV DPTR ,#TABLE
MOVC A ,@A+DPTR
MOV P2 ,A
MOV A ,R4 ;扫描个位上的数字
MOV DPTR ,#TABLE
MOVC A ,@A+DPTR
MOV P0 ,A
MOV A ,R7 ;扫描十位上的数字
MOV DPTR ,#TABLE
MOVC A ,@A+DPTR
MOV P1 ,A
RET
;********************************************
;定时器T0中断程序
;********************************************
DINGSHI:PUSH ACC
PUSH PSW
DJNZ B,DH1
MOV B,#10
AJMP COUNT
COUNT: INC R3
CJNE R3,#0AH,DH2
MOV R3,#00H
INC R4
CJNE R4,#0AH,DH2
MOV R4,#00H
INC R7
CJNE R7,#0AH,DH2
MOV R7,#00H
DH1: MOV TH0,#0D8H
MOV TL0,#0F0H
SETB TR0
DH2: POP PSW
POP ACC
LCALL XIANSHI
RETI
TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
单片机课程设计报告
院 系:****
班 别:****
课程名称:****
姓 名:****
学 号:****
指导老师:****
日期:****年**月**日
用89C51设计一个2位的LED数码作为“秒表”。显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。能存储三组计时。按一次开始键,开始计数,第二次按开始键后,计时停止。之后再按开始键,则轮流显示存储的三个计时值,直到按复位键后,再按开始键,则开始重新计时。
二、 设计思想和设计说明
本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。设计中包括硬件电路的设计和系统程序的设计,其硬件电路主要有主控制器、计时与显示电路和复位电路等。主控制器用AT89C52,显示电路采用共阴极LED数码管显示计时时间。利用中断系统使其能实现开始暂停的功能。P3.2,P3.3开口接2个按钮,分别实现开始,暂停,复位的功能。电路原理图设计最基本得要求是正确性,其次布局合理,最后在正确性和布局合理的前提下力求完美。
三、 硬件原理框图
四、 硬件原理图与其软件配合
五、 程序存储器和数据存储器的单元分配
1、程序存储器
2、数据存储器
六、 程序流程图
七、 源程序清单
======================================================
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP X0_INT
ORG 000BH
AJMP T0_INT
ORG 0013H
AJMP X1_INT
MAIN:
MOV TMOD,#01H ;T0定时方式1
MOV TH0, #(65536-50000) / 256 ;50ms@12MHz
MOV TL0, #(65536-50000) MOD 256;
SETB TR0
SETB ET0 ;开启定时中断
SETB EX0
SETB EX1
SETB EA ;定时器初始化结束,下面循环显示即可
MOV R1, #99H ;0~99计数.
MOV R7, #1 ;50ms计数.
MOV P0, #3FH
MOV P2, #3FH
LOOP:
SJMP LOOP
;-----------------------------------------------------------
DELAY: ;延时子程序.
AA4: MOV R4, #0
DJNZ R4, $
DJNZ R4, $
RET
;-----------------------------------------------------------
X0_INT: ;启动/停止
CPL F0
RETI
;-----------------------------------------------------------
X1_INT: ;清零
MOV R1, #0
MOV P0, #3FH
MOV P2, #3FH
RETI
;-----------------------------------------------------------
T0_INT: ;50ms中断执行一次.
MOV TL0, #(65536-50000) MOD 256;
MOV TH0, #(65536-50000) / 256 ;50ms@12MHz
DJNZ R7, T0_END ;中断不到20次.
MOV R7, #20
JNB F0, T0_END
MOV A, R1
ADD A, #1
DA A
MOV R1, A
ANL A, #0FH
MOV DPTR, #TAB
MOVC A, @A+DPTR ;查出段码
MOV P2, A
MOV A, R1
SWAP A
ANL A, #0FH
MOVC A, @A+DPTR ;查出段码
MOV P0, A ;显示十位数.
T0_END:
RETI
;-----------------------------------------------------------
TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FH
END
===========================================================
八、 芯片资料
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52实物图 图2 AT89C52引脚图
主要功能特性:
1、兼容MCS51指令系统
2、8k可反复擦写(大于1000次)Flash ROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
管脚说明:
VCC、VPP:接电压。 VSS:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,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编程和校验时接收高八位地址信号和控制信号。P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入"1"后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,口管脚 备选功能
P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部 中断1)
P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通) 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)。
九、 收获体会
通过这次的秒表设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自己的所掌握的知识。本次设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。经过几天的奋战,我感受很深。
在设计过程中深感自己在培养动手能力这方面还需很大的努力。单片机课程设计不仅给我提供了一个很好的展现应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核。在设计的过程中我也不可避免的遇到了很多的问题。尤其是在调试过程中,会因为某些原因出不来结果,但通过老师对我的帮助最后还是成功的完成了这次的设计。经过过这次的系统设计,我也发现了不少自己不会的知识,通过查询各方面资料,我也进步了很多,也学会了很多上课时没掌握的东西, 最后在调试结果出来后,我更是无比的兴奋,无比的自豪。总之,通过这次电子课程设计,我对自己的知识有了更好的掌握和应用,这使我在以后的学习和生活中受用终身。
单片机的时钟设计小组成员班级课程老师1目录一硬件结构31硬件原理3189C52311硬件原理312主要功能特性313管脚说明414…
单片机课程设计报告设计课题秒表设计专业班级电子班学生姓名学号指教教师设计时间20xx年5月306月19日目录一设计任务和要求31设…
XXXXXX学院51单片机系统设计课程设计报告题目专业班级学生姓名学号指导教师分数摘要本设计是一个秒表计时器采用51单片机实现电路…
广西科技大学单片机课程设计说明书课题名称单片机秒表系统的设计系别职业技术教育学院专业电子信息工程班级电子Z112姓名学号红头巾组合…
本科学生设计性实验报告学号姓名学院物理与电子专业班级实验课程名称简易秒表设计教师及职称至填报时间日云南师范大学教务处编印1摘要单片…
数字秒表课程设计总结报告一课题名称数字秒表设计二内容摘要本实验要求设计一个计数范围在0099秒的数字秒表电路设计基本包括01秒脉冲…
XXXXXX学院51单片机系统设计课程设计报告题目专业班级学生姓名学号指导教师分数摘要本设计是一个秒表计时器采用51单片机实现电路…
JINGCHUUNIVERSITYOFTECHNOLOGY电子信息工程学院单片机原理与应用技术课程设计报告电子秒表系统专业班级11…
电子技术设计性实训报告学号211002146姓名邱富烨同组人夏文彬班级指导老师林雪健日期20xx0907目录一实训目的3二设计功能…
单片机课程设计报告设计课题秒表设计专业班级电子班学生姓名学号指教教师设计时间20xx年5月306月19日目录一设计任务和要求31设…