|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
幫忙看看tlc2543轉(zhuǎn)換程序 |
| 作者:chgsun 欄目:單片機 |
用下面這個TLC2543轉(zhuǎn)換程序采集到的數(shù)據(jù)總是不準,就是用芯片自帶的測試電壓測試輸出數(shù)據(jù),也有偏差。程序中采集數(shù)據(jù)后,由單片機串行口發(fā)出所采數(shù)據(jù)。 程序如下: #include <reg52.h> #include <intrins.h> #define d_byte unsigned int #define byte unsigned CHAR sbit SPI_DI=P1^1; sbit SPI_DO=P1^2; sbit SPI_CLK=P1^0; sbit SPI_CS=P1^3; d_byte gene_spi_ad(byte ad_channel_no); byte high_byte(d_byte byte_value); byte low_byte(d_byte byte_value); void main(){ byte i; byte restore1; byte restore2; byte TEMP; d_byte d_TEMP; TEMP=0x0b; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); d_TEMP=gene_spi_ad(TEMP); restore2=low_byte(d_TEMP); restore1=high_byte(d_TEMP); TMOD=0x20; TL1=0xfd; TH1=0xfd; SCON=0x50; PCON=0x00; TR1=1; while(1){ SBUF=restore1; while(TI==0); TI=0; SBUF=restore2; while(TI==0); TI=0; for(i=0;i<125;i++); } } d_byte gene_spi_ad(byte channel_no){ bit TEMP_bit; byte i; byte TEMP; byte TEMP_h; d_byte d_TEMP; byte count; TEMP=channel_no; for (count=0;count<=2;count++){ channel_no=TEMP; channel_no<<=4; SPI_CLK=0; SPI_CS=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SPI_CS=0; for (i=0;i<=7;i++){ TEMP_bit=(bit)(channel_no&0x80); SPI_DI=TEMP_bit; channel_no<<=1; if (SPI_DO==1) { channel_no|=0x01;} else{channel_no&=0xfe;}; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SPI_CLK=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SPI_CLK=0; } TEMP_h=channel_no; channel_no=0; for (i=0;i<=3;i++){ channel_no<<=1; if (SPI_DO==1) {channel_no|=0x01;}else{channel_no&=0xfe;}; SPI_CLK=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); SPI_CLK=0;} SPI_CS=1; &nbs |
| 2樓: | >>參與討論 |
| glyan2044 于 2005/6/13 19:51:00 發(fā)布:
希望對你有用 我以前用過,不過是用匯編編的,現(xiàn)在也不太記得了,好象采到的第一次的數(shù)據(jù)不能用,要用第二次采到的數(shù)據(jù) |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |