单片机综合设计实验

单片机综合设计实验
单片机综合设计实验

大连理工大学本科设计报告题目:基于PCF8563的时钟系统设计

课程名称:

学院(系):

专业:

班级:

学号:

学生姓名:

成绩:

2014 年7 月10 日

题目:基于PCF8563的时钟系统设计

1 设计要求

实验要求:

(1)显示两位小时、两位分钟和两位秒参数,相互之间有分隔符号;

(2)按住KEY1可显示四位年、两位月、两位日;

(3)具备整点报时功能(模拟广播电台的整点报时从59分55秒开始,每一秒驱动蜂鸣器一次,其中前5次为低频,00秒时为高频驱动);

(4)具备键盘修改时间功能。可修改小时、分钟和秒参数;

(5)修改时间时具备“回显”功能,以方便观察;

(6)输入时间参数时应具有“自动纠错”功能,以免错误数据的输入;

(7)在修改时间参数时具备“参数闪烁”功能,是操作更人性化;

2 设计分析及系统方案设计

(1)主程序算法描述

主程序中定义端口名称、围器件读写地址增强程序的可读性。设置中断服务程序入口地址,将硬件电路连接与之对应。INT_RCTDUI对应INT_0中断服务程序,INT_7290对应INT1的中断服务程序。开始时先对硬件电路进行复位操作。然后设定PCF8563T的时间和命令参数存放在单片机内部的10H~1DH单元,将其写入到8563的00H~0DH单元。使总的中断使能端有效,开INT0和INT1中断,使触发极性为下降沿。等待中断的到来。

(2)INT_RCT中断子程序算法描述

调读数据子程序,将读出的8563中02H~08H单元的内容存放于单片机内部20H~26H单元。判断时、分的数值,当时间在**-59-55至**-59-59时调用低频蜂鸣器BUZZL,当时间为**-00-00时调用高频蜂鸣器BUZZH。实现整点报时。调整时间,将20H-26H单元中内容拆分查表后送到28H~2FH (年,月,日)和38H~3FH(时,分,秒)。使P1.2控制显示内容,当P1.2=1时,显示时,分,秒;当P1.2=0时,显示年,月,日。

(3)蜂鸣器发声子程序(BUZZL和BUZZH)

设置初始值使BUZZL发声频率为500HZ,BUZZH发声频率为1500HZ。

(4)键盘修改子程序

读入进入中断前的数据,将8563的20H单元内容送入单片机内部12H单元(秒);21H单元内容送入单片机内部13H单元(分);22H单元内容送入单片机内部14H单元(时)便于修改后显示。读入输入的键值为0AH时,为A键修改小时参数。设置小时的十位闪烁命令等待按键操作,读入键值判断是否超过三,超过则报警且要求重新输入。输入正确时回显,设置小时的个位闪烁命令等待按键操作,读入键值判断个位不超过9,然后判断小时整个数是否小于24。分和秒的设置与小时类似,不同的是十位不能超过5个位不能超过9。

(5)闪烁子程序

设置入口闪烁参数单元值

3 系统电路图

4 外围接口模块硬件电路功能描述

5 主程序中主要变量定义

6 系统软件中各个子程序的功能描述

8 程序清单

SDA BIT P1.0

SCL BIT P1.1

WSLA_8563 EQU 0A2H ;PCF8563T口地址RSLA_8563 EQU 0A3H

WSLA_7290 EQU 70H ;ZLG7290B口地址RSLA_7290 EQU 71H

ORG 8000H

LJMP 8040H

ORG 8003H

LJMP INT_RCT

ORG 8013H

LJMP INT_7290

ORG 8040H

START: MOV SP,#60H

CLR P1.7 ;ZLG7290复位

LCALL DELAY

SETB P1.7

;**************************************** ;设定pdf8563tde时间和命令参数(参数和控制命令缓冲区10H-1DH)

;**************************************** MOV 10H,#00H ;启动控制字

MOV 11H,#1FH ;设置报警及定时器中断MOV 12H,#50H ;秒单元

MOV 13H,#59H ;分单元

MOV 14H,#08H ;小时单元

MOV 15H,#01H ;日期单元

MOV 16H,#01H ;星期单元

MOV 17H,#01H ;月单元

MOV 18H,#10H ;年单元

