基於PIC16F887的智慧型電話控制系統設計

2021-10-10 23:55:22 字數 1265 閱讀 6074

此次設計的**系統以pic16f887微控制器為核心,用c語言編寫。利用微控制器外接的矩陣鍵盤與微控制器通訊,實現模擬**的撥出,結束通話,重撥功能。微控制器啟動蜂鳴器發出**,提示撥出或按鍵音。利用微控制器與外接的矩陣鍵盤,實現數字密碼鎖功能,可以實現載入密碼,錯誤告警,重設密碼,並於lcd上同步顯示。另可實現簡易計算器功能。通過鍵盤掃瞄實現**的開關。並利用串列埠通訊控制智慧型**。

使用mplab x ide 5和proteus 8.3**成功

計算器功能

能夠實現簡單的加,減,乘,除功能。除法要求至少保留兩位小數。

密碼鎖功能

實現密碼鎖功能,系統預設初始密碼「0」,輸入正確後要求設定新密碼,並要求重複輸入以複查。新密碼設定成功後,以新密碼解鎖**。若密碼輸錯,則不予解鎖,並輸錯三次有自鎖十秒。若密碼輸入正確自動lcd上顯示「ok」並解鎖**。**可重新回歸鎖定。

電子琴功能

使用矩陣鍵盤實現電子琴演奏。實現上位機輸入既有樂譜,微控制器自動演奏功能。能在上位機上編曲,微控制器實現演奏

多平台控制功能(虛擬串列埠)

於任意時間利用虛擬串列埠輸入資料實現對微控制器的控制,並且上位機的控制優先權高於矩陣鍵盤,唯有上位機給出指令方能退出控制。上位機實時顯示資料和模式狀態。實現鍵盤演奏電子琴

lcd顯示

所有模組和功能均有lcd進行提示顯示

led燈提示

串列埠輸入的資料將在led燈上亮起以展示接收數值,上位機取得控制權時特定led亮起,密碼鎖狀態及密碼錯誤狀態有特定led提示

計算器改進

計算器可以在除法顯示四位小數,並且計算器顯示減法的負數結果。

在系統上電之後,程式進入初始化設定。將開啟串列埠——命令rc6作為輸出,rc7作為輸入,使能全域性中斷及外圍中斷,使能接收中斷,設定8位波特率發生器,波特率9600,高速,8位資料傳送。使能串列埠通訊,8位接收,連續接收使能,下一步,程式將進入主迴圈,判斷當前模式狀態並進入執行。程式中實際設計了五個模式,一開始,將自動進入密碼鎖模式,只有設定正確密碼後才可以自由切換其他模式

在系統設計中有三個程式,分別在其他模式的多種功能下反覆使用

三個基本程式分別為按鍵檢測模組,音符發聲模組和lcd顯示模組。

在程式設計中 參考了csdn網友的程式設計和一些意見,在此一併致謝。

具體的程式,所用串列埠軟體和設計報告,請檢視我上傳的檔案。

PIC16F887 RB0外部中斷 2

include include config cp off wdte off boren on pwrte off fosc hs wrt off lvp off cpd off 配置位 cp off,保護位,程式儲存器 保護關閉 wdte off,看門狗定時器使能位,看門狗定時器關閉,可以通過wd...

PIC16F877矩陣鍵盤的識別

關於矩陣鍵盤的識別方法在51矩陣鍵盤識別中已經說過,現在要說的是pic微控制器與51微控制器的區別,主要是pic微控制器的口子的輸入輸出需要trisn暫存器設定,具體如下 掃瞄法 include define uchar unsigned char define uint unsigned int ...

PIC16F877A定時器的學習

由於實時資料的 需要用到定時器產生資料,今天晚上完成pic16f877a產生正弦波形,並將波形資料傳送到上位機!這是乙個三角波的 程式,並通過串列埠傳送到上位機 include include include include main.h include t232.h include lcd.h i...