數å—電壓表的è¨è¨ˆå’Œé–‹ç™¼,已經有多種類型和款å¼ã€‚傳統的數å—é›»å£“è¡¨å„æœ‰ç‰¹é»ž,它們é©åˆåœ¨ç¾å ´åšæ‰‹å·¥æ¸¬é‡,è¦å®Œæˆé 程測é‡å¹¶è¦å°æ¸¬é‡æ•¸æ“šåšé€²ä¸€æ¥åˆ†æžè™•ç†,傳統數å—電壓表是無法完æˆçš„。然而基于PC通信的數å—電壓表,æ—¢å¯ä»¥å®Œæˆæ¸¬é‡æ•¸æ“šçš„傳éž,åˆå¯å€ŸåŠ©PC,åšæ¸¬é‡æ•¸æ“šçš„處ç†ã€‚所以這種類型的數å—電壓表無論在功能和實際應用上,都具有傳統數å—電壓表無法比擬的特點,é€™ä½¿å¾—å®ƒçš„é–‹ç™¼å’Œæ‡‰ç”¨å…·æœ‰è‰¯å¥½çš„å‰æ™¯ã€‚
  
新型數å—電壓表的整機è¨è¨ˆ
  該新型數å—電壓表測é‡é›»å£“類型是直æµ,測é‡èŒƒåœæ˜¯-5~+5V。整機電路包括:數據采集電路的單片機最å°åŒ–è¨è¨ˆã€å–®ç‰‡æ©Ÿèˆ‡PC接å£é›»è·¯ã€å–®ç‰‡æ©Ÿæ™‚é˜é›»è·¯ã€å¾©ä½é›»è·¯ç‰ã€‚䏋使©Ÿé‡‡ç”¨AT89S51芯片,A/D轉æ›é‡‡ç”¨AD678芯片。通éŽRS232串行å£èˆ‡PC進行通信,傳逿‰€æ¸¬é‡çš„ç›´æµé›»å£“數據。整機系統電路如圖1所示。
  
數據采集電路的原ç†
  在單片機數據采集電路的è¨è¨ˆä¸,åšåˆ°äº†é›»è·¯è¨è¨ˆçš„æœ€å°åŒ–,峿²’ç”¨ä»»ä½•é™„åŠ é‚è¼¯å™¨ä»¶åšæŽ¥å£é›»è·¯,實ç¾äº†å–®ç‰‡æ©Ÿå°AD678轉æ›èŠ¯ç‰‡çš„æ“作。
  AD678是一種高檔的ã€å¤šåŠŸèƒ½çš„12ä½ADC,ç”±äºŽå…¶å…§éƒ¨è‡ªå¸¶æœ‰é‡‡æ¨£ä¿æŒå™¨ã€é«˜ç²¾åº¦åƒè€ƒé›»æºã€å…§éƒ¨æ™‚é˜å’Œä¸‰æ…‹ç·©æ²–數據輸出ç‰éƒ¨ä»¶,所以åªéœ€è¦å¾ˆå°‘的外部元件就å¯ä»¥æ§‹æˆå®Œæ•´çš„æ•¸æ“šé‡‡é›†ç³»çµ±,而且一次A/D轉æ›åƒ…需è¦5ms。 來æº:www.tede.cn
  在電路應用ä¸,AD678é‡‡ç”¨åŒæ¥å·¥ä½œæ–¹å¼,12使•¸å—é‡è¼¸å‡ºé‡‡ç”¨8使“作模å¼,å³12ä½è½‰æ›æ•¸å—é‡é‡‡ç”¨å…©æ¬¡è®€å–的方å¼,先讀å–其高8ä½,å†è®€å–其低4ä½ã€‚æ ¹æ“šæ™‚åºé—œç³»,åœ¨èŠ¯ç‰‡é¸æ“‡/CS=0時,轉æ›ç«¯/SC由高到低變化一次,å³å¯å•Ÿå‹•A/D轉æ›ä¸€æ¬¡ã€‚冿Ÿ¥è©¢è½‰æ›çµæŸç«¯/EOC,çœ‹è½‰æ›æ˜¯å¦å·²ç¶“çµæŸ,è‹¥çµæŸå‰‡ä½¿è¼¸å‡ºä½¿èƒ½/OE變低,輸出有效。12使•¸å—é‡çš„讀å–å‰‡è¦æŽ§åˆ¶é«˜å—節有效端/HBE,先讀å–高å—節,å†è®€å–低å—節。整個A/Dæ“作大致如æ¤,在實際開發應用ä¸èª¿æ•´ã€‚

圖1 數å—電壓表的電路圖
  由于電路ä¸é‡‡ç”¨AD678的雙極性輸入方å¼,è¼¸å…¥é›»å£“èŒƒåœæ˜¯-5~+5V,æ ¹æ“šå…¬å¼Vx=10(V)/4096*Dx,å³å¯è¨ˆç®—出所測電壓Vx值的大å°ã€‚å¼ä¸Dx為被測直æµé›»å£“轉æ›åŽçš„12使•¸å—é‡å€¼ã€‚
  
