欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      單片機(jī)課程設(shè)計(jì)

      時(shí)間:2019-05-15 11:18:01下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《單片機(jī)課程設(shè)計(jì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《單片機(jī)課程設(shè)計(jì)》。

      第一篇:單片機(jī)課程設(shè)計(jì)

      單片機(jī)課程設(shè)計(jì)報(bào)告

      專業(yè):電氣工程及其自動(dòng)化 班級(jí):電0901-4班 姓名:代紅新 學(xué)號(hào):20092444 指導(dǎo)老師:石彥輝

      電氣與電子工程學(xué)院

      2012/6/22

      一、設(shè)計(jì)題目:電子時(shí)鐘

      二、設(shè)計(jì)要求:

      1.通過鍵設(shè)置當(dāng)前時(shí)間(時(shí)分秒)2.可切換顯示年月日

      3.可設(shè)定鬧鐘,到時(shí)報(bào)警,一個(gè)發(fā)光管閃爍(1次/秒),有復(fù)位鍵停止報(bào)警 4.可切換顯示鬧鐘時(shí)間和當(dāng)前時(shí)間

      5.本機(jī)地址為02H,當(dāng)接到上位機(jī)發(fā)的02H時(shí),則回發(fā)02H 當(dāng)接到上位機(jī)發(fā)的AAH時(shí),則將當(dāng)前時(shí)間發(fā)給上位機(jī) 當(dāng)收到上位機(jī)發(fā)的55H時(shí),則修改當(dāng)前時(shí)間(時(shí)分秒)

      三、設(shè)計(jì)思路

      經(jīng)過思考,該電子時(shí)鐘試驗(yàn)須有六個(gè)八段數(shù)碼管,分別指示時(shí)分秒,切換指示年月日,由指示燈指示鬧鐘提醒,以及上位機(jī)對(duì)下位機(jī)的控制,更改時(shí)間。

      硬件設(shè)計(jì)思路:下位機(jī)顯示時(shí)間和日期,以及鬧鐘指示燈,時(shí)間日期的更改由兩個(gè)中斷實(shí)現(xiàn),一個(gè)位選,一個(gè)加一。上位機(jī)顯示發(fā)送的數(shù)據(jù)和接受顯示,僅由一個(gè)外部中斷來切換方式。

      軟件設(shè)計(jì)思路:通過之前的單片機(jī)實(shí)驗(yàn)的練習(xí),加上對(duì)本實(shí)驗(yàn)的理解,知道該由數(shù)碼管顯示時(shí)間,日期,進(jìn)位轉(zhuǎn)換,定時(shí)器計(jì)數(shù)器的應(yīng)用,將數(shù)字轉(zhuǎn)換為24進(jìn)制,60進(jìn)制,30進(jìn)制以及365進(jìn)制,并通過位選和片選實(shí)現(xiàn)顯示。

      四、硬件設(shè)計(jì)

      五、軟件設(shè)計(jì)

      (一)上位機(jī)編程設(shè)計(jì)

      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(二)下位機(jī)編程設(shè)計(jì)

      SOK2 BIT 20H.0;秒標(biāo)志位 SOK5 BIT 20H;秒標(biāo)志位

      SEC EQU 30H

      ;秒

      MIN EQU 31H

      ;分

      HOUR EQU 32H

      ;時(shí)

      DAY EQU 33H

      ;天

      MON EQU 34H

      ;月

      YEAR EQU 35H

      ;年

      SEC1 EQU 36H

      ;鬧鐘的秒

      MIN1 EQU 37H

      ;鬧鐘的分

      HOUR1 EQU 38H;鬧鐘的時(shí)

      SOK1 EQU 57H

      ;模式切換

      SOK3 EQU 58H;位選擇標(biāo)志

      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

      六、設(shè)計(jì)總結(jié)。

      單片機(jī)已滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到?jīng)]有單片機(jī)足跡的領(lǐng)域。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說全自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的工程師和科學(xué)家。科技越發(fā)達(dá),智能化的東西就越多。因此學(xué)習(xí)單片機(jī)是社會(huì)發(fā)展的必然需求。

      為期十天的單片機(jī)課程設(shè)計(jì)結(jié)束了,回想起這十天的設(shè)計(jì)過程,有緊張激烈的構(gòu)思討論過程,有忙碌甚至絞盡腦汁的編程調(diào)試階段。有久久實(shí)現(xiàn)不了的無奈,也有靈機(jī)一動(dòng)的興奮,更有老師的肯定和鼓勵(lì)。

      幾天的單片機(jī)課程設(shè)計(jì),較之前的實(shí)驗(yàn)上機(jī)實(shí)現(xiàn)了更多的功能,使得單片機(jī)實(shí)力有更充分的發(fā)揮,硬件設(shè)計(jì)還算簡單,但是其編程技巧有了更深更高的要求,軟件編程是本課程設(shè)計(jì)的難點(diǎn)和重點(diǎn),通過對(duì)題目要求的仔細(xì)研究,外加之前實(shí)驗(yàn)的經(jīng)驗(yàn),加上老師的悉心指點(diǎn),并提出了寶貴的意見,我們的“時(shí)鐘“功能得以實(shí)現(xiàn)。在這里,我必須要感謝老師的悉心指導(dǎo),同學(xué)們的互相幫助,謝謝你們!

      第二篇:單片機(jī)課程設(shè)計(jì)

      設(shè)計(jì)題目: 單片機(jī)課程設(shè)計(jì)

      學(xué)生姓名:

      學(xué)

      院: 電氣與信息工程學(xué)院

      級(jí): 電子111班 指導(dǎo)教師:

      日 期: 2014年9月20日

      一、課程設(shè)計(jì)目的:

      了解電子元器件的功能與原理,掌握單片機(jī)的結(jié)構(gòu)和原理,學(xué)會(huì)使用單片機(jī)應(yīng)用開發(fā)技術(shù)的相關(guān)軟件如 keill、STC_ISP_V394等,能夠使用c語言的語言編程簡單的功能。

      二、設(shè)計(jì)的思想:

      利用所提供的單片機(jī)和開發(fā)板的原理圖用keill軟件編程程序以實(shí)現(xiàn)一些功能。然后用STC_ISP_V394.exe軟件將編譯完全正確的程序生成的hxe文件下載到開發(fā)板上,再調(diào)試編譯的程序能否實(shí)現(xiàn)其所設(shè)計(jì)的功能。

      1、對(duì)蜂鳴器的了解:

      蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,它由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼組成,接通電源后,振蕩器產(chǎn)生的音頻信號(hào)由電流通過電磁線圈,使電磁線圈產(chǎn)生磁場,振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性的振動(dòng)發(fā)聲。

      2、設(shè)計(jì):

      我們所使用的開發(fā)板實(shí)物圖如圖一,單片機(jī)對(duì)右上角蜂鳴器的控制是加入三極管接入vcc,單片機(jī)的第22引腳和負(fù)極上,以此來控制蜂鳴器工作。單片機(jī)我們選擇STC89C52RC+1602液晶來實(shí)現(xiàn)對(duì)蜂鳴器的控制及顯示所需要的信息。

      圖一 調(diào)試說明:

      首先用Keil軟件創(chuàng)建一個(gè)工程,將程序源代碼輸入并編譯生成單片可執(zhí)行的.hex文件。其次,打開單片機(jī)實(shí)踐板的電源,接好串口線,用STC-ISP燒錄軟件,將.hex文件燒錄入單片機(jī)中。程序下載完畢后,單片機(jī)會(huì)自動(dòng)執(zhí)行程序功能。最后,觀察程序功能的執(zhí)行情況,看是否達(dá)到了設(shè)計(jì)要求。

      如果單片機(jī)實(shí)踐板硬件電路的執(zhí)行結(jié)果與設(shè)計(jì)結(jié)果一致,則說明設(shè)計(jì)過程及流程沒有問題,完全符合設(shè)計(jì)要求。否則,先檢查單片機(jī)實(shí)踐板的硬件電路是否完好,是否有斷點(diǎn)、漏焊、虛焊以及元器件是否完好等情況,排除故障重新連接后重新進(jìn)行調(diào)試。如果仍然無法正

      常實(shí)現(xiàn),則說明程序編寫有誤,需要認(rèn)真檢查程序流程,然后經(jīng)過反復(fù)的修改與調(diào)試排除故障,實(shí)現(xiàn)設(shè)計(jì)要求的各項(xiàng)功能。編譯和燒寫該程序到單片機(jī):

      (1)用Keil編譯上面的代碼,并設(shè)置產(chǎn)生16進(jìn)制代碼文件*.hex.(2)用專用下載線,連接好實(shí)驗(yàn)板和電腦串口(DB9)(2)運(yùn)行hex文件燒寫軟件STC_ISP_V394.exe

      選單片機(jī)的型號(hào),并打開編譯產(chǎn)生好的hex文件

      點(diǎn)擊下載,給開發(fā)板上電。

      3、實(shí)現(xiàn)的功能:使用單片機(jī)將歌曲《八月桂花》的調(diào)子通過蜂鳴器播放出來,用1602液晶將想要表達(dá)的信息有步驟地顯示在液晶顯示屏上,并且調(diào)子與顯示內(nèi)容可以任意通過修改的程序燒錄到單片機(jī)內(nèi),實(shí)現(xiàn)設(shè)計(jì)產(chǎn)品的使用性與靈活性。

      三、實(shí)驗(yàn)程序:

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

      [主題] C51音樂程序《八月桂花》

      [功能]

      通過單片機(jī)演奏音樂,顯示一些內(nèi)容

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

      #include

      #include

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

      //關(guān)于如何編制音樂代碼, 其實(shí)十分簡單,各位可以看以下代碼.//頻率常數(shù)即音樂術(shù)語中的音調(diào),而節(jié)拍常數(shù)即音樂術(shù)語中的多少拍;

      //所以拿出譜子, 試探編吧!

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

      unsigned char p,m;

      //m為頻率常數(shù)變量

      unsigned char n=0;//n為節(jié)拍常數(shù)變量

      unsigned char code music_tab[] ={

      0x18, 0x30, 0x1C , 0x10, //格式為: 頻率常數(shù), 節(jié)拍常數(shù), 頻率常數(shù), 節(jié)拍常數(shù),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 控制節(jié)拍

      { TH0=0xd8;

      TL0=0xef;

      n--;

      }

      void delay(unsigned char m)

      //控制頻率延時(shí)

      {

      unsigned i=3*m;

      while(--i);

      }

      void delayms(unsigned char a)//豪秒延時(shí)子程序

      {

      while(--a);

      //采用while(--a)不要采用while(a--);各位可編譯一下看看匯編結(jié)果就知道了!

      }

      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){

      // 延時(shí)子程序 int i;while(ms--){

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

      {

      _nop_();

      _nop_();

      _nop_();

      _nop_();

      } } }

      BOOL lcd_bz(){

      // 測試LCD忙碌狀態(tài) 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);

      // 寫入指令數(shù)據(jù)到LCD //設(shè)定顯示位置

      }

      lcd_wdat(BYTE dat)

      {

      //寫入字符顯示數(shù)據(jù)到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初始化設(shè)定

      //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)//顯示開,關(guān)光標(biāo) //移動(dòng)光標(biāo) //清除LCD的顯示內(nèi)容

      // 初始化LCD

      lcd_wcmd(0x06);

      //向右移動(dòng)光標(biāo)

      lcd_pos(0);

      //設(shè)置顯示位置為第一行的第1個(gè)字符

      j = 0;

      while(dis1[ j ]!= '