MOV 19H,#00H ;设定分报警

MOV 1AH,#00H ;设定小时报警

MOV 1BH,#00H ;设定日报警

MOV 1CH,#00H ;设定星期报警

MOV 1DH,#83H ;设定CLKOUT的频率,1秒周期方波

MOV R7,#0EH ;写入参数个数

MOV R0,#10H ;参数与控制命令缓冲区首地址

MOV R2,#00H ;从器件内部子地址

MOV R3,#WSLA_8563;准备向PCF8563T 写入数据串

LCALL WRNBYT ;写入时间,控制命令到PCF8563T

SETB EA ;启动总中断

SETB EX0 ;启动INT_RCT(INT_0)

SETB IT0 ;定时器0下降沿有效

SETB EX1 ;启动INT_7290(INT_7290)

SETB IT1 ;定时器1下降沿有效

SJMP $ ;等待中断

;**************************************** ;中断服务子程序INT_RCT

;**************************************** INT_RCT:MOV R7,#07H ;数据块字节数

MOV R0,#20H ;内部数据块首地址

MOV R2,#02H ;内部寄存器首地址

MOV R3,#WSLA_8563;向8563写地址

MOV R4,#RSLA_8563;从8563读地址

LCALL RDADD ;调读数据子程序,将读出的数据存放于单片机20H-26H中

MOV A,21H ;判断是否为59分

CJNE A,#59H,NEXT1

MOV A,20H ;判断是否为55秒

CJNE A,#55H,NEXT2

LCALL BUZZL

SJMP NEXT

NEXT2: CJNE A,#56H,NEXT3

LCALL BUZZL

SJMP NEXT

NEXT3: CJNE A,#57H,NEXT4

LCALL BUZZL

SJMP NEXT

NEXT4: CJNE A,#58H,NEXT5

LCALL BUZZL

SJMP NEXT

NEXT5: CJNE A,#59H,NEXT

LCALL BUZZL

SJMP NEXT

NEXT1: CJNE A,#00H,NEXT

MOV A,20H

CJNE A,#00H,NEXT

LCALL BUZZH

NEXT: LCALL ADJUST ;调时间调整子程序LCALL CHAIFEN ;调拆分子程序,将20H-26H中的参数分别存28H-2FH,38H-3FH中MOV R7,#08H

MOV R2,#10H

MOV R3,#WSLA_7290

JNB P1.2,YEARS ;使用P1.2控制显示内容

MOV R0,#38H ;显示时分秒

SJMP DISP

YEARS: MOV R0,#28H ;显示年月日DISP: LCALL WRNBYT ;调7290显示子程序JNB P3.2,$

RETI

;**************************************** ;BUZZ

;**************************************** BUZZL: PUSH 07H

MOV TMOD,#01H ;方式1

MOV TL0,#66H ;低频500HZ

MOV TH0,#0FCH

MOV R7,#50

SETB TR0

LOOPL: JNB TF0,$

CLR TF0

MOV TL0,#66H

MOV TH0,#0FCH

CPL P3.4 ;驱动蜂鸣器

DJNZ R7,LOOPL

SETB P3.4

POP 07H

RET

BUZZH: PUSH 07H

MOV TMOD,#01H

MOV TL0,#0CDH ;高频1500HZ

MOV TH0,#0FEH

MOV R7,#100

SETB TR0

LOOPH: JNB TF0,$

CLR TF0

MOV TL0,#0CDH

MOV TH0,#0FEH

CPL P3.4 ;驱动蜂鸣器

DJNZ R7,LOOPH

SETB P3.4

POP 07H

RET

;**************************************** ;键盘修改中断服务程序INT_7290

;**************************************** INT_7290:PUSH 00H

PUSH 02H

PUSH 03H

PUSH 04H

PUSH 07H

PUSH ACC

PUSH PSW

MOV R7,#07H ;写入参数个数

MOV R0,#20H ;参数和控制命令缓冲区首地址

MOV R2,#02H ;从器件内部从地址

MOV R3,#WSLA_8563;准备向8563写入数据串

MOV R4,#RSLA_8563;准备从8563读取数据串

LCALL RDADD

MOV 12H,20H ;写入秒单元

MOV 13H,21H ;写入分单元

MOV 14H,22H ;写入时单元

RE: JB P3.3,$ ;以查询方式等待下一次按键LCALL RDKEY ;读取键值

CJNE A,#0AH,BKEY;判断是否为A键AKEY: MOV 51H,#80H

LCALL FLASH

JB P3.3,$

LCALL RDKEY

CJNE A,#03H,HOUR1;判断键入的数是否满足小时十位的要求

HOUR1: JNC ERROR1;若键值大于2,则报错SW AP A;将键值处理成小时数据的十位

ANL 14H,#0FH

ORL 14H,A ;小时数据的十位生成

LCALL WR8563 ;写入8563

LCALL CF ;拆分,查表,R4(H),R3(L) MOV 3FH,R4 ;回显

MOV R7,#01H

MOV R0,#3FH

MOV R2,#17H

MOV R3,#WSLA_7290

LCALL WRNBYT

LJMP HOUR2

ERROR1: LCALL BUZZH;报错,返回重新键入LJMP AKEY

HOUR2: MOV 51H,#40H

LCALL FLASH

JB P3.3,$

LCALL RDKEY

CJNE A,#0AH,STEP1;判断键值是否满足小时个位的要求(小于10)

STEP1:JNC ERROR2

ANL 14H,#0F0H

ORL 14H,A

MOV A,14H

CJNE A,#24H,JJJ;判断小时的值是否满足要求(小于24)

JJJ: JNC ERROR2

LCALL WR8563

LCALL CF ;拆分,查表,R4(H),R3(L) MOV 3EH,R3 ;回显

MOV R7,#01H

MOV R0,#3EH

MOV R2,#16H

MOV R3,#WSLA_7290

LCALL WRNBYT

MOV 51H,#00H ;停止闪烁

LCALL FLASH

LJMP DOWN

ERROR2: LCALL BUZZH

LJMP HOUR2

BKEY: CJNE A,#0BH,CKEY

MOV 51H,#10H

LCALL FLASH

JB P3.3,$

LCALL RDKEY

CJNE A,#06H,MIN1

MIN1: JNC ERROR3

SWAP A

ANL 13H,#0FH

ORL 13H,A

LCALL WR8563

LCALL CF ;拆分,查表,R4(H),R3(L) MOV 3CH,R4 ;回显

MOV R7,#01H

MOV R0,#3CH

MOV R2,#14H

MOV R3,#WSLA_7290

LCALL WRNBYT

LJMP MIN2

ERROR3: LCALL BUZZH

LJMP BKEY

MIN2: MOV 51H,#08H

LCALL FLASH

JB P3.3,$

LCALL RDKEY

CJNE A,#0AH,STEP2

STEP2: JNC ERROR4

ANL 13H,#0F0H

ORL 13H,A

LCALL WR8563

LCALL CF ;拆分,查表,R4(H),R3(L) MOV 3BH,R3 ;回显

MOV R7,#01H

MOV R0,#3BH

MOV R2,#13H

MOV R3,#WSLA_7290

LCALL WRNBYT

MOV 51H,#00H

LCALL FLASH

LJMP DOWN

ERROR4: LCALL BUZZH

LJMP MIN2

CKEY: CJNE A,#0CH,ERROR

MOV 51H,#02H

LCALL FLASH

JB P3.3,$

LCALL RDKEY

CJNE A,#06H,SEC1

SEC1: JNC ERROR5

SWAP A

ANL 12H,#0FH

ORL 12H,A

LCALL WR8563

LCALL CF ;拆分,查表,R4(H),R3(L) MOV 39H,R4 ;回显

MOV R7,#01H

MOV R0,#39H

MOV R2,#11H

MOV R3,#WSLA_7290

LCALL WRNBYT

LJMP SEC2

ERROR5: LCALL BUZZH

LJMP CKEY

SEC2: MOV 51H,#01H

LCALL FLASH

JB P3.3,$

LCALL RDKEY

CJNE A,#0AH,STEP3

STEP3: JNC ERROR6

ANL 12H,#0F0H

ORL 12H,A

LCALL WR8563

LCALL CF ;拆分,查表,R4(H),R3(L) MOV 38H,R3 ;回显

MOV R7,#01H

MOV R0,#38H

MOV R2,#10H

MOV R3,#WSLA_7290

LCALL WRNBYT

MOV 51H,#00H