RS232接å£é›»è·¯çš„è¨è¨ˆ
 
  AT89S51與PC的接å£é›»è·¯é‡‡ç”¨èŠ¯ç‰‡Max232。Max232是德州儀器公å¸ï¼ˆTI)推出的一款兼容RS232標準的芯片。該器件包å«2個驅動器ã€2個接收器和1個電壓發生器電路æä¾›TIA/EIA-232-F電平。Max232芯片起電平轉æ›çš„功能,使單片機的TTL電平與PCçš„RS232電平é”到匹é…。
  串å£é€šä¿¡çš„RS232接å£é‡‡ç”¨9é‡ä¸²å£DB9,串å£å‚³è¼¸æ•¸æ“šåªè¦æœ‰æŽ¥æ”¶æ•¸æ“šé‡è…³å’Œç™¼é€é‡è…³å°±èƒ½å¯¦ç¾ï¼šåŒä¸€å€‹ä¸²å£çš„æŽ¥æ”¶è…³å’Œç™¼é€è…³ç›´æŽ¥ç”¨ç·šç›¸é€£,兩個串å£ç›¸é€£æˆ–一個串å£å’Œå¤šå€‹ä¸²å£ç›¸é€£ã€‚在實驗ä¸,用定時器T1作波特率發生器,其計數åˆå€¼X按以下公å¼è¨ˆç®—:
  波特率=

  *(T1的溢出率)
  =  

 *  

   
  串行通信波特率è¨ç½®ç‚º1200b/s,而SMOD=1,fosc=6MHz,計算得到計數åˆå€¼X=0f3H。在編程ä¸å°‡å…¶è£å…¥TL1å’ŒTH1ä¸å³å¯ã€‚
  為了便于觀察,ç•¶æ¯æ¬¡æ¸¬é‡é›»å£“采集數據時,單片機有端å£è¼¸å‡ºæ™‚,用發光二極管LED指示。
  
軟件編程
  軟件程åºä¸»è¦åŒ…æ‹¬ï¼šä¸‹ä½æ©Ÿæ•¸æ“šé‡‡é›†ç¨‹åºã€ä¸Šä½æ©Ÿå¯è¦–化界é¢ç¨‹åºã€å–®ç‰‡æ©Ÿèˆ‡PC串å£é€šä¿¡ç¨‹åºã€‚單片機采用C51語言編程,ä¸Šä½æ©Ÿçš„æ“ä½œé¡¯ç¤ºç•Œé¢é‡‡ç”¨VC++6.0進行å¯è¦–化編程。在串å£é€šä¿¡èª¿è©¦éŽç¨‹ä¸,借助“串å£èª¿è©¦åŠ©æ‰‹â€å·¥å…·,有效利用這個工具為整個系統æé«˜æ•ˆçŽ‡ã€‚
  
單片機編程
ã€€ã€€ä¸‹ä½æ©Ÿå–®ç‰‡æ©Ÿçš„æ•¸æ“šé‡‡é›†é€šä¿¡ä¸»ç¨‹åºæµç¨‹å¦‚圖2所示ã€ä¸æ–·å程åºå¦‚圖3所示ã€é‡‡é›†å程åºå¦‚圖4所示。單片機的編程仿真調試借助WAVE2000仿真器,本系統有集æˆçš„ISP仿真調試環境。
圖2 單片機采集通信主程åº
  在采集程åºä¸,單片機的編程æ“作è¦å®Œå…¨ç¬¦åˆAD678的時åºè¦èŒƒè¦æ±‚,在實際開發ä¸,è¦ä¸æ–·åŠ ä»¥èª¿è©¦ã€‚æœ€åŽå°‡ä¸‹ä½æ©Ÿèª¿è©¦æˆåŠŸè€Œç”Ÿæˆçš„.bin文件固化到AT89S51çš„Flash單元ä¸ã€‚
圖3 䏿–·æœå‹™å程åº
    
圖4 采集å程åº
  
人機界é¢ç·¨ç¨‹
  打開VC++6.0,建立一個基于å°è©±æ¡†çš„MFC應用程åº,串å£é€šä¿¡é‡‡ç”¨MSComm控件來實ç¾ã€‚å…¶ä»–æ“作æ¤è™•ä¸è´…è¿°,編程實ç¾ä¸€å€‹è‰¯å¥½çš„人機界é¢ã€‚數å—ç›´æµé›»å£“表的æ“作界é¢å¦‚圖5所示。é‹è¡ŒVC++6.0編程實ç¾çš„Windows程åº,整個樣機功能得以實ç¾ã€‚
  
åŠŸèƒ½çµæžœ
ã€€ã€€æ ¹æ“šä¸Šé¢æ‰€è¿°å·¥ä½œåŽŸç†åŠå¯¦æ–½æ–¹æ¡ˆ,在實è¸ä¸å¾ˆå¥½åœ°å¯¦ç¾äº†æ•´å€‹æ¨£æ©Ÿçš„功能,å„é …æŒ‡æ¨™é”到了é 先的è¨è¨ˆè¦æ±‚。電路工作穩定,æ¯æ¬¡æ¸¬é‡å‡ä¼´æœ‰LED發光指示,å¯è¦–化界é¢é¡¯ç¤ºä¹Ÿæ£å¸¸ã€‚
圖5 數å—電壓表的人機界é¢
  AD678轉æ›ç²¾åº¦æ˜¯12ä½,它的分辨率為1/4096。這為整機系統的高精度æä¾›äº†ä¿éšœã€‚為了æé«˜æ¸¬é‡ç²¾åº¦,é‹ç”¨äº†AD678è‡ªå¸¶çš„æ ¡æº–é›»è·¯,這樣使其A/D轉æ›ç²¾åº¦æ›´é«˜ã€‚在實際測é‡ä¸,整機測é‡ç²¾åº¦é”到了0.8%。