51单片机数码管时钟电路的设计_AT89C51

51单片机数码管时钟电路的设计_AT89C51
51单片机数码管时钟电路的设计_AT89C51

广东石油化工学院

《51单片机原理与实践》课程设计报告

学院计算机与电子信息学院

专业

班级

学号

姓名

指导教师

课程成绩

完成日期 2010年12月27日

数码管时钟电路的设计

一、设计目的:

通过这次课程设计掌握单片机系统的基本设计步骤及设计思路,掌握汇编语言的用法及各种指令的含义,比较熟练的运用指令进行单片机系统的设计的,熟悉用KEIL软件进行汇编语言的汇编,以及把代码写入实验板中,观测代码结合实际的运行结果后进行调整,体会到编程的分析问题、确定算法、画程序流程图、编写程序、程序功能模块化的优点的各各步骤。

二、设计要求:

LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用AT89C2051单片机,使用3V电池供电,只使用一个按键开关即可进入调时、省电(不显示LED数码管)和正常显示三种状态。

三、设计实验内容:

1. 硬件的设计

其采用AT89C51单片机应用设计,LED显示采用动态扫描方式实现,P0口输出段码数据,P2口输出位码数据,P1.1、P1.2接按钮开关。为了提供LED数码管的驱动电流,采用6MHz晶振。

2. 系统总体分析

系统主要包含四大模块:显示模块、时间计时模块、模式切换模块和模式设置模块。

显示模块:主要由主循环负责。内存中开辟了一段8字节的内存空间,

用作数据显示的字符缓冲区。主循环不断将缓冲区中的字符呈现至数码管。 ● 时间计时模块:电子钟的核心模块,记录了时间的时、分、秒信息。 ●

模式切换模块(MODE ):切换电子钟的设置模式,包括时设置、分设置、秒设置、闹铃开关设置、闹铃时设置和闹铃分设置。相关数据被设置时将闪烁显示。

模式设置模块(CONFIG ):通过判断设置模式(MODE ),执行相应的设置。如时、分、秒的增1以及闹铃开关的变换。

另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE 键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms ,用以消除机械抖动。

主循环流程图大致如下:

图(一)主循环流程图

定时器1中断服务程序流程图如下:

开始

键被按下

登记相应功能

数码管显示

定时器1中断

MODE CONFIG

logf unc = ?

执行MODE 执行CONFIG

结束

图(二)定时器1中断服务程序流程图

3. 系统主要程序的设计

1)主程序

本设计中的主程序主要负责对键盘扫描及显示数据,还包括判断是否闹钟正在活动。若键盘中的P1.6(模式键)或P1.7(设置键)被按下,登记将被执行的功能,主循环不负责功能模块的执行。若闹钟正在活动,调用蜂鸣函数。其中bPalse标识了一秒的前半秒和后半秒,是为了控制显示数据的半秒闪烁。主函数还包含初始化操作,以下省略。

loop:

MOV B, #01111111B;位选通信号

MOV R0, #prebuf - 01H ;数据缓冲区

nextnu m:

ACALL keyscan ;扫描键盘

INC R0

MOV A, @R0

PUSH ACC

MOV A, B

RL A

MOV B, A

JB b Palse, show

OR L A, dmask

JNB bAlaIng, show

MOV led, #0FFH

ACALL beeponce 若闹铃活动,调用蜂鸣函数

DEC SP

show:

PUSH ACC

ACALL displayone 在特定数码管显示数据。

DEC SP

DEC SP

ACALL delay

CJNE R0, #prebufend, nextnu m

SJMP loop

keyscan:

JNB keym, keymode ;若切换键被按下,登记“切换”功能

JNB keyc, keyconf ;若设置键被按下,登记“设置”功能

RET

;=====================

;

;log fu nction 'mode'

;

;=====================

keymode:

MOV funclog, #01H ;key act

ACALL funcperform ;激活“功能执行模块”(见下文),

RET

;=====================

;

;log fu nction 'config'

;

;=====================

keyconf:

MOV funclog, #02H

ACALL funcperform ;激活“功能执行模块”(见下文)

RET

2)显示子程序

在特定数码管显示数据,通过堆栈传递参数。

第一个参数是待显示的字符,第二个参数是位选通信号。函数通过查字形码表将字形显示至数码管。

displayone:

PUSH ACC

PUSH PSW

MOV A, R0

PUSH ACC

PUSH B

MOV PSW, #00H

MOV A, SP

SUBB A, #07H

MOV R0, A

MOV A, @R0

INC R0

MOV B, @R0

PUSH DPH

MOV DPTR, #metrix

MOVC A, @A + DPTR

JNB b Palse, noft

ANL A, ft

noft:

MOV lmask, B

MOV led, A

POP DPH

POP DPL

POP B

POP ACC

MOV R0, A

POP PSW

POP ACC

RET

3)定时器TO中断服务程序

电子钟的计秒程序,负责计算时间。act: ;main timer actor

CJNE R2, #0B H, con

CLR b Palse ;palse per second con:

DJNZ R2, leave

MOV R2, #14H

PUSH ACC

PUSH PSW

MOV PSW, #00H

MOV A, s ;s

INC A

DA A

MOV s, A

