- //硬件連接: INC——P0^0;
- // UD ——P0^1;
- // CS ——P0^2;
- // VDD--邏輯電源(+5V)
- // VSS--GND(0V)
- //X9313.c
- //說明: X9313當設置其劃向最大或者最小時,不會循環回復
- //=====================================================================
- #include <STC89C51RC.h> //STC單片機頭文件
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- //**************************修改硬件時要修改的部分********************************
- sbit INC = P0^0; //加/減計數脈沖輸入端
- sbit UD = P0^1; //加/減計數控制端,高電平時加法計數,低電平時減法計數
- sbit CS = P0^2; //片選輸入端,低電平有效
- //=================================================================
- // 函數名稱 :void X9313_set(uchar res,uchar ud)
- // 函數功能 :設置X9313數字電位計的滑動方向以及滑動幅度
- // 入口參數 : res 1~31 滑動的幅度 res每增加1,電位器電阻增加或減少10/31K
- // ud 0 1 滑動方向 0:向低端滑動 1:向高端滑動
- // 出口參數 :無
- //=================================================================
- void X9313_set(uchar res,uchar ud)
- {
- uchar i;
- switch(ud)
- {
- case 0:
- UD=0; //U/D=0,向低端滑動
- break;
- case 1:
- UD=1; //U/D=1,向高端滑動
- break;
- default:
- break;
- }
- CS=0; //片選有效
- for(i=0;i<res;i++)
- {
- INC=0;
- _nop_();
- INC=1;
- _nop_();
- }
- CS=1; //片選無效
- }
- //=================================================================
- // 函數名稱 :int main(void)
- // 函數功能 :主函數,無實際意義,僅測試9313用
- // 入口參數 :無
- // 出口參數 :無
- //=================================================================
- int main(void)
- {
- X9313_set(31,0);//覆蓋原來數據,使電位器從最低端開始
- X9313_set(16,1);
- while(1);
- }
復制代碼
|