|
摘要:本文詳細介紹了一種智能電話計時系統的設計與實現。該計時系統以單片機AT89C51作為主控芯片,通過音頻譯碼器LM567,識別出各種電話信號音和MT8870 的解碼信息,以達到對用戶每個主叫電話信息記錄的目的;并帶有合理的人機交互的顯示屏和控制鍵盤,以便用戶查詢主叫信息。 關鍵字:AT89C51;DTMF;單片機;串行通信 中圖分類號:TP273 文獻標識碼: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 引言 隨著科技的進步、計算機技術和單片機技術的快速發展與應用,電話計時系統有了長足的發展。為了使電話應用更加方便,因此要開發出一種更科學的電話計時系統——基于AT89C51的智能電話計時系統。 1 系統整體方案設計 1.1 系統特征:該智能電話計時器的特征是:1、計時準確2、功耗低3、可單獨使用,也可嵌入電話機中使用4、具有可配置性。 1.2 系統硬件設計:系統采用模塊化設計,主要組成模塊: (1)鈴流檢測模塊; (2)信號音識別模塊; (3)按鍵譯碼模塊; (4)單片機控制模塊; (5)顯示模塊。系統原理如下圖1-1。
1.3 系統軟件方案設計:系統軟件的設計同樣采用模塊化設計,系統程序分為8 個模塊: (1)主程序(包括系統初始化部分); (2)撥號服務程序; (3)INT0中斷(MT8870有效輸出)服務程序; (4)按鍵中斷服務程序; (5)中斷服務程序; (6)串行中斷服務程序; (7)數據顯示程序; (8)24C02讀寫程序。
2 系統硬件電路設計 2.1 鈴流檢測模塊:本模塊的功能是可以整流使正弦波全部變為正向方波,可以檢測是否摘機。本模塊中選擇的光電耦合器是4N25,它在本模塊中起的是隔離作用。
2.2按鍵譯碼模塊:鍵盤實現本系統的人機交互,設置了5個鍵,其中3個鍵實現通話記錄的上翻,下翻及刪除。另外兩個鍵實現對時間的小時位和分鐘位的調整。 2.3 信號音識別模塊工作原理:音頻譯碼器LM567 結合單片機AT89C51 定時器T2 的定時和捕捉功能,可以檢測是否有忙音或回鈴音的信號頻率,如果檢測到回鈴音的信號頻率才開始計數。如圖2-1。
2.4 單片機控制模塊:單片機的9 腳為復位端,在該腳加一個10K 的電阻R12 到地,可以保證該腳在正常工作中為低電平0,單片機的18 和19 腳接12MH 的石英晶體,在晶體兩端各接一個30PF 的電容,單片機的40 管腳接電源VCC。如圖2-2;
2.5 顯示模塊:本模塊采用兩片四位聯體的共陰極數碼管做顯示。數碼管的6,8,9,10 管腳分別與單片機的P2.0,P2.1,P2.2,P2.3 口相連,數碼管的11,7,4,2,1,10,5,3 管腳分別與單片機的0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7 口相連。如圖2-3。

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