单片机课程设计

时间:2019-05-15 11:18:01下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机课程设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机课程设计》。

第一篇:单片机课程设计

单片机课程设计报告

专业:电气工程及其自动化 班级:电0901-4班 姓名:代红新 学号:20092444 指导老师:石彦辉

电气与电子工程学院

2012/6/22

一、设计题目:电子时钟

二、设计要求:

1.通过键设置当前时间(时分秒)2.可切换显示年月日

3.可设定闹钟,到时报警,一个发光管闪烁(1次/秒),有复位键停止报警 4.可切换显示闹钟时间和当前时间

5.本机地址为02H,当接到上位机发的02H时,则回发02H 当接到上位机发的AAH时,则将当前时间发给上位机 当收到上位机发的55H时,则修改当前时间(时分秒)

三、设计思路

经过思考,该电子时钟试验须有六个八段数码管,分别指示时分秒,切换指示年月日,由指示灯指示闹钟提醒,以及上位机对下位机的控制,更改时间。

硬件设计思路:下位机显示时间和日期,以及闹钟指示灯,时间日期的更改由两个中断实现,一个位选,一个加一。上位机显示发送的数据和接受显示,仅由一个外部中断来切换方式。

软件设计思路:通过之前的单片机实验的练习,加上对本实验的理解,知道该由数码管显示时间,日期,进位转换,定时器计数器的应用,将数字转换为24进制,60进制,30进制以及365进制,并通过位选和片选实现显示。

四、硬件设计

五、软件设计

(一)上位机编程设计

SOK EQU 24H;fasongdezhonglei HOUR EQU 25H;xiangcongjifade hour MIN EQU 26H

;xiangcongjifade min SOK1 EQU 27H

;weixuanze HOUR1 EQU 28H

;zhujijieshoude hour MIN1 EQU 29H

;zhujijieshoude min ORG 0000H AJMP MAIN ORG 0003H AJMP X0IN;zhongleigaibian ORG 000BH AJMP T0IN

;zhujixiugaicongji ORG 0013H AJMP X1IN

;weixuanze

ORG 0030H MAIN:MOV SOK,#01H

MOV HOUR,#00H

MOV MIN,#00H

MOV SOK1,#01H

MOV HOUR1,#00H

MOV MIN1,#00H

MOV 21H,#02H

MOV 22H,#0AAH

MOV 23H,#55H

MOV TMOD,#26H

MOV TH1,#0FAH

MOV TL1,#0FAH

MOV TH0,#0FFH

MOV TL0,#0FFH

MOV PCON,#00H

MOV SCON,#50H

SETB PX0

CLR PS

CLR PT1

CLR PT0

CLR PX1

CLR ET1

SETB TR1

CLR ES

CLR TI

SETB IT0

SETB IT1

SETB EX0

SETB EX1

SETB ET0

SETB TR0

SETB EA ccc:MOV A,SOK

CJNE A,#1,aaa

LCALL DISP1

SJMP ccc aaa:MOV A,SOK

CJNE A,#2,eee

LCALL DISP2

SJMP ccc

eee:MOV DPTR,#8004H

MOV A,#6DH

MOVX @DPTR,A

MOV A,#02H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#6DH

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

LJMP ccc

;XIANSHI;WAIT3:JNB TI,WAIT3

;CLR TI

;cc:MOV A,SOK

;CJNE A,#03H ,aa

;MOV A,23H

;MOV SBUF,A

;WAIT13:JNB TI,WAIT13

;CLR TI

X0IN:INC SOK

MOV A,SOK

CJNE A,#04H,dd

MOV SOK,#01H

SJMP ddd

dd:MOV A,SOK

CJNE A,#02H,qqq

MOV A,#0AAH

MOV SBUF,A WAITa:JNB TI,WAITa

CLR TI

WAIT4:JNB RI,WAIT4

CLR RI

MOV A,SBUF

MOV MIN1,A WAIT5:JNB RI,WAIT5

CLR RI

