C51BOX仿真器是一款方便小巧的仿真器,C51BOX通過與KEIL µVision2 Debugger軟件的配合,完成C51程序的加載、單步、斷點、全速運行等功能。C51BOX無需外接交流電源,直接USB供電,同時也可為外接模塊供電。輸出電壓和IO電平可調,便于直接調試2.7V-5V邏輯電平的器件,如液晶模塊、AD/DA芯片、EEPROM等。
上傳時間: 2014-01-26
上傳用戶:lbbyxmraon
LPC900系列單片機,是PHILIPS公司推出的一款高性能、微功耗、51內核的微處理器,主要集成了字節方式I2C總線、SPI總線、增強型UART接口、比較器、實時時鐘、E2PROM、AD/DA轉換器、IAP(應用中編程)等一系列有特色的功能部件。并提供ISP(在系統編程)和ICP(在電路編程)多種下載調試模式。且其具有高速率(6倍于普通51單片機),低功耗(完全掉電模式功耗低于1uA),高穩定性,小封裝,多功能(內嵌眾多流行的功能模塊),多選擇等特點(該系列有多款不同封裝,不同價位,不同功能的型號供用戶選擇)。本文將詳細介紹如何使用ICP及ISP等下載模式對芯片進行編程、及升級。
上傳時間: 2013-11-07
上傳用戶:haohao
LPC900 系列單片機由于其功能強大,性能穩定一直深受用戶歡迎。P89LPC901 是LPC900 系列單片機的一員,性價比極高,為SO8/DIP8 封裝,內含1KB FLASH,支持ICP,且具有6 個I/O 口、4 個TIMER、1 路PWM 輸出、模擬比較器、鍵盤中斷等眾多功能部件。本文利用LPC901 單片機的強大功能實現ADC/DAC,并且通過模擬UART 與PC 機進行通信;通過PC 端軟件可以顯示DA 轉換結果及控制DA 輸出電壓。
上傳時間: 2013-11-06
上傳用戶:shus521
Smith控制算法仿真與控制:了解計算機控制過程,及用不同種高級語言編寫實驗程序的方法與特點。了解Smith算法和程序設計。掌握階躍信號、自定義信號下,Smith算法的參數整定及被控對象的仿真與控制。了解組態軟件在工業自動化方面的應用和基本使用方法。 單回路溫度控制箱A/D、DA轉換板溫度檢測元件XMZ數字顯示儀萬用表 1 Smith控制算法的參數整定仿真,繪制仿真曲線。2 Smith控制算法實時控制的參數整定,繪制實時控制曲線。
上傳時間: 2013-11-25
上傳用戶:europa_lin
基于單片機的紅外門進控制系統設計與制作:我們所做的創新實驗項目“基于單片機的紅外門控系統”已基本完成,現將其工作原理簡要說明。該系統主要分為兩大部分:一是紅外傳感器部分。二是單片機計數顯示控制部分。基本電路圖如下:其中紅外傳感器部分我們采用紅外對管實現,紅外對管平行放置,平常處于接收狀態,經比較器輸出低電平,當有人經過時,紅外線被擋住,接收管接收不到紅外線,經比較器輸出高電平。這樣,當有人經過時便會產生一個電平的跳變。單片機控制部分主要是通過外部兩個中斷判斷是否有人經過,如果有人經過,由于電平跳變的產生,進入中斷服務程序,這里我們采用了兩對紅外傳感器接到兩個外部中斷口,中斷0作為入口,實現加1操作,中斷1作為出口,實現減1操作。另外,我們通過P0口控制室內燈的亮暗,當寄存器計數值為0時,熄燈,不為0時,燈亮。顯示部分,采用兩位數碼管動態顯示,如有必要,可以很方便的擴展為四位計數。精益求精!在實驗過程中,我們走了非常多的彎路,做出來的東西根本不是自己想要的,我們本想做成室內只有一個門的進出計數,原理已清楚,即在門的兩邊放置兩對紅外對管,進出時,擋住兩對對管的順序不同,因此,可判斷是進入還是出去,從而實現加減計數,編程時,可分別在兩個中斷服務程序的入口置標志位,根據標志位判斷進出,詳細內容在程序部分。理論如此,但在實際過程中,還是發現實現不了上述功能,我們初步判定認為是程序掌握得不夠好,相信隨著自己對單片機了解的深入,應該會做出更好的 (因為我們是臨時學的單片機),程序的具體內容如下: $MOD52 ORG 0000H LJMP MAIN ORG 0003H LJMP 0100H ORG 0013H LJMP 0150H ORG 0050HMAIN: CLR A MOV 30H , A ;初始化緩存區 MOV 31H , A MOV 32H , A MOV 33H , A MOV R6 , A MOV R7 , A SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB PX1NEXT1: ACALL HEXTOBCDD ;調用數制轉換子程序 ACALL DISPLAY ;調用顯示子程序 LJMP NEXT1 ORG 0100H ;中斷0服務程序 LCALL DELY mov 70h,#2 djnz 70h,next JBC F0,NEXT SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 MOV A , R7 ADD A , #1 MOV R7, A MOV A , R6 ADDC A , #0 MOV R6 , A CJNE R6 , #07H , NEXT CLR A MOV R6 , A MOV R7 , ANEXT: RETI ORG 0150H ;中斷1服務程序 LCALL DELY mov 70h,#2 djnz 70h,next2 JBC F0,NEXT2 SETB F0 CLR P0.0 LCALL DELY0 SETB P0.0 CLR C MOV A , R7 SUBB A , #1 MOV R7, A MOV A , R6 SUBB A , #0 MOV R6 , A CJNE R6 , #07H , NEXT2 CLR A MOV R6 , A MOV R7 , ANEXT2: RETI ORG 0200HHEXTOBCDD:MOV A , R6 ;由十六進制轉化為十進制 PUSH ACC MOV A , R7 PUSH ACC MOV A , R2 PUSH ACC CLR A MOV R3 , A MOV R4 , A MOV R5 , A MOV R2 , #10HHB3: MOV A , R7 ;將十六進制中最高位移入進位位中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ;每位數加上本身相當于將這個數乘以2 ADDC A , R5 DA A MOV R5 , A MOV A , R4 ADDC A , R4 DA A ;十進制調整 MOV R4 , A MOV A , R3 ADDC A , R3 DJNZ R2 , HB3 POP ACC MOV R2 , A POP ACC MOV R7 , A POP ACC MOV R6 , A RET ORG 0250HDISPLAY: MOV R0 , #30H MOV A , R5 ANL A , #0FH MOV @R0 , A MOV A , R5 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 ANL A , #0FH INC R0 MOV @R0 , A MOV A , R4 SWAP A ANL A , #0FH INC R0 MOV @R0 , A MOV R0 , #30H MOV R2 , #11111110BAGAIN: MOV A , R2 MOV P2 , A MOV A , @R0 MOV DPTR , #TAB MOVC A , @A+DPTR MOV P1 , A ACALL DELAY INC R0 MOV A , R2 RL A MOV R2 , A JB ACC.4 , AGAIN RETTAB: DB 03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH ;七段碼表DELY: MOV R1,#80D1: MOV R2,#100 DJNZ R2,$ DJNZ R1,D1 RET DELAY: MOV TMOD , #01H ;延時子程序 MOV TL0 , #0FEH MOV TH0 , #0FEH SETB TR0WAIT: JNB TF0 , WAIT CLR TF0 CLR TR0 RETDELY0: MOV R1, #200D3: MOV R2,#250 DJNZ R2,$ DJNZ R1,D3 RET END 該系統實際應用廣泛。可用在生產線上產品數量統計、公交車智能計數問候(需添加語音芯片)、超市內人數統計等公共場合。另外,添加串口通信部分便可實現與PC數據交換的功能。 由于,實驗簡化了,剩下不少零件和資金,所以我們又做了兩項其他的實驗。
上傳時間: 2013-12-22
上傳用戶:tangsiyun
#include<reg51.h>/*************************ds1302與at89s52引腳連接********************/sbit T_RST=P3^5; sbit T_CLK=P3^6; sbit T_IO=P3^7; sbit ACC0=ACC^0;sbit ACC7=ACC^7;unsigned char seg[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09}; //0~~9段碼 /******************DS1302:寫入操作(上升沿)*********************/ void write_byte(unsigned char da){ unsigned char i; ACC=da; for(i=8;i>0;i--) { T_IO=ACC0; T_CLK=0; T_CLK=1; ACC=ACC>>1; }} /******************DS1302:讀取操作(下降沿)*****************/unsigned char read_byte(void){ unsigned char i; for(i=0;i<8;i++) { ACC=ACC>>1; T_CLK = 1; T_CLK = 0; ACC7 = T_IO; } return(ACC); } /******************DS1302:寫入數據(先送地址,再寫數據)***************************/ void write_1302(unsigned char addr,unsigned char da){ T_RST=0; //停止工作 T_CLK=0; T_RST=1; //重新工作 write_byte(addr); //寫入地址 write_byte(da); T_RST=0; T_CLK=1;}
上傳時間: 2014-01-17
上傳用戶:sglccwk
計算機應用中,有時需處理的信息不是數字量,而是一些隨時間連續變化的模擬量,甚至是一些非電量,如溫度、壓力、速度等。模擬量的存儲處理困難。首先將非電的模擬信號變成與之對應的模擬電信號,這要通過各種傳感器來完成。計算機可處理的信息均是數字量(電脈沖信號)1和0,必須把要處理的模擬電量轉換成數字化的電信號,這需要模擬(Analog)與數字(Digital)轉換電路。數字到模擬轉換:(Digital to Analog Convert, D/A) D/A轉換電路是模擬電路加上電子開關。D/A轉換電路的核心是一個運算放大器。運算放大器的特性:(Operation Amplifier) K->無窮大, V和->0 傳遞函數:V0 = -Vi * R0/Ri Ii->0, I和=If梯形R-2R電阻網絡D/A轉換器Ki受一個8位二進制代碼控制 某位為1,對應開關K倒向右邊; 某位為0,對應開關K倒向左邊。Ki不論倒向哪邊,均為接地VA-VH 的電位為: VREF,1/2VREF,..1/128VREFVO= -VREF *(1/2K7+1/4K6+…+1/256K0)V0= -(0-255/256)VREF 8位D/A轉換器DAC0830系列器件國家半導體公司(NS)產品,0830、0831、0832。R-2R梯形電阻網絡D/A轉換器,雙緩沖結構。單電源、低功耗、電流建立時間1uS。與微計算機接口方便。8位D/A轉換器DAC0830系列器件ILE: 輸入鎖存允許; WR1#: 加載IN REG; WR2#: 加載DAC REG; XFER#: IN REG傳到DAC REG; Iout1,Iout2: 外接OA輸入; Rfb: 反饋電阻接OA輸出; VREF: 參考電源,控制輸出電壓變化范圍。
標簽: AD轉換
上傳時間: 2013-10-16
上傳用戶:lu2767
微機接口技術精品課程:匯編語言程序設計基礎,小型鍵盤結構與接口,DA與AD轉換,先進微處理器介紹,微計算機總線,DMA與DMA控制器,8255A可編程并行接口,8086總線操作、中斷系統及總線請求,8253計數器/定時器結構與編程,8251A可編程通信接口.
上傳時間: 2013-11-26
上傳用戶:emhx1990
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
在數字濾波器中,FIR濾波器是一種結構簡單且總是穩定的濾波器,同時也只有FIR濾波器擁有線性相位的特性。傳統的直接型濾波器運算速度過慢,而改進型的DA結構的濾波器需要過高的芯片面積消耗大量的邏輯資源很難達到運算速度以及邏輯資源節約的整體優化。本文提出了一種基于RAG算法的FIR濾波器,與傳統的基于DA算法的濾波器結構的濾波器相比,RAG算法簡化了FIR濾波器乘法模塊的結構,減少了邏輯資源的消耗和硬件實現面積,提高了計算速度。本文設計的16階FIR濾波器用VerilogHDL進行描述,并綜合到Altera公司的CycloneⅡ系列FPGA中。仿真實驗表明基于RAG算法的FIR濾波器達到了邏輯資源的節約和運算速度的提高的整體優化效果。
上傳時間: 2014-12-28
上傳用戶:feilinhan