- //硬件连接: 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);
- }
复制代码
|