MOV A,SBUF

MOV HOUR1,A ddd: RETI qqq:MOV A,#55H

MOV SBUF,A WAITB:JNB TI,WAITB

CLR TI

RETI X1IN:INC SOK1

MOV A,SOK1

CJNE A,#03H,ee

MOV SOK1,#01H

ee:RETI T0IN:MOV A,SOK1

CJNE A,#1,ff

MOV A,SOK1

MOV SBUF,A WAIT6:JNB TI,WAIT6

CLR TI

MOV A,HOUR

CJNE A,#23,hh

MOV HOUR,#00H

MOV A,HOUR

MOV SBUF,A WAIT7:JNB TI,WAIT7

CLR TI

RETI

hh:INC HOUR

MOV A,HOUR

MOV SBUF,A WAIT8:JNB TI,WAIT8

CLR TI

RETI

ff: MOV A,SOK1

MOV SBUF,A WAIT9:JNB TI,WAIT9

CLR TI

MOV A,MIN

CJNE A,#59,ii

MOV MIN,#00H

MOV A,MIN

MOV SBUF,A WAIT10:JNB TI,WAIT10

CLR TI

RETI

ii:INC MIN

MOV A,MIN

MOV SBUF,A WAIT11:JNB TI,WAIT11

CLR TI

RETI DISP1:MOV DPTR,#8004H

MOV A,#3FH

MOVX @DPTR,A

MOV A,#04H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#5BH

MOVX @DPTR,A

MOV A,#02H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#76H

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#3FH

MOVX @DPTR,A

MOV A,#20H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#5BH

MOVX @DPTR,A

MOV A,#10H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#76H

MOVX @DPTR,A

MOV A,#08H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

RET

DISP2:MOV DPTR,#8004H

MOV A,#77H

MOVX @DPTR,A

MOV A,#02H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,#77H

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#TAB

MOV A,HOUR1

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 40H,A

MOV A,B

MOVC A,@A+DPTR

MOV 41H,A

MOV A,MIN1

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 42H,A

MOV A,B

MOVC A,@A+DPTR

MOV 43H,A

MOV DPTR,#8004H

MOV A,40H

MOVX @DPTR,A

MOV A,#20H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,41H

MOVX @DPTR,A

MOV A,#10H

MOV DPTR,#8002H

MOVX @DPTR,A(二)下位机编程设计

SOK2 BIT 20H.0;秒标志位 SOK5 BIT 20H;秒标志位

SEC EQU 30H

;秒

MIN EQU 31H

;分

HOUR EQU 32H

;时

DAY EQU 33H

;天

MON EQU 34H

;月

YEAR EQU 35H

;年

SEC1 EQU 36H

;闹钟的秒

MIN1 EQU 37H

;闹钟的分

HOUR1 EQU 38H;闹钟的时

SOK1 EQU 57H

;模式切换

SOK3 EQU 58H;位选择标志

SOK4 EQU 59H;模式表示

ORG 0000H

SJMP MAIN

ORG 0003H

LJMP X0IN

ORG 000BH

LJMP T0IN

ORG 0013H

LCALL DEL

MOV DPTR,#8004H

MOV A,42H

MOVX @DPTR,A

MOV A,#08H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,43H

MOVX @DPTR,A

MOV A,#04H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

RET

;XIANSHI

DEL:MOV R1,#750

zzz:DJNZ R1,zzz

RET

TAB:DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH

END

LJMP X1IN

ORG 0023H

LJMP ESIN

ORG 0070H MAIN:MOV SOK1,#00H

MOV SOK3,#01H

MOV SEC,#00H

MOV MIN,#11

MOV HOUR,#11

MOV DAY,#21

MOV MON,#06

MOV YEAR,#12

MOV SEC1,#00H

MOV MIN1,#00H

MOV HOUR1,#00H

MOV R0,#10

MOV TMOD,#21H

MOV TL1,#0FAH

MOV TH1,#0FAH

MOV TH0,#3CH