CJNE A, #60H, incn

MOV s, #00H

MOV A, m ;m

INC A

DA A

MOV m, A

CJNE A, #60H, incn

MOV m, #00H

MOV A, h ;h

INC A

DA A

MOV h, A

CJNE A, #24H, incn

MOV h, #00H

incn:

SETB b Palse

JNB bAlaOn, alarmoff

ACALL checkala ;check alarm when alarm is ON alarmoff:

MOV A, npage

ANL A, #02H

JNZ skip

ACALL prepare

skip:

POP PSW

POP ACC

leave:

MOV TH0,#03CH

MOV TL0,#0B0H

RETI

4)模式切换程序

切换设置模式,包括时间时设置、时间分设置、时间秒设置、闹铃开关设置、闹铃时设置、闹铃分设置。

mode: ;mode

;SETB P3.2

PUSH ACC

PUSH PSW

PUSH DPL

PUSH DPH

JNB bAlaIng, modeskip

SETB bKick ;stop alarm

CLR bAlaIng

SJMP modeleave

modeskip:

MOV npage, #00H

MOV DPTR, #maskdat

MOV A, cmode

INC A

CJNE A, #07H, enmode

MOV A, #00H

enmode:

MOV cmode, A

ANL A, #04H

JZ notalapage

MOV npage, #02H

ACALL preala ;时钟调整页准备

notalapage:

MOV A, cmode

MOVC A, @A + DPTR

MOV d mask, A ;设置时闪烁

modeleave:

POP DPH

POP DPL

POP PSW

POP ACC

RET

5)模式设置程序

对时间量执行加1,特别的闹铃开关执行开关设置。

conf: ;conf

;SETB P3.3

PUSH ACC

PUSH PSW

MOV PSW, #00H

MOV A, cmode

PUSH DPL

PUSH DPH

JNB bAlaIng, confskip

;SETB bKick ;stop alarm

;CLR bAlaIng

SJMP confleave

confskip:

MOV DPTR, #confset

RL A

JMP @A + DPTR

set1: ;时设置

MOV A, h

INC A

DA A

MOV h, A

CJNE A, #24H, notset

MOV h, #00H

SJMP notset

set2: ;分设置

MOV A, m

INC A

DA A

MOV m, A

CJNE A, #60H, notset

MOV m, #00H

SJMP notset

set3: ;秒设置

MOV A, s

INC A

DA A

MOV s, A

CJNE A, #60H, notset

MOV s, #00H

SJMP notset

setae:

C PL bAlaOn ;闹钟开关

SJMP notseta

setah:

MOV A, ah ;闹钟时设置

INC A

DA A

MOV ah, A

CJNE A, #24H, notseta

MOV ah, #00H

SJMP notseta

setam:

MOV A, am ;闹钟分设置

INC A

DA A

MOV am, A

CJNE A, #60H, notseta

MOV am, #00H

notseta:

ACALL preala

CLR bKick

SJMP confleave

notset:

ACALL prepare

confleave:

POP DPH

POP DPL

POP PSW

POP ACC

RET

confset:

SJMP confleave

SJMP set1

SJMP set2

SJMP set3

SJMP setae

SJMP setah

SJMP setam

6)功能执行程序

执行程序负责执行被登记的功能,功能由主循环扫描键盘并登记。主循环中,当扫描到有键盘按下时,登记下将被执行的功能,然后启动定时器1,定时器1的中断服务程序即是功能执行程序,中断程序分析并执行被登记的功能。

encperform:

CLR TR1 ;act once

PUSH ACC

PUSH PSW

MOV A, funclog

CJNE A, #01H, encconf

JNB keym, encperformleave ;action just at bu tton u p;

ACALL mode ;d o 'm ode'fu nction

SJMP encperformleave

encconf:

CJNE A, #02H, encperformleave

JNB keyc, encperformleave ;action just at button up;

ACALL conf ;d o 'config' function

encperformleave:

POP PSW

POP ACC

RETI

四、完整源代码

s EQU 30H

m EQU 31H

h EQU 32H

dmask EQU 33H

cmode EQU 34H

ft EQU 36H

prebuf EQU 37H ;8 byte buffer prebufend EQU 3EH

am EQU 3FH ;alarm minite

ah EQU 40H ;alarm hour

npage EQU 41H ;function page

funclog EQU 42H ;func to act

stack EQU 4FH

;pin

led EQU P0

lmask EQU P2

beep EQU P3.3

keym EQU P1.6 ;key 'm ode'

keyc EQU P1.7 ;key 'config'

;bit addr

bPalse EQU 00H

bAlaIng EQU 01H

bAlaOn EQU 02H

bKick EQU 03H

;metrix element

m_none EQU 0AH

m_o EQU 0BH

m_f EQU 0CH

m_n EQU 0DH

org 0000H

LJMP start

org 0003H

LJMP modelogger ;INT0 to mode

org 000BH

LJMP act ;timer

org 0013H

LJMP conflogger ;INT1 to config

org 001BH

LJMP encperform ;performer

org 0100H

start:

MOV S P, #stack

MOV TMOD,#11H

MOV TH0,#3C H

MOV TL0,#0B0H

MOV R2, #14H ;R2 used by T0

