|
摘要:本文詳細(xì)介紹了一種智能電話計(jì)時(shí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該計(jì)時(shí)系統(tǒng)以單片機(jī)AT89C51作為主控芯片,通過(guò)音頻譯碼器LM567,識(shí)別出各種電話信號(hào)音和MT8870 的解碼信息,以達(dá)到對(duì)用戶(hù)每個(gè)主叫電話信息記錄的目的;并帶有合理的人機(jī)交互的顯示屏和控制鍵盤(pán),以便用戶(hù)查詢(xún)主叫信息。 關(guān)鍵字:AT89C51;DTMF;單片機(jī);串行通信 中圖分類(lèi)號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:B Abstract:This paper introduced particularly the design and research of one kind of intelligenttiming system of phone. This timing system used AT89C51 as main control single chip. By usingLM567 audio encoder to identify some kinds of phone signal sounds and the encoder informationof MT8870, this timing can gain its ends of recording every initiative call information of the usersand sound to achieve the purpose of writing down call messages for rational human-computer interaction display and keyboard for users’ information inquiry.Key words:AT89C51,DTMF,single chip computer,serial communication 0 引言 隨著科技的進(jìn)步、計(jì)算機(jī)技術(shù)和單片機(jī)技術(shù)的快速發(fā)展與應(yīng)用,電話計(jì)時(shí)系統(tǒng)有了長(zhǎng)足的發(fā)展。為了使電話應(yīng)用更加方便,因此要開(kāi)發(fā)出一種更科學(xué)的電話計(jì)時(shí)系統(tǒng)——基于AT89C51的智能電話計(jì)時(shí)系統(tǒng)。 1 系統(tǒng)整體方案設(shè)計(jì) 1.1 系統(tǒng)特征:該智能電話計(jì)時(shí)器的特征是:1、計(jì)時(shí)準(zhǔn)確2、功耗低3、可單獨(dú)使用,也可嵌入電話機(jī)中使用4、具有可配置性。 1.2 系統(tǒng)硬件設(shè)計(jì):系統(tǒng)采用模塊化設(shè)計(jì),主要組成模塊: (1)鈴流檢測(cè)模塊; (2)信號(hào)音識(shí)別模塊; (3)按鍵譯碼模塊; (4)單片機(jī)控制模塊; (5)顯示模塊。系統(tǒng)原理如下圖1-1。
1.3 系統(tǒng)軟件方案設(shè)計(jì):系統(tǒng)軟件的設(shè)計(jì)同樣采用模塊化設(shè)計(jì),系統(tǒng)程序分為8 個(gè)模塊: (1)主程序(包括系統(tǒng)初始化部分); (2)撥號(hào)服務(wù)程序; (3)INT0中斷(MT8870有效輸出)服務(wù)程序; (4)按鍵中斷服務(wù)程序; (5)中斷服務(wù)程序; (6)串行中斷服務(wù)程序; (7)數(shù)據(jù)顯示程序; (8)24C02讀寫(xiě)程序。
2 系統(tǒng)硬件電路設(shè)計(jì) 2.1 鈴流檢測(cè)模塊:本模塊的功能是可以整流使正弦波全部變?yōu)檎蚍讲,可以檢測(cè)是否摘機(jī)。本模塊中選擇的光電耦合器是4N25,它在本模塊中起的是隔離作用。
2.2按鍵譯碼模塊:鍵盤(pán)實(shí)現(xiàn)本系統(tǒng)的人機(jī)交互,設(shè)置了5個(gè)鍵,其中3個(gè)鍵實(shí)現(xiàn)通話記錄的上翻,下翻及刪除。另外兩個(gè)鍵實(shí)現(xiàn)對(duì)時(shí)間的小時(shí)位和分鐘位的調(diào)整。 2.3 信號(hào)音識(shí)別模塊工作原理:音頻譯碼器LM567 結(jié)合單片機(jī)AT89C51 定時(shí)器T2 的定時(shí)和捕捉功能,可以檢測(cè)是否有忙音或回鈴音的信號(hào)頻率,如果檢測(cè)到回鈴音的信號(hào)頻率才開(kāi)始計(jì)數(shù)。如圖2-1。
2.4 單片機(jī)控制模塊:?jiǎn)纹瑱C(jī)的9 腳為復(fù)位端,在該腳加一個(gè)10K 的電阻R12 到地,可以保證該腳在正常工作中為低電平0,單片機(jī)的18 和19 腳接12MH 的石英晶體,在晶體兩端各接一個(gè)30PF 的電容,單片機(jī)的40 管腳接電源VCC。如圖2-2;
2.5 顯示模塊:本模塊采用兩片四位聯(lián)體的共陰極數(shù)碼管做顯示。數(shù)碼管的6,8,9,10 管腳分別與單片機(jī)的P2.0,P2.1,P2.2,P2.3 口相連,數(shù)碼管的11,7,4,2,1,10,5,3 管腳分別與單片機(jī)的0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7 口相連。如圖2-3。

