/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定義 sfr WDT_CONTR = 0xe1;//stc2051的看門狗?????? /**********全局常量************/ //寫卡的命令 #define write_command0 0//寫密碼 #define write_command1 1//寫配置字 #define write_command2 2//密碼寫數據 #define write_command3 3//喚醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //讀卡的時間參數us #define ts_min 250//270*11.0592/12=249//取近似的整數 #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10調整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中斷處理:采用查詢的方法讀卡時關所有中斷****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI總線 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//測試綠燈 sbit led_light1 = P1^5;//測試紅燈 sbit led_light_ok = P1^1;//讀卡成功標志 sbit fengmingqi = P1^5; /***********全局變量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存儲卡上用戶數據(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數組ram uchar command; //第一個命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //緩存定時值,因用同一個定時器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //緩存定時值,因用同一個定時器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函數原型*****************/ //讀寫操作 void f_readcard(void);//全部讀出1~7 AOR喚醒 void f_writecard(uchar x);//根據命令寫不同的內容和操作 void f_clearpassword(void);//清除密碼 void f_changepassword(void);//修改密碼 //功能子函數 void write_password(uchar data *data p);//寫初始密碼或數據 void write_block(uchar x,uchar data *data p);//不能用通用指針 void write_bit(bit x);//寫位 /*子函數區*****************************************************/ void delay_2(uint x) //延時,時間x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能頻繁的復位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允許接收 //SCON =0x50; //01010000B:10位異步收發,波特率可變,SM2=0不用接收到有效停止位才RI=1, //REN=1允許接收 TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位) TCON = 0x40; //設定時器1 允許開始計時(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //啟動定時器 WDT_CONTR = 0x3c;//使能看門狗 p_U2270B_Standby = 0;//單電源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//讀卡 { EA = 0;//全關,防止影響跳變的定時器計時 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用喚醒功能來防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作碼讀0頁 write_bit(0); write_password(&bankdata[24]);//密碼block7 p_U2270B_CFE =1 ;// delay_2(516);//編程及確認時間5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一個穩定的低電平?超時判斷? while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定時器晚啟動10個周期 //同步頭 if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //讀0~7塊的數據 for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8個位 { //等待下降沿的到來 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再賦值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//讀卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//寫卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//寫密碼:初始化密碼 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 for(i = 0;i < 35;i++) { write_bit(1);//寫數據位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//測試使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密碼存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡參數:初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密碼寫數據 { uchar data*data p; p = &bankdata[24]; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_password(p);//發口令 write_bit(0);//寫鎖定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//寫數據 } else if(x == write_command3)//aor //喚醒 { //cominceptbuff[1]操作碼10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密碼 p_U2270B_CFE = 1;//此時數據不停的循環傳出 } else //停止操作碼 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密碼 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密碼 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作碼10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//發原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//寫新配置參數:pwd=0 //密碼無效:即清除密碼 DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密碼 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密碼 DATA = 0x80;//操作碼10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//發原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//寫新密碼 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密碼存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函數***********************************/ void write_bit(bit x)//寫一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延時448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫0 } } /*******************寫一個block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0數據 { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //讀卡 f_writecard(command1); //寫卡 f_clearpassword(); //清除密碼 f_changepassword(); //修改密碼 } }
標簽: 12345
上傳時間: 2017-10-20
上傳用戶:my_lcs
1-1前言一般人所能夠感受到聲音的頻率約介於5H2-20KHz,超音波(Ultrasonic wave)即爲頻率超過20KHz以上的音波或機械振動,因此超音波馬達就是利用超音波的彈性振動頻率所構成的制動力。超音波馬達的內部主要是以壓電陶瓷材料作爲激發源,其成份是由鉛(Pb)、結(Zr)及鈦(Ti)的氧化物皓鈦酸鉛(Lead zirconate titanate,PZT)製成的。將歷電材料上下方各黏接彈性體,如銅或不銹鋼,並施以交流電壓於壓電陶瓷材料作爲驅動源,以激振彈性體,稱此結構爲定子(Stator),將其用彈簧與轉子Rotor)接觸,將所産生摩擦力來驅使轉子轉動,由於壓電材料的驅動能量很大,並足以抗衡轉子與定子間的正向力,雖然伸縮振幅大小僅有數徵米(um)的程度,但因每秒之伸縮達數十萬次,所以相較於同型的電磁式馬達的驅動能量要大的許多。超音波馬達的優點爲:1,轉子慣性小、響應時間短、速度範圍大。2,低轉速可產生高轉矩及高轉換效率。3,不受磁場作用的影響。4,構造簡單,體積大小可控制。5,不須經過齒輸作減速機構,故較爲安靜。實際應用上,超音波馬達具有不同於傳統電磁式馬達的特性,因此在不適合應用傳統馬達的場合,例如:間歇性運動的裝置、空間或形狀受到限制的場所;另外包括一些高磁場的場合,如核磁共振裝置、斷層掃描儀器等。所以未來在自動化設備、視聽音響、照相機及光學儀器等皆可應用超音波馬達來取代。
標簽: 超聲波電機
上傳時間: 2022-06-17
上傳用戶:
AD636是美國AD公司生產的單片真有效值,直流轉換器,可用于對交流電壓的有效值進行測量.文中敘述了該芯片的內部結構、工作原理,給出了一種4量程真有效值數字電壓/電平表的應用電路設計方案.
上傳時間: 2013-06-08
上傳用戶:問題問題
對應程序: #include<reg52.h> #define uint unsigned int #define uchar unsigned char uchar code tab[]={ 0x81, 0x42, 0x24, 0x18, }; void delay(uint z) { uint i,j; for(i=z;i>0;i--) for(j=120;j>0;j--); } void init() { P0=0x00; }
上傳時間: 2014-01-17
上傳用戶:ruan2570406
摘 要: 本文介紹了AVR 高檔單片機M EGA 系列的性能和特點, 以A Tm ega8 為例著重介紹了其片內的A öD 轉換器, 并給出了其用C 編的A öD 轉換器的源代碼程序。關鍵詞:AVR;A Tm ega8 單片機;A öD 轉換器; 應用程序部分
上傳時間: 2013-11-20
上傳用戶:qq1604324866
pic單片機實用教程(提高篇)以介紹PIC16F87X型號單片機為主,并適當兼顧PIC全系列,共分9章,內容包括:存儲器;I/O端口的復位功能;定時器/計數器TMR1;定時器TMR2;輸入捕捉/輸出比較/脈寬調制CCP;模/數轉換器ADC;通用同步/異步收發器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特點:通俗易懂、可讀性強、系統全面、學練結合、學用并重、實例豐富、習題齊全。<br>本書作為Microchip公司大學計劃選擇用書,可廣泛適用于初步具備電子技術基礎和計算機知識基礎的學生、教師、單片機愛好者、電子制作愛好者、電器維修人員、電子產品開發設計者、工程技術人員閱讀。本教程全書共分2篇,即基礎篇和提高篇,分2冊出版,以適應不同課時和不同專業的需要,也為教師和讀者增加了一種可選方案。 第1章 EEPROM數據存儲器和FIASH程序存儲器1.1 背景知識1.1.1 通用型半導體存儲器的種類和特點1.1.2 PIC單片機內部的程序存儲器1.1.3 PIC單片機內部的EEPROM數據存儲器1.1.4 PIC16F87X內部EEPROM和FIASH操作方法1.2 與EEPROM相關的寄存器1.3 片內EEPROM數據存儲器結構和操作原理1.3.1 從EEPROM中讀取數據1.3.2 向EEPROM中燒寫數據1.4 與FLASH相關的寄存器1.5 片內FLASH程序存儲器結構和操作原理1.5.1 讀取FLASH程序存儲器1.5.2 燒寫FLASH程序存儲器1.6 寫操作的安全保障措施1.6.1 寫入校驗方法1.6.2 預防意外寫操作的保障措施1.7 EEPROM和FLASH應用舉例1.7.1 EEPROM的應用1.7.2 FIASH的應用思考題與練習題第2章 輸入/輸出端口的復合功能2.1 RA端口2.1.1 與RA端口相關的寄存器2.1.2 電路結構和工作原理2.1.3 編程方法2.2 RB端口2.2.1 與RB端口相關的寄存器2.2.2 電路結構和工作原理2.2.3 編程方法2.3 RC端口2.3.1 與RC端口相關的寄存器2.3.2 電路結構和工作原理2.3.3 編程方法2.4 RD端口2.4.1 與RD端口相關的寄存器2.4.2 電路結構和工作原理2.4.3 編程方法2.5 RE端口2.5.1 與RE端口相關的寄存器2.5.2 電路結構和工作原理2.5.3 編程方法2.6 PSP并行從動端口2.6.1 與PSP端口相關的寄存器2.6.2 電路結構和工作原理2.7 應用舉例思考題與練習題第3章 定時器/計數器TMR13.1 定時器/計數器TMR1模塊的特性3.2 定時器/計數器TMR1模塊相關的寄存器3.3 定時器/計數器TMR1模塊的電路結構3.4 定時器/計數器TMR1模塊的工作原理3.4.1 禁止TMR1工作3.4.2 定時器工作方式3.4.3 計數器工作方式3.4.4 TMR1寄存器的賦值與復位3.5 定時器/計數器TMR1模塊的應用舉例思考題與練習題第4章 定時器TMR24.1 定時器TMR2模塊的特性4.2 定時器TMR2模塊相關的寄存器4.3 定時器TMR2模塊的電路結構4.4 定時器TMR2模塊的工作原理4.4.1 禁止TMR2工作4.4.2 定時器工作方式4.4.3 寄存器TMR2和PR2以及分頻器的復位4.4.4 TMR2模塊的初始化編程4.5 定時器TMR2模塊的應用舉例思考題與練習題第5章 輸入捕捉/輸出比較/脈寬調制CCP5.1 輸入捕捉工作模式5.1.1 輸入捕捉摸式相關的寄存器5.1.2 輸入捕捉模式的電路結構5.1.3 輸入捕捉摸式的工作原理5.1.4 輸入捕捉摸式的應用舉例5.2 輸出比較工作模式5.2.1 輸出比較模式相關的寄存器5.2.2 輸出比較模式的電路結構5.2.3 輸出比較模式的工作原理5.2.4 輸出比較模式的應用舉例5.3 脈寬調制輸出工作模式5.3.1 脈寬調制模式相關的寄存器5.3.2 脈寬調制模式的電路結構5.3.3 脈寬調制模式的工作原理5.3.4 脈定調制模式的應用舉例5.4 兩個CCP模塊之間相互關系思考題與練習題第6章 模/數轉換器ADC6.1 背景知識6.1.1 ADC種類與特點6.1.2 ADC器件的工作原理6.2 PIC16F87X片內ADC模塊6.2.1 ADC模塊相關的寄存器6.2.2 ADC模塊結構和操作原理6.2.3 ADC模塊操作時間要求6.2.4 特殊情況下的A/D轉換6.2.5 ADC模塊的轉換精度和分辨率6.2.6 ADC模塊的內部動作流程和傳遞函數6.2.7 ADC模塊的操作編程6.3 PIC16F87X片內ADC模塊的應用舉例思考題與練習題第7章 通用同步/異步收發器USART7.1 串行通信的基本概念7.1.1 串行通信的兩種基本方式7.1.2 串行通信中數據傳送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的碼型、編碼方式和幀結構7.1.5 串行通信中的檢錯和糾錯方式7.1.6 串行通信組網方式7.1.7 串行通信接口電路和參數7.1.8 串行通信的傳輸速率7.2 PIC16F87X片內通用同步/異步收發器USART模塊7.2.1 與USART模塊相關的寄存器7.2.2 USART波特率發生器BRG7.2.3 USART模塊的異步工作方式7.2.4 USART模塊的同步主控工作方式7.2.5 USART模塊的同步從動工作方式7.3 通用同步/異步收發器USART的應用舉例思考題與練習題第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知識8.1.1 SPI接口信號描述8.1.2 基于SPI的系統構成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相關的寄存器8.2.2 SPI接口的結構和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的從動方式8.3 SPI接口的應用舉例思考題與練習題第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C總線的背景知識9.1.1 名詞術語9.1.2 I(平方)C總線的技術特點9.1.3 I(平方)C總線的基本工作原理9.1.4 I(平方)C總線信號時序分析9.1.5 信號傳送格式9.1.6 尋址約定9.1.7 技術參數9.1.8 I(平方)C器件與I(平方)C總線的接線方式9.1.9 相兼容的SMBus總線9.2 與I(平方)C總線相關的寄存器9.3 典型信號時序的產生方法9.3.1 波特率發生器9.3.2 啟動信號9.3.3 重啟動信號9.3.4 應答信號9.3.5 停止信號9.4 被控器通信方式9.4.1 硬件結構9.4.2 被主控器尋址9.4.3 被控器接收——被控接收器9.4.4 被控器發送——被控發送器9.4.5 廣播式尋址9.5 主控器通信方式9.5.1 硬件結構9.5.2 主控器發送——主控發送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的總線沖突和總線仲裁9.6.1 發送和應答過程中的總線沖突9.6.2 啟動過程中的總線沖突9.6.3 重啟動過程中的總線沖突9.6.4 停止過程中的總線沖突9.7 I(平方)C總線的應用舉例思考題與練習題附錄A 包含文件P16F877.INC附錄B 新版宏匯編器MPASM偽指令總表參考文獻
上傳時間: 2013-12-14
上傳用戶:xiaoyuer
單片機應用技術選編(3) 目錄 第一章 單片機的綜合應用技術1.1 8098單片機存儲器的擴展技術1.2 87C196KC單片機的DMA功能1.3 MCS?96系列單片機高精度接口設計1.4 利用PC機的8096軟件開發系統1.5 EPROM模擬器及其應用1.6 MCS?51智能反匯編軟件的設計與實現1.7 MCS?51系列軟件設計與調試中一個值得注意的問題1.8 PL/M語言在微機開發系統中的應用特性1.9 MCS?51單片機開發系統中的斷點產生1.10 C語言實型數與單片機浮點數之間數據格式的轉換1.11 微機控制系統初始化問題探討1.12 MCS?51中斷系統中的復位問題1.13 工業控制軟件的編程原則與編程技巧1.14 CMOS微處理器的功耗特性及其功耗控制原理和應用1.15 基于PLL技術的A/D、D/A轉換器的設計1.16 智能儀器監控程序的模塊化設計1.17 用軟件邏輯開關實現單片機的地址重疊使用1.18 8259A可編程中斷控制器與8031單片機接口電路及編程1.19 NSC810及其在各種微處理機中的應用1.20 MC146818在使用中的幾個問題1.21 交流伺服系統中采用8155兼作雙口信箱存儲器的雙微機結構1.22 實用漢字庫芯片的制作 第二章 新一代存儲器及邏輯器件2.1 新一代非易失性記憶元件--閃爍存儲器2.2 Flash存儲器及應用2.3 隨機靜態存儲器HM628128及應用2.4 非揮發性隨機存儲器NOVRAM2.5 ASIC的設計方法和設計工具2.6 GAL器件的編程方法及其應用2.7 第三代可編程邏輯器件--高密EPLD輯器件EPLDFPGA設計轉換 第三章 數據采集、前向通道與測量技術 3.1 溫度傳感器通道接口技術 3.2 LM135系列精密溫度傳感器的原理和應用 3.3 儀表放大器AD626的應用 3.4 5G7650使用中應注意的問題 3.5 用集成運算放大器構成電荷放大器組件 3.6 普通光電耦合器的線性應用 3.7 高線性光耦合型隔離放大器的研制 3.8 一種隔離型16位單片機高精度模擬量接口3.9 單片16位A/D轉換器AD7701及其與8031單片機的串行接口3.10 雙積分型A/D轉換器與MCS?51系列單片機接口的新方法3.11 8031單片機與AD574A/D轉換器的最簡接口3.12 8098單片機A/D轉換接口及其程序設計3.13 提高A/D轉換器分辨率的實用方案3.14 用CD4051提高8098單片機內10位A/D轉換器分辨率的方法3.15 單片機實現16位高速積分式A/D轉換器3.16 434位A/D轉換器MAX133(134)的原理及應用3.17 AD574A應用中應注意的問題 3.18 CC14433使用中應注意的問題 3.19 高精度寬范圍數據采集系統的溫度補償途徑 3.20 縮短ICL7135A/D采樣程序時間的一種方法 3.21 用單片機實現的數字式自動增益控制 3.22 自動量程轉換電路 3.23 雙積分型A/D的自動量程切換電路 3.24 常用雙積分型A/D轉換器自換程功能的擴展3.25 具有自動量程轉換功能的單片機A/D接口3.26 混合型數據采集器SDM857的功能與應用3.27 高速數據采集系統的傳輸接口3.28 SJ2000方向鑒別位移脈寬頻率檢測多用途專用集成電路3.29 多路高速高精度F/D專用集成電路3.30 數控帶通濾波器的實現及其典型應用 第四章 控制系統與后向通道接口技術4.1 模糊邏輯與模糊控制4.2 自動控制技術的新發展--模糊控制技術4.3 模糊控制表的確定原則4.4 變結構模糊控制系統的實驗研究4.5 新型集成模糊數據相關器NLX1124.6 功率固態繼電器的應用4.7 雙向功率MOS固態繼電器4.8 SSR小型固態繼電器與PSSR功率參數固態繼電器4.9 JGD型多功能固態繼電器的原理和應用4.10 光電耦合器在晶閘管觸發電路中的應用4.11 一種廉價的12位D/A轉換器AD667及接口4.12 利用單片機構成高精度PWM式12位D/A4.13 三相高頻PWM模塊SLE45204.14 專用集成電路TCA785及其應用4.15 單片溫度控制器LM3911的應用4.16 工業測控系統軟件設計的若干問題研究 第五章 人機對話通道接口技術5.1 廉價實用的8×8鍵盤5.2 單片機遙控鍵盤接口5.3 對8279鍵盤顯示接口的改進5.4 用單片機8031的七根I/O線實現對鍵盤與顯示器的控制5.5 通用8位LED數碼管驅動電路ICM7218B5.6 利用條圖顯示驅動器LM3914組成100段LED顯示器的方法5.7 液晶顯示器的多極驅動方式5.8 點陣式液晶顯示屏的構造與應用5.9 點陣式液晶顯示器圖形程序設計5.10 DMF5001N點陣式液晶顯示器和8098單片機的接口技術5.11 8098單片機與液晶顯示控制器HD61830接口5.12 利用PL/M語言對點陣式液晶顯示器進行漢字程序設計5.13 語音合成器TMS 5220的開發與應用5.14 制作T6668語音系統的一些技術問題5.15 單片機、單板機在屏顯系統中的應用 第六章 多機通訊網絡與遙控技術6.1 用雙UART構成的可尋址遙測點裝置--兼談如何組成系統6.2 IBM?PC微機與8098單片機的多機通訊6.3 80C196單片機與IBM?PC機的串行通訊6.4 IBM?PC與MCS?51多機通訊的研究6.5 半雙工方式傳送的單片機多機通信接口電路及軟件設計6.6 單片機與IBM/PC機通訊的新型接口及編程6.7 用光耦實現一點對多點的總線式通訊電路6.8 用EPROM作為通訊變換器實現多機通訊6.9 ICL232單電源雙RS?232發送/接收器及其應用6.10 DTMF信號發送/接收電路芯片MT8880及應用6.11 通用紅外線遙控系統6.12 8031單片機在遙控解碼方面的應用 第七章 電源、電壓變換及電源監視7.1 用于微機控制系統的高可靠性供電方法7.2 80C31單片機防掉電和抗干擾電源的設計7.3 可編程基準電壓源7.4 電源電壓監視器件M81953B7.5 檢出電壓可任意設定的電源電壓監測器7.6 低壓降(LDO?Low Drop?Out)穩壓器7.7 LM317三端可調穩壓器應用二例7.8 三端集成穩壓器的擴流應用 第八章 可靠性與抗干擾技術8.1 數字電路的可靠性設計實踐與體會8.2 單片機容錯系統的設計與實現8.3 微機測控系統的接地、屏蔽和電源供給8.4 ATE的抗干擾及接地技術8.5 微處理器監控電路MAX690A/MAX692A8.6 電測儀表電路的實用抗干擾技術8.7 工業鍍鋅電阻爐溫度控制機的抗干擾措施8.8 一種簡單的抗干擾控制算法 ? 第九章 綜合應用實例9.1 蔬菜灌溉相關參數的自動檢測9.2 MH?214溶解氧測定儀9.3 COP840C單片機在液晶線控空調電腦控制器中的應用9.4 單片機在電飯煲中的應用9.5 用PIC單片機制作電扇自然風發生器 第十章 文章摘要 一、 單片機的綜合應用技術1.1 摩托羅拉8位單片機的應用和開發1.2 NS公司的COP800系列8位單片機1.3 M68HC11與MCS?51單片機功能比較1.4 8098單片機8M存儲空間的擴展技術1.5 80C196KC單片機的外部設備事件服務器1.6 一種多進程實時控制系統的軟件設計1.7 開發單片機的結構化高級語言PL/M?961.8 應用軟件開發中的菜單接口技術1.9 單片機用戶系統EPROM中用戶程序的剖析方法1.10 BJS?98硬件、軟件典型實驗1.11 FORTH語言系統的開發應用1.12 在Transputer系統上用并行C語言編程的特點1.13 一種軟件擴展8031內部計數器簡易方法1.14 MCS 51系列單片機功能測試方法研究1.15 用CD 4520B設計對稱輸出分頻器的方法1.16 多路模擬開關CC 4051功能擴展方法1.17 條形碼技術及其應用系統的設計與實現? 二、 新一代存儲器及邏輯器件2.1 一種多功能存儲器M6M 72561J2.2 串行E2PROM及其在智能儀器中的應用2.3 新型高性能的AT24C系列串行E2PROM2.4 2K~512K EPROM編程卡2.5 電子盤的設計與實現2.6 NS GAL器件的封裝標簽、類型代碼和編程結構間的關系 三、數據采集、前向通道與測量技術3.1 儀器用精密運放CA3193的應用3.2 集成電壓?電流轉換器XTR100的應用3.3 瞬時浮點放大器及應用3.4 隔離放大器289J及其應用3.5 ICS?300系列新型加速度傳感器3.6 一種實用的壓力傳感器接口電路3.7 霍爾傳感器的應用3.8 一種對多個傳感器進行調理的方法3.9 兩線制壓力變送器3.10 小信號雙線變送器XTR101的使用3.11 兩線長距離頻率傳輸壓力變送器的設計3.12 測溫元件AD590及其應用3.13 熱敏電阻應用動態3.14 一種組合式A/D、D/A轉換器的設計3.15 一種復合式A/D轉換器3.16 TLC549串行輸出ADC及其應用3.17 提高A/D轉換精度的方法--雙通道A/D轉換3.18 模數轉換器ICL7135的0~3.9999V顯示3.19 微型光耦合器3.20 一種高精度的分壓器電路3.21 利用單片機軟件作熱電偶非線性補償3.22 三線制RTD測量電路及應用中要注意的問題3.23 微伏信號高精度檢測中極易被忽略的問題3.24 寬范圍等分辨率精密測量法3.25 傳感器在線校準系統3.26 一種高精度的熱敏電阻測溫電路3.27 超聲波專用集成電路LM1812的原理與應用3.28 旋轉變壓器數字化檢測及其在8098單片機控制伺服系統中的應用3.29 單片集成兩端式感溫電流源AD590在溫度測控系統中的應用?3.30 數字示波器和單片機構成的自動測試系統3.31 霍爾效應式功率測量研究 四、 控制系統與后向通道接口技術4.1 模糊邏輯與模糊控制(實用模糊控制講座之一)4.2 紅綠燈模糊控制器(實用模糊控制講座之二)4.3 國外模糊技術新產品4.4 交流串級調速雙環模糊PI單片機控制系統4.5 時序控制專用集成電路LT156及其應用4.6 電池充電控制集成電路4.7 雙向晶閘管4.8 雙向可控硅的自觸發電路及其應用4.9 微處理器晶閘管頻率自適應觸發器4.10 F18系列晶閘管模塊介紹4.11 集成電路UAA4002的原理及應用4.12 IGBT及其驅動電路4.13 TWH8751應用集錦4.14 結構可變式計算機工業控制系統設計4.15 單片機控制的音響編輯器 五、 人機對話通道接口技術5.1 5×7點陣LED智能顯示器的應用5.2 基于8031串行口的LED電子廣告牌5.3 點陣液晶顯示控制器與計算機的接口技術5.4 單片機控制可編程液晶顯示系統5.5 大規模語言集成電路應用綜述5.6 最新可編程語言集成電路MSSIO61的應用5.7 用PC打印機接口擴展并行接口 六、 多機系統、網絡與遙控技術6.1 用8098單片機構成的分布式測溫系統6.2 平衡接口EIA?422和EIA485設計指南6.3 I2C BUS及其系統設計6.4 摩托羅拉可尋址異步接受/發送器6.5 用5V供電的RS232C接口芯片6.6 四通道紅外遙控器6.7 TA7333P和TA7657P的功能及應用 七、 電源、電壓變換及電源監視7.1 單片機控制的可控硅三相電源調壓穩壓技術7.2 集成開關電源控制器MC34063的原理及應用7.3 LM299精密基準電壓源7.4 集成過壓保護器的應用7.5 3V供電的革命7.6 HMOS微機的超低電源電壓運行技術 八、 可靠性與抗干擾設計8.1 淺談艦船電磁兼容與可靠性 九、 綜合應用實例9.1 8098單片機交流電氣參數測試系統的設計和應用9.2 主軸回轉誤差補償控制器9.3 FWK?A型大功率發射臺微機控制系統9.4 高性能壓控振蕩型精密波形發生器ICL8038及應用9.5 單片機COP 840C在洗碗機中的應用
上傳時間: 2013-11-10
上傳用戶:lijinchuan
1 概述由于在某些通訊設計應用中,需要擴展更多的串口數量,比如車床監控、紡織儀器檢測和網狀連接的數據采集等應用。為此成都國騰微電子有限公司推出的GM814x 可以滿足多個同類產品的并聯擴展,并且能簡單的實現電路連接和程序控制,主MCU 可以識別數據的來源和指定和某個GM814x 通信。2 應用說明2.1 CS 與SPI 的數據通信GM814x 的CS(片選)引腳可用于控制SPI 總線時鐘有效性,CS 低電平有效,內部下拉。CS 有效時,允許芯片的時鐘接收和數據收發;無效時,SCLK、DIN 和DOUT 均為高阻狀態,GM814x 不響應SPI 上的數據收發,但能正常收發子串口數據和產生相應中斷。2.2 應用建議當使用GM814x 的應用需要擴展4 個以上的串口數量時,就需要使用2 片以上的GM814x。擴展的方式也有多種。方式一:將多個GM814x 的SPI 接口接在主MCU 的SPI 總線上,然后將所有GM814x 的中斷進行線與后連接到MCU 的IRQ 上,同時將各GM814x 的IRQ 輸出又連接到MCU的IO,以便MCU響應中斷后檢測是具體哪一個GM814x 輸出的中斷,然后再拉低對應的CS,拉高其它GM814x的CS,并執行通信操作。方式二:如果擴展的GM814x 數量較多,采用上述擴展方式可能會占用MCU較多的IO 資源,則可以將GM814x 的中斷輸出連接到具有OC 輸出的與門芯片上,再輸出到MCU 的中斷輸入。同時又將所有的GM814x 的中斷輸出進行編碼輸入到MCU,以供其判斷產生中斷的是哪一個GM814x。方式三:將所有GM814x 的中斷輸出連接到優先編碼器進行編碼輸出,同時編碼器也能輸出低電平信號給MCU 作為中斷響應。MCU 檢測編碼數據以獲知產生中斷的GM814x,然后進行數據通信處理。這種方式電路最簡單,占用MCU 的IO 資源也最少。 舉例:使用MCS51 單片機擴展8 片GM814x。本電路中,采用了上述提到的第三種擴展方式。通過普通的MCS51 單片機擴展最多8 片GM814x,可擴展最多32 個標準串口。為了節省MCU的IO 資源,電路中增加了一片8-3 線優先編碼器74LS348 和一片3-8 線譯碼器74HC138。8 片GM814x 的IRQ 中斷通過一片74LS348 輸出中斷源向量,同時產生GS 低電平信號到MCS51 的外部中斷0 上,MCS51 響應中斷后,可查詢A0~A2 的值確定產生中斷的GM814x,然后MCU 使能74HC138,輸出對應的ABC 信號選中產生IRQ 信號的GM814x,再進行SPI 總線上的數據通信。 示例程序:本示例程序使用C 語言描述,僅供參考。 由于74LS348 是優先編碼器,多個中斷同時產生的時候,74LS348 的編碼只會指示輸入編號上最高的IRQ,MCU 無法直接獲知是否其它的GM814x 也產生了中斷。同時GM814x 在自己的中斷申請后,數據傳輸到第8bit 時會自動清除,所以數據接收完后如果MCU 的中斷引腳仍然為低,則表示還有其它GM814x 的中斷申請,故必須在處理完當前中斷后繼續查詢新的中斷向量。這就是上述示例程序中while 循環的目的。 以上應用建議僅供設計者參考,不代表最終實現方式,更可靠和實際的實現方式可由設計者根據自己的實際情況確定。l 示例中的數據、參數和標志字命名不代表實際產品的特性,請參考實際產品的數據手冊來獲取你所需要的數據。
上傳時間: 2013-10-26
上傳用戶:suicoe
課堂上聽完老師講完DSP2407之后,來一次較系統的總復習,文中列出了DSP2407概述;系統概貌: 系統配置和中斷、存儲器和I/O空間、時鐘和低功耗模式、數字輸入輸出;片內外設: 事件管理器、ADC、SCI、SPI、CAN、WD 系統開發和基于C語言的軟件設計等章節的重點和難點。
上傳時間: 2013-10-11
上傳用戶:changeboy
特點 精確度0.1%滿刻度 ±1位數 可量測 交直流電流/交直流電壓/電位計/傳送器/Pt-100/荷重元/電阻 等信號 顯示范圍-1999-9999可任意規劃 具有異常值與異常次數記錄保留功能 異常信號過高或過低或范圍內或范圍外檢測可任意設定 報警繼電器復歸方式可任意設定 尺寸小,穩定性高 2.主要規格 精確度: 0.1% F.S. ±1 digit 0.2% F.S. ±1 digit(AC) 取樣時間: 16 cycles/sec. 顯示值范圍: -1999 - +9999 digit adjustable 啟動延遲動作時間: 0-99.9 second adjustable 繼電器延遲動作時間: 0-99.9 second adjustable 繼電器復歸方式: Manual (N) / latch(L) can be modified 繼電器動作方向: HI /LO/GO/HL can be modified 繼電器容量: AC 250V-5A, DC 30V-7A 過載顯示: "doFL" 溫度系數: 50ppm/℃ (0-50℃) 顯示幕: Red high efficiency LEDs high 14.22mm(.56")(PV) Red high efficiency LEDs high 7.0mm(.276")(NO) 參數設定方式: Touch switches 記憶型式 : Non-volatile E2PROM memory 絕緣耐壓能力: 2KVac/1 min. (input/output/power) 1600Vdc(input/output 使用環境條件 : 0-50℃(20 to 90% RH non-condensed) 存放環境條件: 0-70℃(20 to 90% RH non-condensed) CE認證: EN 55022:1998/A1:2000 Class A EN 61000-3-2:2000 EN 61000-3-3:1995/A1:2001 EN 55024:1998/A1:2001
上傳時間: 2013-11-02
上傳用戶:fandeshun