MOV s, #00H

MOV m, #00H

MOV h, #00H

MOV d mask, #00H

MOV cmode, #00H

MOV npage, #00H

MOV ah, #23H

MOV am, #59H

SETB EA

SETB ET0 ;T0

SETB PT0

SETB TR0

SETB ET1 ;T1

SETB EX0 ;INT0

SETB IT0

SETB EX1 ;INT1

SETB IT1

SETB P3.2

SETB P3.3

SETB keym

SETB keyc

CLR bAlaIng

CLR bAlaOn

CLR bKick

loop:

MOV B, #01111111B

MOV R0, #prebuf - 01H

nextnu m:

ACALL keyscan

INC R0

MOV A, @R0

PUSH ACC

MOV A, B

RL A

MOV B, A

JB b Palse, show

OR L A, dmask

JNB bAlaIng, show

MOV led, #0FFH ;clr led when alarm ACALL beeponce

DEC SP

SJMP loop

show:

PUSH ACC

ACALL displayone

DEC SP

DEC SP

ACALL delay

CJNE R0, #prebufend, nextnu m

SJMP loop ; end start beeponce:

C PL beep

MOV R5, #02H

beeploop2:

MOV R6, #0FFH

beeploop1:

NOP

DJNZ R6, beeploop1

DJNZ R5, beeploop2

RET ;end beeponce

;=====================

;;display one character

;

;@param char Character to display

;@param mask Position character to display

;=====================

displayone:

PUSH ACC

PUSH PSW

MOV A, R0

PUSH ACC

PUSH B

MOV PSW, #00H

MOV A, SP

SUBB A, #07H

MOV R0, A

MOV A, @R0

INC R0

MOV B, @R0

PUSH DPL

PUSH DPH

MOV DPTR, #metrix

MOVC A, @A + DPTR

JNB b Palse, noft

ANL A, ft

noft:

MOV lmask, B

MOV led, A

POP DPH

POP DPL

POP B

POP ACC

MOV R0, A

POP PSW

POP ACC

RET ;end displayone

delay:

PUSH ACC

MOV A, R5

PUSH ACC

MOV A, R6

PUSH ACC

MOV R5, #03H

dloopo:

MOV R6, #0FFH

dloop:

NOP

DJNZ R6, dloop

DJNZ R5, dloopo

POP ACC

MOV R6, A

POP ACC

MOV R5, A

POP ACC

RET ;end delay

ORG 0200H

;=====================

;

;prepare time datas

;to the display buffer

;

;=====================

prepare:

MOV ft, #11011111B;enable ft

PUSH ACC

PUSH PSW

PUSH B

MOV A, R1

PUSH ACC

MOV R1, #prebuf

MOV@R1, #m_none

INC R1

MOV@R1, #m_none

INC R1

MOV A, h ;h

MOV B, A

SWAP A

ANL A, #0FH

MOV@R1, A

ANL B, #0FH

INC R1

MOV@R1, B

MOV A, m ;m

MOV B, A

SWAP A

ANL A, #0FH

INC R1

MOV@R1, A

ANL B, #0FH

MOV@R1, B

MOV A, s ;s

MOV B, A

SWAP A

ANL A, #0FH

INC R1

MOV@R1, A

ANL B, #0FH

INC R1

MOV@R1, B

POP ACC

MOV R1, A

POP B

POP PSW

POP ACC

RET ;end prepare ;=====================

;

;prepare alarm datas

;to the display buffer

;

;=====================

preala:

MOV ft, #0FFH ;no ft

PUSH ACC

PUSH PSW

MOV R1, #prebuf

MOV@R1, #m_o

INC R1

JNB bAlaOn, alaoff

MOV@R1, #m_n

INC R1

MOV@R1, #m_none

SJMP alacon

alaoff:

MOV@R1, #m_f

INC R1

MOV@R1, #m_f

alacon:

INC R1

MOV@R1, #m_none

MOV A, ah

SWAP A

ANL A, #0FH

INC R1

MOV@R1, A

MOV A, ah

ANL A, #0FH

MOV@R1, A

MOV A, am

SWAP A

ANL A, #0FH

INC R1

MOV@R1, A

MOV A, am

ANL A, #0FH

INC R1

MOV@R1, A

POP PSW

POP ACC

RET ;end preala

ORG 0300H

;=====================

;

;perform action

;

;=====================

encperform:

CLR TR1 ;act once

PUSH ACC

PUSH PSW

MOV A, funclog

CJNE A, #01H, encconf

JNB keym, encperformleave ;action just at bu tton u p;

ACALL mode ;d o 'm ode'fu nction SJMP encperformleave

encconf:

CJNE A, #02H, encperformleave

JNB keyc, encperformleave ;action just at button up;

ACALL conf ;d o 'config' function encperformleave:

POP PSW

POP ACC

RETI

;=====================

;

;prepare to d o function

;

;=====================

funcperform:

MOV TH1, #0D8H

MOV TL1, #0F0H

SETB TR1

RET

;=====================

;

;log fu nction 'mode'

;

;===================== modelogger:

MOV funclog, #01H

ACALL funcperform

RETI

;=====================

;

;log fu nction 'config'

;