MOV TL0,#0B0H

MOV PCON,#00H

MOV SCON,#50H

CLR TI

SETB ES

SETB PS

CLR PT1

CLR PX1

CLR PT0

CLR PT1

SETB P1.1

SETB EX0

SETB EX1

SETB IT0

SETB IT1

SETB ET0

CLR ET1

SETB TR0

SETB TR1

SETB EA

aa:JNB SOK2,ff

CLR SOK2

MOV A,SEC

CJNE A,#59,gg

MOV SEC,#00H

MOV A,MIN

CJNE A,#59,hh

MOV MIN,#00H

MOV A,HOUR

CJNE A,#23,ii

MOV HOUR,#00H

MOV A,DAY

CJNE A,#30,jj

MOV DAY,#01

MOV A,MON

CJNE A,#12,kk

MOV MON,#01

INC YEAR

gg:INC SEC

AJMP ff

hh:INC MIN

AJMP ff

ii:INC HOUR

AJMP ff

jj:INC DAY

AJMP ff

kk:INC MON

AJMP ff

ff:MOV A,HOUR

CJNE A,HOUR1,zz

MOV A,MIN

CJNE A,MIN1,zz

JNB SOK5,xx

CLR SOK5

SETB P1.0

LJMP zz

xx:CLR P1.0

zz:MOV A,SOK1

CJNE A,#00H,bb

AJMP DISP1

bb:CJNE A,#01,cc

AJMP DISP2

cc:AJMP DISP3

DISP1:MOV SOK4,#01H

MOV DPTR,#TAB

MOV A,DAY

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 45H,A

MOV A,B

MOVC A,@A+DPTR

MOV 46H,A

MOV A,MON

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 47H,A

MOV A,B

MOVC A,@A+DPTR

MOV 48H,A

MOV A,YEAR

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 49H,A

MOV A,B

MOVC A,@A+DPTR

MOV 50H,A

MOV DPTR,#8004H

MOV A,49H

MOVX @DPTR,A

MOV A,#20H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

LJMP aa

DISP2:MOV SOK4,#02

MOV DPTR,#TAB

MOV A,HOUR

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 43H,A

LCALL DEL

MOV DPTR,#8004H

MOV A,50H

MOVX @DPTR,A

MOV A,#10H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,47H

MOVX @DPTR,A

MOV A,#08H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,48H

MOVX @DPTR,A

MOV A,#04H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,45H

MOVX @DPTR,A

MOV A,#02H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,46H

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#8002H

MOVX @DPTR,A

MOV A,B

MOVC A,@A+DPTR MOV 44H,A MOV A,MIN MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV 41H,A MOV A,B

MOVC A,@A+DPTR MOV 42H,A MOV A,SEC MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV 39H,A MOV A,B

MOVC A,@A+DPTR MOV 40H,A MOV DPTR,#8004H MOV A,43H MOVX @DPTR,A MOV A,#20H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL MOV DPTR,#8004H MOV A,44H MOVX @DPTR,A MOV A,#10H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL MOV DPTR,#8004H MOV A,41H

MOVX @DPTR,A

MOV A,#08H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,42H

MOVX @DPTR,A

MOV A,#04H

MOV 54H,A

MOV A,SEC1

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 51H,A

MOV A,B

MOVC A,@A+DPTR

MOV 52H,A

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,39H

MOVX @DPTR,A

MOV A,#02H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

MOV DPTR,#8004H

MOV A,40H

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

LJMP aa

DISP3:MOV SOK4,#03

MOV DPTR,#TAB

MOV A,HOUR1

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 55H,A

MOV A,B

MOVC A,@A+DPTR

MOV 56H,A

MOV A,MIN1

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV 53H,A

MOV A,B

MOVC A,@A+DPTR