LCALL FLASH

LJMP DOWN

ERROR6: LCALL BUZZH

LJMP SEC2

ERROR: LCALL BUZZH ;若键入数不为A、B、C中的一个,则报错

LCALL DELAY

LCALL BUZZL

DOWN: CLR IE1

CLR IE0

POP PSW

POP ACC

POP 07H

POP 04H

POP 03H

POP 02H

POP 00H

RETI

;**************************************** ;读键值子程序(出口参数累加器A——获取到的键值)

;**************************************** RDKEY: MOV R0,#1FH

MOV R7,#01H

MOV R2,#01H

MOV R3,#WSLA_7290

MOV R4,#RSLA_7290

LCALL RDADD

MOV A,1FH

DEC A

RET

;**************************************** ;向日历芯片写入时间参数子程序

;将RAM的10H-1DH中的时间参数(含控制字)写入芯片的00H-0DH单元

;**************************************** WR8563: MOV R7,#0EH

MOV R0,#10H

MOV R2,#00H

MOV R3,#WSLA_8563

LCALL WRNBYT

RET

;**************************************** ;闪烁子程序

;**************************************** FLASH: PUSH 00H

PUSH 02H

PUSH 03H

PUSH 07H

MOV 50H,#70H

MOV R7,#02H

MOV R0,#50H

MOV R2,#07H

MOV R3,#WSLA_7290

LCALL WRNBYT

POP 07H

POP 03H

POP 02H

POP 00H

RET

;**************************************** ;各子程序

;**************************************** CHAIFEN:PUSH PSW

PUSH ACC

PUSH 03H

PUSH 04H

MOV A,20H

LCALL CF

MOV 38H,R3

MOV 39H,R4

MOV 3AH,#02H

MOV A,21H

LCALL CF

MOV 3BH,R3

MOV 3CH,R4

MOV 3DH,#02H

MOV A,22H

LCALL CF

MOV 3EH,R3

MOV 3FH,R4

MOV A,23H

LCALL CF

MOV A,R3

ORL A,#01H

MOV R3,A

MOV 28H,R3

MOV 29H,R4

MOV A,25H

LCALL CF

MOV A,R3

ORL A,#01H

MOV R3,A

MOV 2AH,R3

MOV 2BH,R4

MOV A,26H

LCALL CF

MOV A,R3

ORL A,#01H

MOV R3,A

MOV 2CH,R3

MOV 2DH,R4

MOV 2EH,#0FCH

MOV 2FH,#0DAH

POP 04H

POP 03H

POP ACC

POP PSW

RET

CF: PUSH 02H

PUSH DPH

PUSH DPL

MOV DPTR,#LEDSEG

MOV R2,A

ANL A,#0FH

MOVC A,@A+DPTR

MOV R3,A

MOV A,R2

SWAP A

ANL A,#0FH

MOVC A,@A+DPTR

MOV R4,A

POP DPL

POP DPH

POP 02H

RET

LEDSEG:DB

0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H DB

0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

;**************************************** ;将20H-26H中从PCF8563T中读出的7个字节参数的无关位屏蔽掉

;**************************************** ADJUST: PUSH ACC

MOV A,20H

ANL A,#7FH

MOV 20H,A

MOV A,21H

ANL A,#7FH

MOV 21H,A

MOV A,22H

ANL A,#3FH

MOV 22H,A

MOV A,23H

ANL A,#3FH

MOV 23H,A

MOV A,24H

ANL A,#07H

MOV 24H,A

MOV A,25H

ANL A,#1FH

MOV 25H,A

POP ACC

RET

;**************************************** ;延时子程序

;**************************************** DELAY: PUSH 00H

PUSH 01H

MOV R0,#00H

DELAY1: MOV R1,#01H

DJNZ R1,$

DJNZ R0,DELAY1

POP 01H

POP 00H

RET

;**************************************** ;I2C子程序

;**************************************** END

9 系统调试运行结果说明、分析所出现得问题,设计体会与建议

硬件环境:DP-51PROC单片机综合仿真实验台,TKSMonitor51仿真器。

软件环境:PC及Keil软件。

结果说明:可通过8563日历显示芯片将时间显示在数码管上,按KEY1键可显示日期,按A、B、C键可分别改变时、分、秒,按错键时会有警告音提醒并要求重新输入。可进行整点报时。