;===================== conflogger:

MOV funclog, #02H

ACALL funcperform

RETI

ORG 0400H

;=====================

;

;mode

;

;to change function

;or stop alarm when

;alarming

;

;=====================

mode: ;mode

;SETB P3.2

PUSH ACC

PUSH PSW

PUSH DPL

PUSH DPH

JNB bAlaIng, modeskip

SETB bKick ;stop alarm

CLR bAlaIng

SJMP modeleave

modeskip:

MOV npage, #00H

MOV DPTR, #maskdat

MOV A, cmode

INC A

CJNE A, #07H, enmode

MOV A, #00H

enmode:

MOV cmode, A

ANL A, #04H

JZ notalapage

MOV npage, #02H

ACALL preala

notalapage:

MOV A, cmode

MOVC A, @A + DPTR

MOV d mask, A

modeleave:

POP DPH

POP DPL

POP PSW

POP ACC

RET ;end mode

;=====================

;

;conf

;

;to change setting

;that the 'mode' decided

;

;=====================

conf: ;conf

;SETB P3.3

PUSH ACC

PUSH PSW

MOV PSW, #00H

MOV A, cmode

PUSH DPL

PUSH DPH

JNB bAlaIng, confskip

;SETB bKick ;stop alarm

;CLR bAlaIng

SJMP confleave

confskip:

MOV DPTR, #confset

RL A

JMP @A + DPTR

set1:

MOV A, h

INC A ;h

DA A

MOV h, A

CJNE A, #24H, notset

MOV h, #00H

SJMP notset

set2:

MOV A, m

INC A ;m

DA A

MOV m, A

CJNE A, #60H, notset

MOV m, #00H

SJMP notset

set3:

MOV A, s

INC A ;s

DA A

MOV s, A

CJNE A, #60H, notset

MOV s, #00H

SJMP notset

setae:

C PL bAlaOn ;ala enable

SJMP notseta

setah:

MOV A, ah ;ala h

INC A

DA A

MOV ah, A

CJNE A, #24H, notseta

MOV ah, #00H

SJMP notseta

setam:

MOV A, am ;ala m

INC A

DA A

MOV am, A

CJNE A, #60H, notseta

MOV am, #00H

notseta:

ACALL preala

CLR bKick

SJMP confleave

notset:

ACALL prepare

confleave:

POP DPH

POP DPL

POP PSW

POP ACC

RET

confset:

SJMP confleave

SJMP set1

SJMP set2

SJMP set3

SJMP setae

SJMP setah

SJMP setam ; end conf

ORG 0500H

keyscan:

JNB keym, keymode

JNB keyc, keyconf

RET

;=====================

;

;log fu nction 'mode'

;

;=====================

keymode:

MOV funclog, #01H ;key act

ACALL funcperform

RET

;=====================

;

;log fu nction 'config'

;

;=====================

keyconf:

MOV funclog, #02H

ACALL funcperform

RET

ORG 0600H

act: ;main timer actor

CJNE R2, #0B H, con

CLR b Palse ;palse per second con:

DJNZ R2, leave

MOV R2, #14H

PUSH ACC

PUSH PSW

MOV PSW, #00H

MOV A, s ;s

INC A

DA A

MOV s, A

CJNE A, #60H, incn

MOV s, #00H

MOV A, m ;m

INC A

DA A

MOV m, A

CJNE A, #60H, incn

MOV m, #00H

MOV A, h ;h

INC A

DA A

MOV h, A

CJNE A, #24H, incn

MOV h, #00H

incn:

SETB b Palse

JNB bAlaOn, alarmoff

ACALL checkala ;check alarm when alarm is ON alarmoff:

MOV A, npage

ANL A, #02H

JNZ skip

ACALL prepare

skip:

POP PSW

POP ACC

leave:

MOV TH0,#03CH

MOV TL0,#0B0H

RETI ;end act

checkala:

MOV A, m

CJNE A, am, alashu t

MOV A, h

CJNE A, ah, alashu t

JB bKick, notala ;ala stop

SETB bAlaIng

SJMP notala

alashu t:

CLR bAlaIng

CLR bKick

notala:

RET

maskdat:

DB 00000000B, 00001100B, 00110000B, 11000000B, 00000111B, 00110000B, 11000000B metrix:

;DB 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F

DB 0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60

DB 0xFF ;0X0A: NONE

DB 0X27 ;0X0B: 'O'

DB 0XB1 ;0X0C: 'F'

DB 0X37 ;0x0D: 'n'

END

单片机时钟电路的设计

单片机时钟电路的设计 单片机内部虽有振荡电路,但要形成时钟必须在外总附加电路。 MCS-51单片机的时钟产生方法有如下两种。 1内部时钟方式 利用芯片内部的振荡电路,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出时的时钟信号。 最常用的内部时钟方式是采用外接晶体(在频率稳定性要求不高而希望尽可能廉价时,可选用陶瓷谐振器)和电容组成的并联谐振回路,HMOS型和CHMOS型单片机和并联,谐振回路及参数相同。 振荡晶体可在1. 2MHz~12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,CX1和CX2可在20p~100pF间取值,但在60PF~70PF时振荡器有较高的频率稳定性。 在设计PCB板时,晶体或陶瓷谐振器和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保护振荡电路稳定可靠的工作。为了提高温度稳定性,采用NPO电容。2外部时钟方式 外部时钟方式是利用外部振荡信号源直接接入XRAL1或XTAL2。由于HMOS和CHMOS单片机内部时钟进入的引脚不同(CHMOS型单片同由XTAL1进入,HMOS 型单片机由XTAL2进入),其外部振荡信号源的接入方法也不同。HMOS型单片机的外部振荡信号接至XTAL2,而内部的反相放大器的输入端XTAL1应接地。由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上拉电阻。而XTAL2不可以接地。 在CMOS电路中,因内部时钟引入端取自反相放大器的输入端(即与非门的输入端),故采用外部振荡信号源时接线方式与HNOS型有所不同,外部信号接至XTAL1,而XTAL2不可以接地。外部振荡信号通过去一个2分频的触发器而成为一个时钟信号。故对外部信号的占空比没什么要求,但高电平持续时间和低电平持续时间应大于20ns.

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

基于51单片机的电子台历设计

摘要 本设计是一个基于单片机AT89S51的简易电子台历,附有复位电路,时钟电路,键盘电路。复位电路是单片机的初始化操作,除了正常的初始化外,当程序运行出错后或者操作失误使系统进入死锁状态时,为摆脱困境,也需要能够通过独立式键盘电路进行启动,调整,再运行,时钟电路采用12MHZ的晶振,作为系统的时钟源,具有较高的准确性。 在上电或者复位时数码管显示年,月,日,时,分,秒。A键用于模式调整,形成一个循环,按一次键,即对秒调整。再按一次对分调整,如此循环。B键用于按下A键之后进行加1的操作,按一次加1,C键用于减1的操作,按一次减1。能够完成从00时00分00秒到23时59分59秒的循环计时,过23时59分59秒,日期增加1,当日期达到1个月后,月进位1,满12个月后,年进位1,年的首2位保持不变,始终为20。单片机并行口的电子台历的设计在AT89S51的P0口和P2口外接由14个LED数码管(LED7~LED0)构成的显示器,用P0口作LED的段码输出口(P0.0~P0.7对应于LED的a~dp),P2.7~P2.0作LED的段码年月日的位控输出线(P2.7~P2.0对应于LED7~LED0),P1.7~P1.0对应时间的数码管,P3口外接三个按键A、B、C(对应于P3.0~P3.2)。数码管为4位一体的共阳极的数码管,数码管采用动态扫描法,从右往左依次点亮,显示数字。 关键字:单片机、电子台历、数码管 ABSTRACT The design is a single electrical calendar basing SCMC of AT89S51. There are restoration circuit, clock circuit and keyboard circuit. Restoration circuit is used as an original operation, besides normal start-up, when the program runs mistakenly and system loses its order ,in order to get rid of the trouble, it also need to restart ,adjust and run through keyboard. Clock circuit uses 12MHZ Crystal as the source of the calendar ,with a high accuracy. When the system starts, the display shows year, month ,day, week and time the A keyboard is used to start and adjust, the B keyboard is used to add 1,when press it ,the date will add 1, the C keyboard is used to minus 1, when press it , the date will minus 1.It can make a cycle from 00:00 to 23:59:59.The display includes 14 LEDS, the SCMC joins the display in the P1, P0 ports and P2 ports, the SCMC joins the keyboards in the P3 scan, lighting the LEDS from right to left , showing the numbers. Keywords: SCMC, Calendar LED

基于51单片机的实时时钟设计报告

课程设计(论文)任务书 信息工程学院信息工程专业(2)班 一、课程设计(论文)题目嵌入式课程设计 二、课程设计(论文)工作自 2014 年 6 月 9 日起至2014年 6月15日止。 三、课程设计(论文) 地点: 5-402 单片机实验室 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握单片机各功能模块的基本工作原理; (2)培养学生单片机应用系统的设计能力; (3)使学生能够较熟练地使用proteus工具完成单片机系统仿真。 (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析所设计系统中各功能模块的工作原理; (2)选用合适的器件(芯片); (3)提出系统的设计方案(要有系统电路原理图); (4)对所设计系统进行调试。 2)创新要求: 在基本要求达到后,可进行创新设计,如改善单片机应用系统的性能。 3)课程设计论文编写要求 (1)要按照书稿的规格打印撰写论文。 (2)论文包括目录(自动生成)、摘要、正文、小结、参考文献、附录等。 (3)论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:30分; (3)完成调试:20分; (4)回答问题:20分; (5)格式规范性(10分)。

5)参考文献: (1)张齐.《单片机原理与嵌入式系统设计》电子工业出版社 (2)周润景.《PROTUES入门实用教程》机械工业出版社 (3)任向民.《微机接口技术实用教程》清华大学出版社 (4)https://www.360docs.net/doc/0214610183.html,/view/a5a9ceebf8c75fbfc77db2be.html 6)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 系统设计与调试 4 实验室 撰写论文2图书馆、实验室 学生签名: 2014 年6 月9日 课程设计(论文)评审意见 (1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(30分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差(); (4)回答问题(20分):优()、良()、中()、一般()、差(); (5)格式规范性(10分):优()、良()、中()、一般()、差(); 评阅人:职称: 2014 年6 月15 日

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