MOV DPTR,#8004H MOV A,55H MOVX @DPTR,A MOV A,#20H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL MOV DPTR,#8004H MOV A,56H MOVX @DPTR,A MOV A,#10H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL MOV DPTR,#8004H MOV A,53H MOVX @DPTR,A MOV A,#08H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL MOV DPTR,#8004H MOV A,54H MOVX @DPTR,A MOV A,#04H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL MOV DPTR,#8004H MOV A,51H MOVX @DPTR,A MOV A,#02H MOV DPTR,#8002H MOVX @DPTR,A LCALL DEL

MOV DPTR,#8004H

MOV A,52H

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#8002H

MOVX @DPTR,A

LCALL DEL

LJMP aa

X0IN:INC SOK1

CJNE A,#12,uu

MOV MON,#1

RETI

uu:INC MON

RETI

tt:INC YEAR

RETI

vv:MOV A,SOK4

CJNE A,#02H,ww

MOV A,SOK1

CJNE A,#3,dd

MOV SOK1,#00H

dd:RETI

T0IN:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ R0,ee

SETB SOK2

SETB SOK5

MOV R0,#10

ee:RETI

X1IN:JNB P1.1,kkk

MOV A,HOUR

CJNE A,HOUR1,aaa

MOV A,MIN

CJNE A,MIN1,aaa

INC MIN

aaa:INC SOK3

MOV A,SOK3

CJNE A,#4,ll

MOV SOK3,#01H

ll:RETI

kkk:MOV A,SOK4

CJNE A,#01H,vv

MOV A,SOK3

CJNE A,#01H,www

MOV A,DAY

CJNE A,#30,ss

MOV DAY,#1

RETI

ss:INC DAY

RETI

www:MOV A,SOK3

CJNE A,#2,tt

MOV A,MON

MOV A,SOK3

CJNE A,#1,nn

MOV A,SEC

CJNE A,#59,mm

MOV SEC,#00H

RETI mm:INC SEC

RETI nn:MOV A,SOK3

CJNE A,#2,pp

MOV A,MIN

CJNE A,#59,oo

MOV MIN,#00H

RETI oo:INC MIN

RETI pp:MOV A,HOUR

CJNE A,#23,qq

MOV HOUR,#00H

RETI qq:INC HOUR

RETI ww:MOV A,SOK4

CJNE A,#03H,bbb

MOV A,SOK3

CJNE A,#1,ccc

MOV A,SEC1

CJNE A,#59,ddd

MOV SEC1,#00H

RETI ddd:INC SEC1

RETI ccc:MOV A,SOK3

CJNE A,#2,eee

MOV A,MIN1

CJNE A,#59,ggg

MOV MIN1,#00H

RETI

ggg:INC MIN1

RETI

eee:MOV A,HOUR1

CJNE A,#23,fff

MOV HOUR1,#00H

RETI

fff:INC HOUR1

bbb:RETI

ESIN: CLR RI;很容易被忽略

MOV A,SBUF

CJNE A,#02H,aaaa

MOV A,#02H

MOV SBUF,A WAIT1:JNB TI,WAIT1

CLR TI

RETI aaaa:

CJNE A,#0AAH,bbbb

MOV A,MIN

MOV SBUF,A

WAIT2:JNB TI,WAIT2

CLR TI

MOV A,HOUR

MOV SBUF,A

WAIT3:JNB TI,WAIT3

CLR TI

RETI

bbbb: CPL P1.7

;WAIT7:JNB RI,WAIT7

;

CLR RI

;

MOV A,SBUF

;

CJNE A,#01H,cccc

;WAIT4:JNB RI,WAIT4

;

CLR RI

;

MOV A,SBUF

;

MOV HOUR,A

;cccc: NOP

;WAIT5:JNB RI,WAIT5

;

CLR RI

;

MOV A,SBUF

;MOV MIN,A

RETI

DEL:MOV R1,#750

zzz:DJNZ R1,zzz

RET

TAB:DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH

END

六、设计总结。

单片机已渗透到我们生活的各个领域,几乎很难找到没有单片机足迹的领域。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说全自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。因此学习单片机是社会发展的必然需求。