圖2-3 顯示電路
3 系統(tǒng)軟件設(shè)計(jì) 3.1 系統(tǒng)主程序流程:智能電話計(jì)時(shí)器是一種更科學(xué)的電話計(jì)時(shí)系統(tǒng),單片機(jī)AT89C51通過(guò)執(zhí)行程序能對(duì)外部的信息進(jìn)行采集、分析和決策。系統(tǒng)主程序流程可分為: (1)關(guān)中斷; (2)系統(tǒng)堆棧初始化; (3)設(shè)置INT1 工作方式; (4)設(shè)置T1 工作方式及初值; (5)設(shè)置T0 工作方式及初值; (6)打開(kāi)INT1,T1 中斷; (7)P1.0~P1.4 口送高電平(準(zhǔn)備讀入數(shù)據(jù)); (8)使T1 開(kāi)始工作; (9)初始化完畢,進(jìn)入循環(huán)等待中斷; 3.2 數(shù)據(jù)定義和說(shuō)明: (1)MT8870DE1(18)輸出表3-1 設(shè)計(jì)譯碼數(shù)組如下:decoder db 1h,2h,3h,4h,5h,6h,0h,7h,8h,9h,0h,2ah,23h 用于將MT8870DE1(18)輸出結(jié)果轉(zhuǎn)化為正確的數(shù)字號(hào)碼。
(2)數(shù)碼顯示數(shù)組(共陰):display db 11000000b,11111001b,10100100b,10110000b,10011011b,10010010b,10000010b,11111000b,10000000b,10010000b 共陰極數(shù)碼管顯示數(shù)字(0-9 時(shí))對(duì)應(yīng)的需要送入的數(shù)據(jù)編碼。 (3)display switch db 0100h,0200h,0300h,0400h,0500h,0600h,0700h,0800h 是為方便選通各個(gè)數(shù)碼管而定義的各個(gè)數(shù)碼管的相應(yīng)選通地址。 (4)其他關(guān)鍵數(shù)據(jù)存放區(qū)域(5)初始化模塊。 內(nèi)存布局說(shuō)明: 0400H~0FFFH(1K~4K-1):ROM 區(qū)域,為系統(tǒng)代碼區(qū)域。 0000H~0080H(128 bytes):片內(nèi)RAM,系統(tǒng)棧及寄存器。擴(kuò)展的外存用于數(shù)據(jù)存儲(chǔ)。 0000H~0400H(1K):系統(tǒng)緩存區(qū)。剩余用做記錄存儲(chǔ)區(qū)域。 3.3 程序段說(shuō)明:程序中用到了三個(gè)中斷源:INT1,T0,T1,各中斷源程序功能如下: 3.3.1 INT1 中斷服務(wù)程序:主要用來(lái)讀入用戶(hù)撥入的電話號(hào)碼,并存儲(chǔ)號(hào)碼相關(guān)信息: PHONENUMBER,NUMBERLENGTH 等。 3.3.2T1 中斷服務(wù)程序:用戶(hù)通話開(kāi)始,啟動(dòng)定時(shí)器T0 的計(jì)時(shí)功能,并根據(jù)P1 口讀入的狀態(tài)判斷此次通話是否還在繼續(xù)。若通話還在繼續(xù),則T0 保持計(jì)時(shí);否則,若此次通話結(jié)束則保存此次通話相關(guān)信息,并且使T0 結(jié)束計(jì)時(shí)。注:在中斷服務(wù)程序退出前要重置計(jì)時(shí)器T1,同時(shí)要結(jié)束T0 通話計(jì)時(shí)。如圖3-3 T1 中斷服務(wù)程序流程圖。 為了保存已撥出的電話號(hào)碼,對(duì)電話號(hào)碼數(shù)據(jù)組織說(shuō)明如下:號(hào)碼長(zhǎng)度:2 字節(jié)。號(hào)碼記錄:28 字節(jié)(一個(gè)電話號(hào)碼應(yīng)該足夠)(定長(zhǎng))。通話時(shí)間:2 字節(jié)(單位:秒)。 總體存儲(chǔ)過(guò)程中采用連續(xù)空間(鏈表結(jié)構(gòu));表頭地址單獨(dú)用一個(gè)變量表示;當(dāng)前可用的存儲(chǔ)單元地址用另外一個(gè)變量記錄;由于號(hào)碼長(zhǎng)度為定長(zhǎng)結(jié)構(gòu),因此,號(hào)碼長(zhǎng)度、號(hào)碼記錄、通話時(shí)間及每條記錄間的偏移都是恒定的。若將當(dāng)前指針記為curPtr;號(hào)碼長(zhǎng)度記為: len;寫(xiě)入過(guò)程如下:號(hào)碼長(zhǎng)度—>curPtr 指向單元;號(hào)碼—>curPtr+2 起的len 個(gè)單元;通話時(shí)間—>curPtr+30 指向的單元。
3.3.3T0 中斷服務(wù)程序:完成用戶(hù)一次通話過(guò)程的計(jì)時(shí)功能。 3.3.4DISPLAY PROC 子程序: 此子程序完成八段數(shù)碼管的選通,并且向相應(yīng)數(shù)碼管送數(shù)據(jù)完成顯示功能。 3.4 調(diào)試和分析 系統(tǒng)通電后,開(kāi)始初始化并顯示時(shí)鐘,在用戶(hù)摘機(jī)后產(chǎn)生撥號(hào)音,系統(tǒng)將顯示清零狀態(tài),然后等待用戶(hù)撥號(hào),用戶(hù)每拔一個(gè)號(hào)碼產(chǎn)生一次中斷,在用戶(hù)撥號(hào)完后,產(chǎn)生回鈴音,系統(tǒng)查詢(xún)到回鈴音后,等待回鈴音的消失,在回鈴音消失后通話開(kāi)始,此時(shí)系統(tǒng)開(kāi)始計(jì)時(shí),并查詢(xún)是否有忙音。在用戶(hù)掛機(jī)后產(chǎn)生忙音系統(tǒng)立刻保存相關(guān)數(shù)據(jù),然后返回顯示時(shí)鐘狀態(tài)。 4 結(jié)束語(yǔ) 本文從硬件和軟件兩個(gè)方面,以單片機(jī)AT89C51為主控件,以雙音多頻器件MT8870、音頻譯碼器LM567和光電耦合器4N25為輔助器件,對(duì)智能電話計(jì)時(shí)系統(tǒng)進(jìn)行了詳細(xì)的設(shè)計(jì)和實(shí)現(xiàn)。將程序燒錄到單片機(jī)AT89C51的ROM中,經(jīng)過(guò)多次測(cè)試,均實(shí)現(xiàn)了通話計(jì)時(shí)、信息存儲(chǔ),實(shí)現(xiàn)了對(duì)電話計(jì)時(shí)的智能控制。 本文創(chuàng)新點(diǎn):作者深入研究了AT89C51芯片、音頻譯碼器LM567和MT8870器件的軟件及硬件,并從硬件電路和軟件設(shè)計(jì)兩個(gè)主要方面完成了該智能電話計(jì)時(shí)系統(tǒng)的設(shè)計(jì),最終根據(jù)該設(shè)計(jì)制作出了可應(yīng)用的智能計(jì)時(shí)系統(tǒng);該系統(tǒng)改進(jìn)了以往此類(lèi)系統(tǒng)中存在的數(shù)據(jù)存貯器存儲(chǔ)空間小、記錄信息時(shí)反映緩慢、容易造成丟失記錄等缺點(diǎn);此外對(duì)人機(jī)交互的顯示屏和控制鍵盤(pán)進(jìn)行了人性化設(shè)計(jì),使系統(tǒng)更具有實(shí)用價(jià)值。 參考文獻(xiàn): [1] T. P. Martin, B. Azvine “Learning User Models for an Intelligent Telephone Assistant” Intelligent Systems Research Lab Adastral’ Park Ipswich IP5 UK 2003 [2]張蟬愛(ài).智能電話計(jì)時(shí)器的設(shè)計(jì)原理.太原理工大學(xué)科技處.2006 [3]甘露,陳三寶,薛志華.基于AT89C51 的濕度檢測(cè)系統(tǒng)設(shè)計(jì)與研究[J] .微計(jì)算機(jī)信息.2006 [4]何立民. 單片機(jī)應(yīng)用技術(shù)選編.北京航空航天大學(xué)出版社.2007.01 [5]羅耀華.單片機(jī)原理與應(yīng)用技術(shù).哈爾濱工程大學(xué)出版社.2005.05 [6]李伯成.單片機(jī)與控制系統(tǒng)[M].清華大學(xué)出版社.2005 作者簡(jiǎn)介:王翠茹(1954-),女,河北保定人,華北電力大學(xué)(保定)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院教授,碩士生導(dǎo)師。研究方向:數(shù)據(jù)庫(kù)與管理信息系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)。于祥兵(1983-),男,江蘇徐州人,華北電力大學(xué)(保定)計(jì)算機(jī)應(yīng)用專(zhuān)業(yè),碩士研究生。 Biography: Wang Cuiru(1954-): femal, Working in North China Electric Power University(Baoding), research areas: Database and Management Information System, Computer Network.Yu Xiangbing(1983-), male, Jiangsu Province. Graduate in North China Electric PowerUniversity. |