基于51单片机的万年历的设计

单片机课程实训SCM PRACTICAL TRAINING

目录 第一部分课程设计任务书 (1) 一、课程设计题目 (1) 二、课程设计时间 (1) 三、实训提交方式 (1) 四、设计要求 (1) 第二部分课程设计报告 (2) 一、单片机发展概况 (2) 二、MCS-51单片机系统简介 (2) 三、设计思想 (3) 四、硬件电路设计 (3) 1. 总体设计 (3) 2. 晶振电路 (4) 3. 复位电路 (4) 4. DS1302时钟电路 (5) 5. 温度采集系统电路 (5) 6. 按键调整电路 (6) 7. 闹钟提示电路 (6) 五、软件设计框图 (7) 六、程序源代码 (8) 1. 主程序 (8) 2. 温度控制程序 (11) 3. 日历设置程序 (13) 4. 时钟控制程序 (18) 5. 显示设置程序 (20) 七、结束语 (23) 八、课程设计小组分工 (23) 九、参考文献 (23)

第一部分课程设计任务书 一、课程设计题目 用中小规模集成芯片设计制作万年历。 二、课程设计时间 五天 三、实训提交方式 提交实训设计报告电子版与纸质版 四、设计要求 (1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。 (3)具有闹钟功能。 (4)能够显示环境温度,误差小于±1℃ (5)计时精度:月误差小于20秒。

第二部分课程设计报告 一、单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。 二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。8051单片机的基本性能有: ◆8位CPU; ◆布尔代数处理器,具有位寻址能力; ◆128B内部RAM,21个专用寄存器; ◆4KB内部掩膜ROM; ◆2个16位可编程二进制加1定时器/计数器; ◆32个(4×8位)双向可独立寻址的I/O口; ◆1个全双工UART(异步串行通信口); ◆5个中断源,两级中断结构; ◆片内振荡器及时钟电路,晶振频率为1.2MHz~12MHz; ◆外部程序/数据存储器寻址空间均为64KB; ◆111条指令,大部分为单字节指令; ◆单一+5V电源供电,双列直插40引脚DIP封装。

(完整)基于89C51单片机交通灯课程设计要点

(完整)基于89C51单片机交通灯课程设计要点 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)基于89C51单片机交通灯课程设计要点)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)基于89C51单片机交通灯课程设计要点的全部内容。

华北水利水电学院 基于C51单片机 交通灯课程设计实验报告 姓名:田坤 班级:125 专业:电子信息科学与技术 指导老师:辛艳辉刘明堂 2013年1月16日 摘要 近年来,随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,正在不断的应用到实际生活中,并且根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS-51系列单片机STC89C51为中心器件来设计交通灯控制器,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题.系统具

有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。 关键词:交通灯 单片机 数码管 一 。总体设计思路 1.1设计目的及思路 设计目的 了解交通灯管理的基本工作原理,熟练掌握STC89C51的工作原理和应用编程,熟悉STC89C51单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式和应用编程外部中断的方法,掌握多位LED 显示问题的解决。 设计思路 (1)分析目前交通路口的基本控制技术,提出自己的交通控制的初步方案。 (2)确定系统交通控制的总体设计,增加了倒计时显示提示。 (3)进行显示电路。 (4)进行软件系统的设计。 1。2 实际交通灯显示时序及状态转换的理论分析 图1所示为红绿灯转换的状态图。 图1 红绿灯状态转换图 表1 十字路口指示灯燃 亮方 S1 S4 S3 S2

AT89C51单片机时钟电路

工程设计 AT89C51单片机时钟电路 工程设计 目录 任务书 摘要 前言 说明书 第一章电路原理分析 1-1 显示原理 1-2 数码管结构及代码显示 1-3 键盘及读数原理 1-4 连击功能的实现 第二章程序设计思想和相关指令介绍 2-1 数据与代码转换 2-2 计时功能的实现与中断服务程序 2-3 时间控制功能与比较指令 2-4 时钟误差的分析 附录A 电路图 附录B 存储单元地址表 附录C 输入输出口功能分配表 附录D 定时中断程序流程图 附录F 调时功能流程图 附录G 程序清单 摘要