为期十天的单片机课程设计结束了,回想起这十天的设计过程,有紧张激烈的构思讨论过程,有忙碌甚至绞尽脑汁的编程调试阶段。有久久实现不了的无奈,也有灵机一动的兴奋,更有老师的肯定和鼓励。

几天的单片机课程设计,较之前的实验上机实现了更多的功能,使得单片机实力有更充分的发挥,硬件设计还算简单,但是其编程技巧有了更深更高的要求,软件编程是本课程设计的难点和重点,通过对题目要求的仔细研究,外加之前实验的经验,加上老师的悉心指点,并提出了宝贵的意见,我们的“时钟“功能得以实现。在这里,我必须要感谢老师的悉心指导,同学们的互相帮助,谢谢你们!

第二篇:单片机课程设计

设计题目: 单片机课程设计

学生姓名:

院: 电气与信息工程学院

级: 电子111班 指导教师:

日 期: 2014年9月20日

一、课程设计目的:

了解电子元器件的功能与原理,掌握单片机的结构和原理,学会使用单片机应用开发技术的相关软件如 keill、STC_ISP_V394等,能够使用c语言的语言编程简单的功能。

二、设计的思想:

利用所提供的单片机和开发板的原理图用keill软件编程程序以实现一些功能。然后用STC_ISP_V394.exe软件将编译完全正确的程序生成的hxe文件下载到开发板上,再调试编译的程序能否实现其所设计的功能。

1、对蜂鸣器的了解:

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,它由振荡器、电磁线圈、磁铁、振动膜片及外壳组成,接通电源后,振荡器产生的音频信号由电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。

2、设计:

我们所使用的开发板实物图如图一,单片机对右上角蜂鸣器的控制是加入三极管接入vcc,单片机的第22引脚和负极上,以此来控制蜂鸣器工作。单片机我们选择STC89C52RC+1602液晶来实现对蜂鸣器的控制及显示所需要的信息。

图一 调试说明:

首先用Keil软件创建一个工程,将程序源代码输入并编译生成单片可执行的.hex文件。其次,打开单片机实践板的电源,接好串口线,用STC-ISP烧录软件,将.hex文件烧录入单片机中。程序下载完毕后,单片机会自动执行程序功能。最后,观察程序功能的执行情况,看是否达到了设计要求。

如果单片机实践板硬件电路的执行结果与设计结果一致,则说明设计过程及流程没有问题,完全符合设计要求。否则,先检查单片机实践板的硬件电路是否完好,是否有断点、漏焊、虚焊以及元器件是否完好等情况,排除故障重新连接后重新进行调试。如果仍然无法正

常实现,则说明程序编写有误,需要认真检查程序流程,然后经过反复的修改与调试排除故障,实现设计要求的各项功能。编译和烧写该程序到单片机:

(1)用Keil编译上面的代码,并设置产生16进制代码文件*.hex.(2)用专用下载线,连接好实验板和电脑串口(DB9)(2)运行hex文件烧写软件STC_ISP_V394.exe

选单片机的型号,并打开编译产生好的hex文件

点击下载,给开发板上电。

3、实现的功能:使用单片机将歌曲《八月桂花》的调子通过蜂鸣器播放出来,用1602液晶将想要表达的信息有步骤地显示在液晶显示屏上,并且调子与显示内容可以任意通过修改的程序烧录到单片机内,实现设计产品的使用性与灵活性。

三、实验程序:

/************************************************************************

[主题] C51音乐程序《八月桂花》

[功能]

通过单片机演奏音乐,显示一些内容

/**********************************************************************/

#include

#include

//本例采用89C52, 晶振为11.0592MHZ

//关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;

//所以拿出谱子, 试探编吧!

unsigned char i=0;sbit Beep = P2^7;

unsigned char p,m;

//m为频率常数变量

unsigned char n=0;//n为节拍常数变量

unsigned char code music_tab[] ={

0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C , 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18 , 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00

};

void int0()interrupt 1