调试中出现的问题及解决方法:

(1)显示两位小时、两位分钟和两位秒参数,相互之间有分隔符号功能:在该环节中,利用书上的参考程序,实现每1s进入一次中断实现读取时间参数,并进行拆分显示等操作。最后能够在数码管上显示出初始设置的时间,当按下key1键时可以显示初始设置的日期。

(2)整点报时功能:设置两个驱动蜂鸣器发声的子程序,一个发声频率为500HZ,另外一个为1500HZ。成功实现了当时间为59分55秒~59分59秒时以500HZ的频率发声,时间为整点时以1500HZ的频率发声

(3)键盘修改时间功能:这部分程序是整个程序的难点,修改的过程为从8563读取数据存入单片机,在单片机内修改后存回8563,并写入7290回显。我参照书上的程序写了A键基本的框架,发现修改完成后需要写入8563才能成功在数码管上显示,还需考虑键入值是否符合要求,比如小时十位不能大于2,小时不能大于24等等,能成功键入后,我又相继添加了新的功能,比如输入错误时进行错误提醒,并要求重新输入,原本还想加入确认键,尝试了之后发现特别复杂,而且不加确认键也能很好的实现功能,就放弃了。最后一点是修改时响应位闪烁,修改完成后停止闪烁,退出该中断。

(4)回显功能:将值写入7290回显,参考教材上与之前实验的程序,实现起来没有太大问题。(5)自动纠错功能:自动纠错环节我设置的功能是实现输入错误时间时蜂鸣器报警并要求重新输入。(6)参数闪烁功能:这部分我设置了闪烁子程序,每次调用之前都设置不同的入口参数,实现调整哪一位参数时哪一位的参数的数码闪烁的功能。

6 结论及设计体会

通过本次试验我学会了利用单片机设计时钟日历系统。

参照参考程序,可实现利用8563和7290显示两位小时、两位分钟和两位秒参数,相互之间有分隔符号的功能。我先加入了整点报时功能,在显示子程序中判断时间是否为59-55到00-00,若是,则调用BUZZL或BUZZH。这部分没有太大的难度,但我一开始怎么都运行不了,后来请教老师,老师发现在拆分程序开头我我加了ORG8300H,超出程序范围,修改之后程序立刻就好用了。实现了之后,我开始添加键盘修改时间功能。一开始没有什么思路,一边请教同学,一遍编程序。首先读取键值,判断是否为A、B、C或其他,这是大体方向,接下来具体写A键,首先需要闪烁,然后读取键值,判断是否符合小时十位的要求,若符合,则需处理,这部分可参考示例程序,处理完后需要写入8563,否则修改完后不能显示到数码管上,接着要进行拆分回显、取消闪烁。写完这一段之后,写个位就简单多了,流程大致相同,但是要判断输入个位后小时的大小是否小于24,否则不符合要求。B、C键都类似,差别仅在输入键值后的判断,分、秒的十位都不能大于5,个位都不能大于9。加入闪烁功能也没有太大问题,只要写好7290的闪烁命令字就行了。至此,整个程序大致完成。

本次试验我发现学会调程序非常重要,学会加断点,学会分步调试,很多错误光用看的根本看不出来。比如有时候程序运行不了,分布运行发现到哪一步之后程序就飞了,继续运行不了。比如没有关中断,程序返回不了,需要加断点分布运行,我才能知道哪一步出现了问题。

参考文献

MCS-51单片机应用实验教程,陈育斌著

51单片机综合实验交通灯设计报告

51单片机综合实验交通灯设计报告 班级: 学生姓名: 学号: 指导教师:

一实验题目 交通灯控制系统设计 二实验目的 1、学会用8051单片机开发简单的计算机控制系统; 2、学会用汇编语言和C语言开发系统软件; 3、学会8051单片机开发环境wave或Keil uVision3软件的使用; 4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真; 5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图; 6、熟悉七位数码管显示的使用方法; 7、了解交通灯控制系统的基本组成。 三实验要求 交通灯处在十字路口上。它有红﹑黄﹑绿三种颜色的灯组成。红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换。下面拿东西南北四个方向来说明。当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮。反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮。交通灯配置示意图如图1所示。同时当有特殊的情况发生时,能手动控制各个方向的信号灯。设计任务就是将这一电路用单片机来实现具体的控制。