单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 前言 本文通过用对一个能实现定时,时钟,日历显示功能的时间系统的设计学习,详细介绍了51 单片机应用中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中断原理、从而达到学习,了解单片机相关指令在各方面的应用。系统由AT89C51、LED 数码管、按键、二极管等部分构成,能实现时钟日历的功能:能进行时、分、秒的显示。也具有日历计算、显示和时钟,日历的校准、定时时间的设定,实现三路开关定时输出等功能。文章后附有电路图,程序清单,各数据存储单元的所在地址,输入输出口对应表。以供读者参考。因作者本人也是个初学者,水平有限,难免有疏落不足之处,敬请老师和同学能给与批评正。 说明书 系统由AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定时时间的设定,输出等功能。系统的功能选择由SB0、SB1、SB2、SB3、SB4 完成。其中SB0为时间校对,定时器调整功能键,按SB 0 进入调整状态。SB1 为功能切换键。第一轮按动SB1 依次进入一路、二路、三路定时时间设臵提示程序,按SB3 进入各路定时调整状态。定时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按SB1 键,依次进入时间?年?位校对、?月?位校对、?日?位校对、?时?位校对、?分?位校对、?秒?位校对状态。不管是进入那种状态,按动SB2 皆可以使被调整位进行不进位增量加1 变化。各预臵量设臵完成后,系统将所有的设臵存入RAM 中,按SB1 退出调整状态。上电后,系统自动进入计时状态,起始于? 00?时? 00?分。SB4 为年月日显示转换键,可使原来显示时分秒转换显示年月日。 二、电路原理分析 1. 显示原理 电原理图见附图1。由6 个共阴极的数码管组成时、分、秒的显示。P0 口的8 条数据线P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的P2.0 至P2.2 分别通过电阻R10 至R13 与VT1 至VT3 的基极相连接。这样通过P0 口送出一个存储单元的高位、低位BCD显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在数码管中显示出来。从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。 2. 数码管结构及代码显示

本科毕业设计--基于51单片机的电子日历设计

成都电子机械高等专科学校成教院毕业设计(论文) 论文题目:基于51单片机的电子日历设计 教学点:重庆科创职业学院 指导老师:张忠雨职称:讲师 学生姓名:聂燕学号: 2011700558 专业:应用电子技术 成都电子机械高等专科学校成教院制 2012 年 3 月 9 日

成都电子机械高等专科学校成教院毕业设计(论文)任务书 题目:基于51单片机的电子日历设计 任务与要求: 通过单片机设计电子日历数码管正常显示阳历、阴历日期,显示的格式为年-月-日,利用外部按键的操作实现阳历和阴历之间的 转换,实现阴历和阳历显示的暂停、运行等功能。 时间:2011年12月15日至2012 年3月15日共12 周教学点:重庆科创职业学院 学生姓名:聂燕学号:2011700558 专业:应用电子技术 指导单位或教研室: 指导教师:张忠雨职称:讲师 成都电子机械高等专科学校成教院制

毕业设计(论文)进度计划表

摘要 设计以单片机AT89C51为核心部件的电子日历,利用74LS245作为驱动器,74LS138作为译码器使用,六个七段数码管均采用共阴极的方式,P0口作为段选码输出口,P2口作为位选码输出口。 本次设计的题目是基于单片机的电子日历设计,可以正常的显示年、月、日,还可以利用外部按键实现阴历和阳历之间的转换以及暂停等功能。电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。 本次设计可分为两部分:硬件系统、软件系统。 硬件系统包括:AT89S51单片机、74LS245驱动器、74LS138译码器、RC复位电路、+5V直流电源电路、去抖电路、动态显示扫描电路。 软件系统主要有单片机的编程构成。 关键词:单片机,日历,位码,段码,显示

51单片机作的电子钟程序及电路图

51单片机作的电子钟程序在很多地方已经有了介绍,对于单片机学习者而言这个程序基本上是一道门槛,掌握了电子钟程序,基本上可以说51单片机就掌握了80%。常见的电子钟程序由显示部分,计算部分,时钟调整部分构成。 时钟的基本显示原理:时钟开始显示为0时0分0秒,也就是数码管显示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒,分钟加1,10秒位回0。依次类推,时钟最大的显示值为23小时59分59秒。这里只要确定了1秒的定时时间,其他位均以此为基准往上累加。 开始程序定义了秒,十秒,分,十分,小时,十小时,共6位的寄存器,分别存在30h,31h,32h,33h,34h,35h单元,便于程序以后调用和理解。 6个数码管分别显示时、分、秒,一个功能键,可以切换调整时分秒、增加数值、熄灭节电等功能全部集一键。

以下是部分汇编源程序,购买我们产品后我们用光盘将完整的单片机汇编源程序和烧写文件送给客户。;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 中断入口程序 ;; (仅供参考) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 RETI ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口

RETI ;外中断1中断返回 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 主程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; START: MOV R0,#70H ;清70H-7AH共11个内存单元MOV R7,#0BH ;clr P3.7 ; CLEARDISP: MOV @R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV 20H,#00H ;清20H(标志用) MOV 7AH,#0AH ;放入"熄灭符"数据 MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值 MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值 SETB EA ;总中断开放 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器 MOV R4,#14H ;1秒定时用初值(50M S×20)START1: LCALL DISPLAY ;调用显示子程序 JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序SJMP START1 ;P3.7口为1时跳回START1 SETMM1: LJMP SETMM ;转到时间调整程序SETMM ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序 INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护

51单片机红绿灯课程设计

1 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

最全最好的课程设计-51单片机电子日历时钟( 含源程序)

LED日历时钟课程设计 院系: 班级: 姓名: 学号: 指导教师: 2012 年06 月16 日

目录

摘要 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。 第一章前言 数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示期、农历、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。 AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k B ytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

80c51单片机课程设计word文档良心出品

单片机课程设计报告 题目: 基于51单片机发光牌与伴奏音乐系统 专业班级机械111班 姓名 学号