//采用中断0 控制节拍

{ TH0=0xd8;

TL0=0xef;

n--;

}

void delay(unsigned char m)

//控制频率延时

{

unsigned i=3*m;

while(--i);

}

void delayms(unsigned char a)//豪秒延时子程序

{

while(--a);

//采用while(--a)不要采用while(a--);各位可编译一下看看汇编结果就知道了!

}

typedef unsigned char BYTE;typedef bit BOOL;

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;sbit LCD_EP = P2^2;

BYTE code dis1[] = {“

WLCOME TO

”};BYTE code dis2[] = {“

DanPianJi ”};BYTE code dis3[] = {“

111iZnaiD

”};BYTE code dis4[] = {“

eiXeiX ”};

delays(int ms){

// 延时子程序 int i;while(ms--){

for(i = 0;i< 250;i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

} } }

BOOL lcd_bz(){

// 测试LCD忙碌状态 BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result =(BOOL)(P0 & 0x80);LCD_EP = 0;return result;}

lcd_wcmd(BYTE cmd){

while(lcd_bz());LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;

}

lcd_pos(BYTE pos){

lcd_wcmd(pos | 0x80);

// 写入指令数据到LCD //设定显示位置

}

lcd_wdat(BYTE dat)

{

//写入字符显示数据到LCD while(lcd_bz());LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;}

lcd_init(){

lcd_wcmd(0x38);

delays(1);lcd_wcmd(0x0c);

delays(1);lcd_wcmd(0x06);

delays(1);lcd_wcmd(0x01);

delays(1);}

void main()

{

BYTE j;

lcd_init();

delays(10);

//LCD初始化设定

//16*2显示,5*7点阵,8位数据//显示开,关光标 //移动光标 //清除LCD的显示内容

// 初始化LCD

lcd_wcmd(0x06);

//向右移动光标

lcd_pos(0);

//设置显示位置为第一行的第1个字符

j = 0;

while(dis1[ j ]!= '')

{

//显示字符“Welcome TO”

lcd_wdat(dis1[ j ]);

j++;

delays(30);

//控制两字之间显示速度

}

lcd_pos(0x40);

j = 0;

while(dis2[ j ]!= '')

{

lcd_wdat(dis2[ j ]);

j++;

delays(30);

}

delays(800);

lcd_wcmd(0x01);

delays(1);

lcd_wcmd(0x04);

lcd_pos(15);

j = 0;

while(dis3[ j ]!= '')

{

lcd_wdat(dis3[ j ]);

j++;

delays(30);

}

lcd_pos(0x4F);

j= 0;

while(dis4[ j ]!= '')

{

lcd_wdat(dis4[ j ]);

j++;

delays(30);

}

delays(800);

//设置显示位置为第二行第1个字符 //显示字符“ DanPianJi ”

//控制两字之间显示速度

//控制停留时间

//清除LCD的显示内容

//向左移动光标

//设置显示位置为第一行的第16个字符

//显示字符“DianZi111”

//控制两字之间显示速度

//设置显示位置为第二行的第16个字符//显示字符“ XieXie ”

//控制两字之间显示速度

//控制停留时间

TMOD&=0x0f;

TMOD|=0x01;

TH0=0xd8;TL0=0xef;

IE=0x82;

play:

while(1)

{

a: p=music_tab[i];

if(p==0x00)

{ i=0, delayms(1000);goto play;}

//如果碰到结束符,延时1秒,回到开始再来一遍

else if(p==0xff){ i=i+1;delayms(100),TR0=0;goto a;} //若碰到休止符,延时100ms,继续取下一音符

else

{m=music_tab[i++], n=music_tab[i++];} //取频率常数 和 节拍常数

TR0=1;

//开定时器1

while(n!=0)Beep=~Beep,delay(m);

//等待节拍完成, 通过P1口输出音频(可多声道哦!)

TR0=0;

//关定时器1

}

}

四、电路图的protue仿真

五、单片机课程设计心得体会:

这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践

关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

第三篇:单片机课程设计

基于单片机的火灾智能报警控制系统的设计

前言

在各种灾害中,火灾是最经常、最普通地威胁公众安全和社会发展的灾害之一。人类能够对火进行利用和控制,是文明进步的一个重要标志。火,给人类带文明进步、光明和温暖。但是,失去控制的火,就给人类造成灾害。据统计,我国 70 年代火灾年平均损失不到 2.5 亿元,80 年代火灾年平均损失不到

3.2 亿元。进入 90 年代,特别是 1993 年以来,火灾造成的直接财产损失上升到年均十几亿元,年均死亡 2000 多人。2010年上海静安区高层住宅着火,导致58人死亡,70余人受伤。2014年1月云南香格里拉大火,烧毁房屋100多栋,直接经济损失1亿多元人民币。火灾事件经常发生,防止火灾事故关系到人民群众的生命财产安全和社会和谐稳定。现在各种电子产品的普及,再加上人们防火意识的不强,这些都给火灾的发生带来了巨大的安全隐患。

对于火灾最关键的问题在于预防,目前防火报警系统趋于智能化、自动化,灵敏程度也越来越高。在这种背景下,基于单片机的火灾智能报警控制系统能突显出其巨大的优越性。目前,国内大多数偏重于商场、宾馆、高级写字楼、大型仓库等大型火灾报警系统的研发和设计。本系统侧重于小型火灾智能报警系统的设计,可在火灾发生初期检测到并且报警,还能够实时显示温度和烟雾浓度。

第四篇:单片机课程设计

单片机课程设计

课题: 简易电子琴设计

院:

电气与信息工程学院 专

业:

电子信息工程 姓

名:

李琳琳 学

号:

093411106

指导老师:

田巍

河南城建学院

2014年

01 月

01 日

第五篇:单片机课程设计

单片机课程设计

---------

机电汽车工程学院

同组成员:(机091-1)姓名(学号):

下载单片机课程设计word格式文档
下载单片机课程设计.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    单片机课程设计

    单片机课程设计_报警器 报警器 ORG 0010H START:MOV DPTR,#TAB CLR P3.1 SETB P1 MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV R0,A LCALL DISP1 MOV A,P1 CPL A ANL A,#0FH MOV......

    单片机课程设计

    武汉理工大学单片机实训报告 第一章 绪论 ...............................................................................................................................

    单片机课程设计

    镇江高等专科学校课程设计1 项目要求 基于AT89S51单片机的密码锁设计,具体功能如下: (1)总共可以设置8位密码,每位密码值范围为1~8。 (2)用户可自行设定和修改密码。 (3)按每个......

    单片机课程设计

    中北大学单片机原理及接口技术课程设计说明书 1 绪论 电子钟已成为人们日常生活中必不可少的物品,广泛用于个人、家庭以及车站、影院、办公室等公共场所,给人们的生活、学习、......

    单片机课程设计

    《单片机技术》课程设计说明书 音乐盒 院、部:电气与信息工程学院 学生姓名:刘亮 指导教师:凌云职称讲师 专业:电子信息工程 班级:电子1302班 学号:1330340220 完成时间: 2016年1......

    单片机课程设计

    课 程 设 计 设计题目: 基于单片机的8*8点阵显示数字设计 学生姓名: 指导教师: 二级学院: 专业: 班级: 学号: 目 录 摘要„„„„„„„„„„„„„„„„„„„„„„„„„„......

    单片机课程设计

    单片机课程设计 跑马灯的控制 摘要:本设计选择对跑马灯的控制,先构思跑马灯实现预想效果,然后进行分 析,根据要求编写程序,选择硬件端口,并进行调试致预想效果,最后浅谈课程设计的......

    单片机课程设计

    多元智能理论在美国教育改革的理论和实践中产生了广泛的积极影响,并且已经成为当前美国教育改革的重要理论基础之一。运用多元智能理论分析我国的教育问题,对于促进我国的教育......