【正文】
.7K矩陣按鍵電路 圖 蜂鳴器電路的設(shè)計 單片 機不直接與蜂鳴器連接,通過控制三極管的導(dǎo)通來控制蜂鳴器的工作,如圖。 12B Z 1B u z z e rQ 2 29012D44148+5B U Z ZR 5 21KR 6 610K蜂鳴器R7 100 圖 數(shù)碼管及 LED 電路的設(shè)計 數(shù)碼管為共陽,通過 38 譯碼器來是實現(xiàn)位選。 38 譯碼器的輸入端 A0、 A A2 分別接接單片機的 、 、 ,通過 38 譯碼器選通數(shù)碼管上面的三極管,從而實現(xiàn)數(shù)碼管的選擇,如圖 . 重慶科技學(xué)院單片機《關(guān)于電腦時鐘的實訓(xùn)》的報告 6 L E D 3L E DD B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7D B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7D B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7D B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7D B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7Q89012Q99012Q 149012Q 159012Q 179012R 381KR 391KR 441KR 451KR 461KQ 169012R 471KDB0DB1DB2DB3DB4DB5DB6DB7+5L E D S 2L E D S 3L E D S 4L E D S 5L E D S 6L E D S 0Y510A12A01E25Y213E14Y411G N D8Y69Y312E36Y114Y015A23Y77V C C16U3 74H C 138L E D S 0L E D S 1L E D S 2L E D S 3L E D S 4L E D S 5L E D 4L E DL E D 5L E DL E D 6L E DL E D 7L E DL E D 8L E DL E D 9L E DL E D 2L E DD B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7Q79012R 371KL E D S 1L E D S 6+5C 220. 1uFE N L E D 2D B 0D B 1D B 2D B 3D B 4D B 5D B 6D B 7D B _0D B _1D B _2D B _3D B _5D B _6D B _7D B _4D I R1A12B217A34B415A56B613A78B811G N D10A89B712A67B514A45B316A23B118OE19V C C20U2 74H C 245C 200. 1uF+5+5+5+5abfcgde10985423abcdefg7dpdp1 6c om c omD S 1 L E D 7S E Gabfcgde10985423abcdefg7dpdp1 6c om c omD S 2 L E D 7S E Gabfcgde10985423abcdefg7dpdp1 6c om c omD S 3 L E D 7S E Gabfcgde10985423abcdefg7dpdp1 6c om c omD S 4 L E D 7S E Gabfcgde10985423abcdefg7dpdp1 6c om c omD S 5 L E D 7S E Gabfcgde10985423abcdefg7dpdp1 6c om c omD S 6 L E D 7S E GE N L E D 1R 18 330R 19 330R 20 330R 21 330R 22 330R 23 330R 24 330R 25 330R104.7KR114.7KR124.7KR134.7KR144.7KR154.7KR164.7KR174.7KR274.7KR284.7KR294.7KR304.7KA D D R 0A D D R 1A D D R 2 圖 LCD 電路的設(shè)計 LCD 數(shù)據(jù)端連接單片機的 P0 口, RS、 WR、 E分別接 、 、 ,如圖 . +5G N D1V C C2VO3RS4WR5E6D B 07D B 18D B 29D B 310D B 411D B 512D B 613D B 714B G V C C15B G G N D16L C D 1L C D 1602+5D B _0D B _1D B _2D B _3D B _5D B _6D B _7D B _4R 6718 E N L C D 1A D D R 1A D D R 0 圖 四、系統(tǒng)軟件設(shè)計 主程序設(shè)計 開始 重慶科技學(xué)院單片機《關(guān)于電腦時鐘的實訓(xùn)》的報告 7 圖 中斷子程序設(shè)計 音樂鈴聲 定時器 0 初始化 采集按鍵輸入的信息 到點報警 Buzzflag=1 修改時間 修改報警時間 開始 Count 計數(shù) 1 秒時間 Second++ 1 分鐘 1 小時 Hour++ 是 否 否 是 否 是 否 改時間 改報警時間 是 否 否 是 是 否 定時器賦初值 報警 Minute++ 是 報警 1s 重慶科技學(xué)院單片機《關(guān)于電腦時鐘的實訓(xùn)》的報告 8 圖 時間設(shè)置子程序設(shè)計 /* 時間設(shè)置函數(shù) */ void timeset() { if(hourflag==1) //改小時 { if(upflag==1) { upflag=0。 hour++。 if(hour=24) hour=0。 } if(downflag==1) { downflag=0。 if(hour==0)hour=23。 else hour。 } } if(minuteflag==1) //改分鐘 { if(upflag==1) { upflag=0。 結(jié)束 重慶科技學(xué)院單片機《關(guān)于電腦時鐘的實訓(xùn)》的報告 9 minute++。 if(minute=60) minute=0。 } if(downflag==1) { downflag=0。 if(minute==0)minute=59。 else minute。 } } count=0。 //計數(shù)初始化 count_s=0。 second=0。 } 音樂鈴聲子程序設(shè)計 void PlayTwoTiger() { unsigned char beat。 //記錄當(dāng)前節(jié)拍索引 unsigned char note。 //當(dāng)前節(jié)拍對應(yīng)的音符 unsigned int time = 0。 //當(dāng)前節(jié)拍計時 unsigned int beatTime = 0。 //當(dāng)前節(jié)拍總時間 unsigned int soundTime = 0。 //當(dāng)前節(jié)拍需發(fā)聲時間 unsigned char code TwoTigerNote[] = { //兩只老虎音符表 1, 2, 3, 1, 1, 2, 3, 1, 3, 4, 5, 3, 4, 5, 5,6, 5,4, 3, 1, 5,6, 5,4, 3, 1, 1, 5, 1, 1, 5, 1, }。 重慶科技學(xué)院單片機《關(guān)于電腦時鐘的實訓(xùn)》的報告 10 unsigned char code TwoTigerBeat[] = { //兩只老虎節(jié)拍表, 4表示一拍, 1 就是 1/4 拍, 8 就是 2拍 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 8, 3,1, 3,1, 4, 4, 3,1, 3,1, 4, 4, 4, 4, 8, 4, 4, 8, }。 for (beat=0。 beatsizeof(TwoTigerNote)。 ) //用節(jié)拍索引作為循環(huán)變量 { while (!tmrflag)。 //每次定時器中斷完成后,檢測并處理節(jié)拍 tmrflag = 0。 if (time == 0) { //啟動一個新的節(jié)拍 note = TwoTigerNote[beat] 1。 T1LoadH = NoteReload[note] 8。 T1LoadL = NoteReload[note]。 beatTime = (Tw