一、设计目的 (一)、以AT89C51单片机为主体,设计一个有伴奏音乐的发光牌。 1、功能 放光牌用数码管显示,分别按顺序显示出“2”、“0”、“1”、“3”的数字样。而且不断的循环从左到右显示。同时还伴有歌名为“同一首歌”的旋律。 发光牌由数码管进行设置,歌声的旋律则由蜂鸣器来实现。 2、效果 即数码管为发光牌,同时伴有歌声 发光牌效果图可如下

二、硬件系统 AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。 (1)、硬件总电路图如下 其中AT89C51单片机的设置如下 选择12MH的晶振,该单片机选用24V的电压。其中电路图中的7447芯片中的A,B,C,D,E,F,G 引脚是引出来用来分别接四个数码管的。其中低电平代表通电,其数码管的0~9的数字代码如下: 0X01、0X12、0X24、0X38、0X41、0X52、 0X64、0X78、0X81、0X92. 并通过p2.0、p2.1、p2.2、p2.3引脚分别来控制四个数码管的得电顺序。从而实现发光牌的设置和控制。 、对蜂鸣器的控制的电路介绍)2(. 为般是指时钟电路引脚、其中XTAL1XTAL2在片内它是振荡器反相放大器的

输接外部晶振和微调电容的一端,TAL1:X入;若使用外部时钟时,该引脚必 须接地。在片内它是振荡器反相放大器的:接外部晶振和微调电容的另一端,XTAL2 输出;若使用外部时钟时,该引脚接外部时钟的输入端。利用这两个引脚可以对歌曲的节奏和时间进行控制。从而演奏蜂鸣器可根据不同代码发出声音。其中歌曲的谱音可用代码表示,出“同一首歌”的旋律。三、软件系统protues,仿真用软件软件编程序用keil软件其中控制歌曲播放的流程图如下 开始 定义晶振频率 12000000HZ

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

基于stc51单片机的LCD1602显示时间_的电子万年历(显示当前温度)

1 课设所需软件简介 1.1 Keil uVision4的简要介绍 2009年2月发布Keil μVision4,Keil μVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。 2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。 Keil C51开发系统基本知识Keil C51开发系统基本知识 1. 系统概述 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

89C51单片机课程设计之秒表设计实验报告

单片机课程设计报告 单 片 机 秒 表 系 统 课 程 设 计 班级: 课程名称:秒表设计 成员: 实训地点:北校机房 实训时间:6月4日至6月15日

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2所需元器件 3 程序编写流程及课程设计效果 3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C51设计一个4位LED数码显示“秒表”,显示时间为000.0~9分59.9秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决几个主要问题,一是有关单片机定时器的使用;二是如何实现LED的动态扫描显示;三是如何对键盘输入进行编程;四是如何进行安装调试。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有三个开关按键:其中key1按键按下去时开始计时,即秒表开始键,key2按键按下去时数码管清零,复位为“00.00”. key3按键按下去时数码管暂停。 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的 应用进一步的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统, 拥有正确的计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 1.2课程设计思路及描述

51单片机课程设计 AD转换

课程设计报告 华中师范大学武汉传媒学院 传媒技术学院 电子信息工程2011 仅发布百度文库,版权所有.

AD转换 要求: A.使用单片机实现AD转换 B.可以实现一位AD转换,并显示(保留4位数字)设计框图:

方案设计: AD转换时单片机设计比较重要的实验。模数转换芯片种类多,可以满足不同用途和不同精度功耗等。 外部模拟量选择的是简单的电位器,通过控制电位器来改变模拟电压。显示电压值采用一般的四位七段数码管。而AD转换芯片采用使用最广的ADC0809 ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。 下面说明各引脚功能: ?IN0~IN7:8路模拟量输入端。 ?2-1~2-8:8位数字量输出端。 ?ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。?ALE:地址锁存允许信号,输入端,高电平有效。 ?START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 ?EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 ?OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 ?CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

?REF(+)、REF(-):基准电压。 ?Vcc:电源,单一+5V。 ?GND:地 工作原理: 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC 变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 本次实验采用中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 采用中断可以减轻单片机负担。并可以使程序有更多的空间作二次开发。

基于51单片机电子万年历设计

基于51单片机电子万年历设计 专业:机电设备维修与管理姓名:杜洪浦指导老师: 摘要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分和秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3到5V电压供电。 万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,液晶显示电路,复位电路,时钟电路,稳压电路电路以及串口下载电路等组成。在单片机的选择上使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用液晶LCD1602。软件方面主要包括日历程序、液晶驱动程序,显示程序等。程序采用汇编语言编写。所有程序编写完成后,在Keil C51软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。 关键词时钟电钟,DS1302,液晶LCD1602,单片机 目录 1设计要求与方案论证 (2) 1.1 设计要求 (2) 1.2 系统基本方案选择和论证 (2) 1.2.1单片机芯片的选择方案和论证 (2) 1.2.2 显示模块选择方案和论证 (3) 1.2.3时钟芯片的选择方案和论证: (3) 1.3 电路设计最终方案决定 (3) 2系统的硬件设计与实现 (3) 2.1 电路设计框图 (4) 2.2 系统硬件概述 (4) 2.3 主要单元电路的设计 (4) 2.3.1单片机主控制模块的设计 (4)

相关文档
最新文档