1 十字路口交通灯配置示意图 四 设计内容与原理 为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6。 假定直行绿灯点亮的时间为25s ,左转绿灯点亮的时间为20s ,黄灯点亮的时间为5s ,则对方红灯的点亮时间为50秒。黄灯每隔500ms 亮一次,之后灭500ms (亮灭一次叫作闪烁一次),一共闪烁5次,持续5s 。各个状态之间的变换情况如下: 具体显示周期如下:

单片机课程设计(温度控制器)

基于单片机的温度控制器设计 内容摘要:该温度报警系统以AT89C51单片机为核心控制芯片,实现温度检测报警功能的方案。该系统能实时采集周围的温度信息,程序内部设定有报警上下限,根据应用环境不同可设定不同的报警上下限。该系统实现了对温度的自动监测和自动调温功能。 关键词:AT89C51ADC0808 温度检测报警自动调温 Abstract:The temperature alarm system AT89C51 control chip, realize temperature detection alarm function scheme. The system can collect real-time temperature information around that internal procedures set alarm equipped, according to different application environment can be set different alarm upper. The system realizes the automatic monitoring of temperature. The instrument can achieve the automatic thermostat function. Keywords:AT89C51 ADC0808Temperature detectingalarmautomatic thermostat 引言:本课题是基于单片机的温度控制器设计,经过对对相关书籍资料的查阅确定应用单片机为主控模块通过外围设备来实现对温度的控制。实现高低温报警、指示和低温自加热功能(加热功能未在仿真中体现)。 1.设计方案及原理 1.1设计任务 基于单片机设计温度检测报警,可以实时采集周围的温度信息进行显示,并且可以根据应用环境不同设定不同的报警上下限。 1.2设计要求 (1)实时温度检测。 (2)具有温度报警功能。 (3)可以设报警置温度上下限。 (4)低于下限时启动加热装置。 1.3总体设计方案及论证

基于-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单片机交通灯课程设计

第一章单片机概述 单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。它在一块芯片内芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。 单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。由于MCS-51系列的单片机的模块化结构比较典型、应用灵活,为许多大公司所采纳,使8051系列的单片产品日新月异。在Intel公司20世纪80年代初推出MCS-51系列单片机以后,世界上许多著名的半导体厂商相继生产和这个系列兼容的单片机,使产品型号不断地增加、品种不断丰富、功能不断加强,在国内外单片机应用中占有重要地位。由于单片机具有功能强、体积小、价格低等一系列优点,在各个领域都有广泛的应用,有力地推动了各行各业的技术改造和产品更新换代。 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,

产品更新换代的节奏也越来越快。 第二章MSC-51芯片简介 8051是MCS-51系列单片机的典型产品。 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: ·中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 ·数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM 只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。 ·程序存储器(ROM): 8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 ·定时/计数器(ROM): 8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 ·并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。 ·全双工串行口: 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

基于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提示。

单片机课程设计报告

《单片机原理及接口技术》课程设计题目:简易计算器设计 级:电子1547 名:苏丹丹、李静、齐倩 号:05号、17号、11号

导教师:张老师 间:2013年12月 西安航空学院电气学院

目录 一、选题的背景和意义-------------------1 1.1选题的背景-------------------------------------1 1.2选题的意义-------------------------------------1 二、总体设计-------------------------------1 2.1设计任务---------------------------------------1 2.2方案选择---------------------------------------1 三、硬件设计-------------------------------2 3.1 元器件名称--------------------------------------------------------2 3.2 计算器按键介绍--------------------------------------------------2 3.3硬件系统框图、单元电路--------------------------3 四、软件设计-------------------------------3 4.1 软件调试步骤-----------------------------------------------------3 4.2软件设计流程图---------------------------------------------------4 五、结束语------------------------------------5 六、参考文献--------------------------------5 七、附录---------------------------------------6

因素实验设计

