一、 硬件選擇及連接
1.硬件選擇
①AT89C51單片機(一個)
選擇原因:
擁有完善的外部擴展總線,通過這些總線可方便地擴展外圍單元、外圍接口等。單片機與工業標準的MCS-51型機的指令集和輸出引腳兼容,便于產品后續工業量產化。芯片內自帶中斷系統,可用于按鍵按下時觸發中斷從而可以控制波形。
②DAC0832(一個)
選擇原因:
由于單片機產生的是數字信號,要想得到所需要的波形,就要把數字信號轉換成模擬信號,所以可以選用價格低廉、接口簡單、轉換控制容易并具有8位分辨率的數模轉換器DAC0832,而且DAC0832是電流型輸出。
③LM324(一個)
選擇原因:
DAC0832作為電流型輸出,在應用時要外接運放使之成為電壓型輸出。所以運算放大器的作用是將DAC0832輸出的電流信號轉化為電壓信號。
④LCD1602(一個)
選擇原因:
LCD1602作為字符型液晶顯示模塊,具有體積小,重量輕,功耗低和顯示內容豐富等優點,而且可以顯示兩行,因此可以符合要求在第一行顯示波形形狀和頻率大小,在第二行顯示幅值大小。
⑤按鍵(四個)
選擇原因:用于控制波形種類和頻率、幅值的改變。
⑥LED燈(四個)
選擇原因:用于表示對應波形的產生。
⑦電阻(100Ω 四個)
選擇原因:由于LED燈連接在P0口,因此需要連接上拉電阻,LED燈才能夠亮。
2. 硬件連接
二、軟件流程圖
主程序流程圖 | 按鍵按下檢查函數流程圖 |
定時器0中斷函數流程圖 | |
KEY1按鍵按下流程圖 | KEY2按鍵按下流程圖 |
KEY3按鍵按下流程圖 | KEY4按鍵按下流程圖 |
三、完整C語言程序
主程序函數爆部分代碼
定義四種波形64個點的位置信息和頻率參數的代碼部分
定義按鍵按下檢查函數的代碼部分
定時器初始化和中斷函數的代碼部分
定義LCD1602顯示器顯示函數的代碼部分
四、 仿真運行視頻鏈接
鏈接:用51單片機實現函數發生器功能www.bilibili.com/video/BV15P41117s
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |