數(shù)字電位器在90年代就有了,當時大學DIY HI-END頂級音響流行想用它來做音量電位器,但是價格非常昂貴.現(xiàn)已出來很多年價格尚可接受,但也和STM32差不多價!它在某些場合可以高可靠性地代替普通模擬電位器,如美國美信公司生產(chǎn)的10K歐姆的X9C103,它有100級調(diào)節(jié),每檔100歐姆.可做為音量調(diào)節(jié)電路,儀器模擬量調(diào)節(jié)及數(shù)控電源DIY什么的,其實前不久我買幾塊回來就是想DIY數(shù)控電源(在大蝦眼中就是"假數(shù)控吧"),下面貢獻買來的所有資料和原程序. 由于水平有限,專業(yè)軟件的我不懂,我也沒有時間測試X9C103行不行,我現(xiàn)在就是善良地為老師大神大蝦們無條件地分享資料(美信公司20年前的東西,應該沒有版權問題)謝謝!
原理圖:
使用說明
一、基礎部分
數(shù)字電位器 X9c103 模塊是一款寬電壓(3V-5V)供電,10K滿量程電位器。
電位器中間抽頭在 0-10k 間滑動共 100 級(電位器滑動端典型阻抗 40 歐) 數(shù)字電位器 VL 和 VH 端口分別對應滑動變阻器的低端和高端,允許輸入電壓范圍-5V 到+5V。 數(shù)字電位器模塊附帶測試程序,程序代碼為 C 語言代碼,分模塊編寫。代碼包括:主函數(shù)、顯示子函數(shù)、按鍵子函數(shù)以及各模塊的頭文件,可以采用 KEIL4 打開源代碼經(jīng)行測試和學習。
二、測試部分
如只需測試模塊使用可不研究源代碼,將測試程序中.HEX 文件下載到目標板。
1、按鍵子函數(shù)共涉及兩個按鍵檢測和控制,分別對應 P3^2 和P3^3.兩個按鍵每次按下分別實現(xiàn) 10K 數(shù)字電位器中間滑動端往上端和往下端滑動1k數(shù)值。數(shù)字電位器接口說明:INC 接 P2^0,U_D 接P2^1,CS 接P2^2。
2、顯示器接口:電源端口 VCC(2 腳) GND(1 腳)接 5V 電源。數(shù)據(jù)端口 D0-D7(7 腳到14 腳)接P0 口(P0^0 - P0^7)。對比度調(diào)節(jié)端口 VL(3 腳)為液晶顯示器對比度調(diào)整端用電位器分壓得到 0V-5V 中間某一電壓使液晶清晰顯示?刂贫丝 RS(4 腳)為寄存器選擇,高電平1 時選擇數(shù)據(jù)寄存器、低電平0 時選擇指令寄存器。控制端口 RW(5 腳)為讀寫信號線,高電平(1)時進行讀操作控制端口 EN(6 腳)端為使能(enable)端,高電平(1)時讀取信息,負跳變時執(zhí)行指令。
單片機源程序如下(key部分):
/*
* LCD1602顯示器并行驅(qū)動子函數(shù)
* 顯示器接口:電源端口VCC(2腳) GND(1腳)接5V電源。
數(shù)據(jù)端口D0-D7(7腳到14腳)接P0口(P0^0 - P0^7)。
對比度調(diào)節(jié)端口VL(3腳)為液晶顯示器對比度調(diào)整端用電位器分壓得到0V-5V中間某一電壓使液晶清晰顯示。
控制端口RS(4腳)為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。
控制端口RW(5腳)為讀寫信號線,高電平(1)時進行讀操作
控制端口EN(6腳)端為使能(enable)端,高電平(1)時讀取信息,負跳變時執(zhí)行指令。
*/
單片機源程序如下(主程序):
- #include"HEADER.h"
- #include"LCD1602.h"
- #include"BUTTON.h"
- volatile unsigned char DISPLAY[4];//全局顯示數(shù)組
- /*****************************初始化函數(shù)*****************************/
- void Init()//初始化函數(shù)
- {
- TMOD = 0X01;//定時器0設置工作方式1
- TH0 =55536/256;//定時器初值
- TL0 =55536%256;//定時器初值
-
- EA = 1;//打開總中斷
- ET0 = 1;//定時器0打開
- TR0 = 1;//定時器0運行
- // WDT_CONTR = 0X31;//看門狗定時器在12M晶振時131ms復位
- }
- /****************************主函數(shù)******************************/
- void main(void)
- {
- unsigned char m = 0;
- Init();
- Lcd_Init ();
- Lcd_Clear();
-
- Delayms(20);
- Lcd_Set_xy(1,3);
- Lcd_String("Aether Test");
- Lcd_Set_xy(2,1);
- Lcd_String("Value:00 K");
-
- //數(shù)字電位器初始化
- INC = 1;
- CS = 0;
- U_D = 0;
- _nop_();
- for(m=100;m>0;m--)//電位器強制向下滑動100級到最底端
- {
- INC = 0;
- _nop_();
- _nop_();
- INC = 1;
- }
- CS = 1;
- while(1)
- {
- if(FLAG_BUTTON == 1)//按鍵檢測
- {
- FLAG_BUTTON = 0;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
數(shù)字電位器測試程序.rar
(41.8 KB, 下載次數(shù): 521)
2017-12-17 10:49 上傳
點擊文件名下載附件
高精度的數(shù)字電位器X9C103.pdf
(176.6 KB, 下載次數(shù): 260)
2017-12-17 10:49 上傳
點擊文件名下載附件
數(shù)字電位器使用說明.pdf
(52.92 KB, 下載次數(shù): 279)
2017-12-17 10:49 上傳
點擊文件名下載附件
數(shù)字電位器原理圖.pdf
(100.01 KB, 下載次數(shù): 309)
2017-12-17 10:49 上傳
點擊文件名下載附件
|