三因素实验设计 对三因素重复测量实验设计进行数据处理 一、三因素完全随机实验设计数据处理 过程: 1、打开SPSS软件,点击Data View ,进入数据输入窗口,将原始数据输入SPSS 表格区域; 2、在菜单栏中选择分析→一般线性模型→单变量; 3、因变量Dependent Variable方框中放入记忆成绩(JY),固定变量(Fixed Factor(s))方框中,放入自变量记忆策略、有无干扰和材料类型; 4、点击选项(Options)按钮,选择Descriptive statistics,对数据进行描述性统计;选择Homogeneity tests,进行方差齐性检验; 5.结果分析: 描述性统计量 因变量:记忆成绩 记忆策略有无干扰材料类型均值标准偏差N 联想策略d i m e n s i o n 2无干扰实物图片5图形图片5 总计10有干扰实物图片5图形图片.894435 总计10总计实物图片10图形图片10 总计20 复述策略d i m e n s i o n 2无干扰实物图片5图形图片5 总计10有干扰实物图片5图形图片.836665 总计10总计实物图片10图形图片10 总计20 总计d i m e n 无干扰实物图片10图形图片10 总计20有干扰实物图片10图形图片10

s i o n 2 总计20总计实物图片20图形图片20 总计40 被试间变量效应检验结果:A、B、C的主效应均极显着(P<);AB 交互效应显着; AC 交互效应极显着;BC 交互效应不显着;ABC 交互效应极显着。对于二阶与三 阶交互效应显着的,还需进行简单效应与简单简单效应检验。 主体间效应的检验 因变量:记忆成绩 源 III 型平方和df均方F Sig. 校正模型7.000截距1.000 A1.000 B1.000 C1.001 A * B1.037 A * C1.007 B * C1.146 A * B * C1.002误差32 总计40 校正的总计39

51单片机电子时钟课程设计实验报告

《单片机原理与应用》课程设计 总结报告 题目:单片机电子时钟(带秒表)的设计 设计人员:张保江江润洲 学号:2012197213 2012118029 班级:自动化1211 指导老师:阮海容

目录 1.题目与主要功能要求 (2) 2.整体设计框图及整机概述 (3) 3.各硬件单元电路的设计、参数分析及原理说明 (3) 4.软件流程图和流程说明 (4) 5.总结设计及调试的体会 (10) 附录 1.图一:系统电路原理图 (11) 2.图二:系统电路PCB (12) 3.表一:元器件清单 (13) 4.时钟程序源码 (14)

题目:单片机电子时钟的设计与实现 课程设计的目的和意义 课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。 课程设计的基本任务 利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。 主要功能要求 最基本要求 1)使用MCS-51单片机设计一个时钟。要求具有6位LED显示、3个按键输入。 2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后又变成000000。 4)使用3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。 5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。 6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。 7)掌握硬件和软件联合调试的方法。 8)完成系统硬件电路的设计和制作。 9)完成系统程序的设计。 10)完成整个系统的设计、调试和制作。 11)完成课程设计报告。 基本要求 1)实现最基本要求的1~10部分。 2)键盘输入可以控制电子时钟的走时/调试。 3)设计键盘输入电路和程序并调试。 4)掌握键盘和显示配合使用的方法和技巧。 提高发挥部分

51单片机课程设计秒表

微控制器技术课程 设计报告 设计题目:秒表 专业:供用电技术 班级:供电141 学号:140315143 姓名:王晨铭 指导教师:李昊 设计时间:2016.6.21

微控制器技术课程设计任务书 设计题目:秒表 设计时间:2016.6.20 设计任务: 在单片机开发板或软件仿真,编制程序,实现以下功能 1、利用定时器实现秒表功能,精确到0.1S; 2、数码管显示当前计时时间; 3、设定三个键,计时开始,停止计时和复位清零。 背景资料:1、单片机原理与应用 2、检测技术 3、计算机原理与接口技术 进度安排: 1、第1天,领取题目,熟悉设计内容,分解设计步骤和任务; 2、第3天,规划设计软硬件,编制程序流程、绘制硬件电路。 3、第5天,动手制作硬件电路,或编写软件,并调试。 4、第7天,中期检查。 5、第9天,完善设计内容,书写设计报告。 6、第13天,提交设计报告,整理设计实物,等待答辩。 7、第14天,设计答辩。

目录 一、设计任务和要求 (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)

