c語言代碼:
- #include "mcp41010.h"
- void MCP41010_init()
- {
- //P2MDIN // 上電默認 digital
- P2MDOUT = setBits(P2MDOUT,pin4|pin5|pin6|pin7); // port2 4567 push-pull
- }
- #define mcp_setCS() {P2=setBits(P2,csx);}
- #define mcp_clCS() {P2=clrBits(P2,csx);}
- //cmd=0x11 電位器0 寫數據模式
- void MCP41010_writeData(u8 cmd,u8 dat,u8 csx)
- {
- u8 i;
- mcp_setCS(); _nop_(); //cs1 cs2
- mcp_sck=1;
- mcp_sci=0;
- mcp_clCS(); _nop_();
- mcp_sck=0; _nop_();
- for(i=0;i<8;i++)
- {
- mcp_sci=getBit(cmd,7);
- _nop_();_nop_();
- mcp_sck=1; //data in
- _nop_();_nop_();
- mcp_sck=0;
- cmd <<= 1; _nop_();
- }
-
- for(i=0;i<8;i++)
- {
-
- mcp_sci=getBit(dat,7);
- _nop_();_nop_();
- mcp_sck=1;
- _nop_();_nop_();
- mcp_sck=0;
- dat <<= 1; _nop_();
- }
- mcp_setCS(); _nop_();
- }
復制代碼
java代碼:
- #ifndef _MCP41010_H
- #define _MCP41010_H
- #include "sys51.h"
-
- extern void MCP41010_writeData(u8 cmd,u8 dat,u8 csx);
- extern void MCP41010_init();
-
-
- //用了2個電位器,所以有csa,csb
- sbit mcp_csa=P2^4;
- sbit mcp_csb=P2^5;
-
- sbit mcp_sck=P2^6;
- sbit mcp_sci=P2^7;
-
-
-
- #endif
復制代碼
|