题目:秒表 二、方案设计与论证 本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。其模块电路如图2-1所示。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。但根据显示方式的不同选择,我们可以有几种方案: 方案一:使用静态显示方式。静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。因而此设计中使用的显示位数使用了三个8位并行I/0口。如果另外想扩展单片机功能,则能使用的输出管脚很是有限。 方案二:使用动态显示方式。这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。这种显示方式,简化了硬件电路,特别在多位数码管显示时尤为突出。 本小组尝试了各种方案,在此报告中以静态显示方式为例说明。(动态显示方式省略) 显示电路 单片机 AT89C51 时钟电路 按钮电路

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单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管 其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DA TASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DA TASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,

最全最好的课程设计-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)电路,片内时钟振荡器。

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)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

基于51单片机的计算器课程设计实验报告

项目一:简单计算器 1.实验题目:用51单片机实现简单的计算器功能 2.实验截图: 1).实验运行前截图: 2).实验运行后截图:

3.实验代码: #include #include #include #include #include unsigned char table1[16]; //1602第一行显示字符unsigned char table2[16]; //1602第二行显示字符unsigned char code table_error[] = "error"; /* 键扫描函数 */ unsigned char keyscan() //扫描键盘函数 { unsigned char key_l,key_h,addres,num; P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l | key_h; if(addres!=0xff) { Delayms(1); if(addres!=0xff) {

P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l | key_h; switch(addres) { case 0xee:num='1';break; case 0xde:num='2';break; case 0xbe:num='3';break; case 0xed:num='4';break; case 0xdd:num='5';break; case 0xbd:num='6';break; case 0xeb:num='7';break; case 0xdb:num='8';break; case 0xbb:num='9';break; case 0xd7:num='0';break;//按键0 case 0xe7:num='C';break;//按键* case 0xb7:num='=';break;//按键# case 0x7e:num='/';break;//按键A case 0x7d:num='*';break;//按键B case 0x7b:num='-';break;//按键C case 0x77:num='+';break;//按键D } while(addres!=0xff) { P0=0x0f; key_l=P0; P0=0xf0; key_h=P0; addres=key_l | key_h; } return num; } } return 0; } void clear_lcd(void) //清屏 { unsigned char j;

微机原理单片机课程设计例子

河南理工大学 《单片机应用与仿真训练》设计报告 可调电子钟温度测量系统 姓名:乔石 学号:321308010220 专业班级:电气本2班 指导老师:杨凌霄 所在学院:电气工程与自动化学院 2015 年4 月14日

摘要 本次单片机课程设计是利用以AT89C51单片机为核心,晶体振荡器和数码管为基础进行的可调电子钟温度测量系统。此设计集中了定时器定时、温度控制装置等部分构件,有效地把中断系统和定时器的原理有机的结合起来,能够很好地实现数码管显示和温度控制功能,为日常生活和工业化生产提供了非常简洁方便的思路。这个实验软件设计过程简单明了,把单片机课程核心部分等具体呈现出来,硬件设计基于以往的实验原理。 关键词:AT89C51,温度测量,定时器

目录 一、概论 ------------------------------------------------------ 2 1、前言-------------------------------------------------------------- 3 2、设计的意义-------------------------------------------------------- 3 3、设计任务---------------------------------------------------------- 4 4、设计的目的和要求-------------------------------------------------- 4 二、系统总体方案及硬件设计-------------------------------------- 5 1、系统总体方案------------------------------------------------------ 5 2、霍尔传感器检测单元------------------------------------------------ 5 3、键盘调整单元------------------------------------------------------ 7 三、软件设计---------------------------------------------------- 8 1、系统主程序-------------------------------------------------------- 8 2、中断程序---------------------------------------------------------- 9 2.1、里程计数中断程序---------------------------------------------- 9 2.2、中途等待中断程序---------------------------------------------- 9 2.3、计算程序----------------------------------------------------- 10 2.4、显示程序----------------------------------------------------- 10 2.5、键盘程序----------------------------------------------------- 10 四、Proteus软件仿真 ------------------------------------------- 11 五、实物图----------------------------------------------------- 14 六、程设计心得体会--------------------------------------------- 15 参考文献------------------------------------------------------- 16 附1:源程序代码 ----------------------------------------------- 17 附2:系统原理图 ----------------------------------------------- 17

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信号即有效,把转换数据送上数据总线,供单片机接受。 采用中断可以减轻单片机负担。并可以使程序有更多的空间作二次开发。

相关文档
最新文档