多路電壓采集系統一、實驗目的1.熟悉可編程芯片ADC0809,8253的工作過程,掌握它們的編程方法。2.加深對所學知識的理解并學會應用所學的知識,達到在應用中掌握知識的目的。 二、實驗內容與要求1.基本要求通過一個A/D轉換器循環采樣4路模擬電壓,每隔一定時間去采樣一次,一次按順序采樣4路信號。A/D轉換器芯片AD0809將采樣到的模擬信號轉換為數字信號,轉換完成后,CPU讀取數據轉換結果,并將結果送入外設即CRT/LED顯示,顯示包括電壓路數和數據值。2. 提高要求 (1) 可以實現循環采集和選擇采集2種方式。(2)在CRT上繪制電壓變化曲線。 三、實驗報告要求 1.設計目的和內容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單5.設計結果和體會(包括遇到的問題及解決的方法) 四、總體設計設計思路如下:1) 4路模擬電壓信號通過4個電位器提供0-5V的電壓信號。2) 選擇ADC0809芯片作為A/D轉換器,4路輸入信號分別接到ADC0809的IN0—IN4通道,每隔一定的時間采樣一次,采完一路采集下一路,4路電壓循環采集。3) 利用3個LED數碼管顯示數據,1個數碼管用來顯示輸入電壓路數,3個數碼管用來顯示電壓采樣值。4) 延時由8253定時/計數器來實現。 五、硬件電路設計根據設計思路,硬件主要利用了微機實驗平臺上的ADC0809模數轉換器、8253定時/計數器以及LED顯示輸出等模塊。電路原理圖如下:1.基本接口實驗板部分1) 電位計模塊,4個電位計輸出4路1-5V的電壓信號。2) ADC0809模數轉換器,將4路電壓信號接到IN0-IN3,ADD_A、ADD_B、ADD_C分別接A0、A1、A2,CS_AD接CS0時,4個采樣通道對應的地址分別為280H—283H。3) 延時模塊,8253和8255組成延時電路。8255的PA0接到8253的OUT0,程序中查詢計數是否結束。硬件電路圖如圖1所示。 圖1 基本實驗板上的電路圖實驗板上的LED顯示部分實驗板上主要用到了LED數碼管顯示電路,插孔CS1用于數碼管段碼的輸出選通,插孔CS2用于數碼管位選信號的輸出選通。電路圖如圖2所示。
上傳時間: 2013-11-06
上傳用戶:sunchao524
交通燈控制器的設計與實現一、實驗目的1. 了解交通燈管理的基本工作原理。2. 熟悉8253計數器/定時器、8259A中斷控制器和8255A并行接口的工作方式及應用編程。3. 掌握多位LED顯示的方法。 二、 實驗內容與要求設計一個用于十字路口的交通燈控制器。1.基本要求: 1) 東西和南北方向各有一組紅,黃,綠燈用于指揮交通,紅,黃,綠的持續時間分別為25s,5s,20s。2) 當有緊急情況(如消防車)時,兩個方向均為紅燈亮,計時停止,當特殊情況結束后,控制器恢復原來狀態,正常工作。3) 一組數碼管,以倒計時方式顯示兩個方向允許通行或禁止通行的時間。2.提高部分:1) 實時修改交通燈的持續時間。2) 根據不同時段對主要交通方向的信號進行調整。3) 可以使用LCD顯示提示信息。 三、實驗報告要求 1.設計目的和內容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單 5.設計結果和體會(包括遇到的問題及解決的方法) 四、總體設計交通燈的工作過程如下:設十字路口的1、3為南,北方向,2、4為東西方向,初始態為4個路口的紅燈全亮。之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車,2個路口的LED數碼管開始倒計時25秒。延遲20秒后,1、3路口的綠燈熄滅,而1,3路口的黃燈開始閃爍(1HZ)。閃爍5次后,1、3路口的紅燈亮,同時2、4路口的綠燈亮,2、4路口方向開始通車,2個路口的LED數碼管重新開始倒計時25秒。延遲20秒時間后,2、4路口的綠燈熄滅,而黃燈開始閃爍。閃爍5次后,再切換到1、3路口方向。之后,重復上述過程。當有緊急情況時,2個方向都紅燈亮,倒計時停止,車輛禁止通行,當緊急情況結束后,控制器恢復以前的狀態繼續工作。 在設計中采用6個發光二極管來模擬2個路口的黃紅綠燈,每個路口用2個數碼管來顯示通行或禁止剩余的時間。緊急情況用一個單脈沖發生單元申請中斷來模擬,緊急情況結束后,再發一個中斷來恢復以前的狀態。 根據前面的介紹,本設計硬件由定時模塊、發光二極管模塊、數碼管顯示模塊和緊急中斷模塊組成。定時模塊采用硬件定時和軟件定時相結合的方法,用8253定時/計數器定時100ms,再用軟件計時實現所需的定時。發光二極管模塊由8255控制發光二極管來實現。數碼管顯示模塊由實驗平臺上的LED顯示模塊實現。緊急中斷模塊是由單脈沖發生單元和8279中斷控制器組成。 程序主要是由定時子程序、發光二極管顯示子程序、數碼管顯示子程序和中斷服務程序組成。包括對8253、8255以及8259等可編程器件的編程。 五、硬件設計 本課題的設計可通過實驗平臺上的一些功能模塊電路組成,由于各模塊電路內部已經連接,用戶在使用時只要設計模塊間電路的連接,因此,硬件電路的設計及實現相對簡單。完整系統的硬件連接如圖1所示。硬件電路由定時模塊、發光二極管模塊、數碼管顯示模塊和緊急中斷模塊組成。 定時模塊是由8253的計數器0來實現定時100ms。Clk0接實驗平臺分頻電路輸出Q6,f=46875hz。GATE0接8255的PA0,由8255輸出來控制計數器的起停。OUT0接8259的IRQ2,定時完成申請中斷,進入中斷服務程序。 發光二極管顯示模塊由8255輸出來控制發光二極管的亮滅。8255輸出為低電平時,對應的發光二極管就點亮,否則就熄滅。8255的接口電路如圖2所示。交通燈的對應關系如下:L7 L6 L5 L2 L1 L0PC7 PC6 PC5 PC2 PC1 PC013紅燈 13黃燈 13綠燈 24紅燈 24黃燈 24綠燈 實驗平臺上提供一組六個LED數碼管。插孔CS1用于數碼管段選的輸出選通,插孔CS2用于數碼管位選信號的輸出選通。本設計用4個數碼管來倒計時。 緊急中斷模塊是由單脈沖發生單元和8259中斷控制器,單脈沖發生單元主要用來請求中斷,然后做出緊急情況處理。
標簽: 交通燈控制器
上傳時間: 2013-10-07
上傳用戶:小小小熊
用C51寫的普通拼音輸入法源程序代碼:原作使用了一個二維數組用以查表,我認為這樣比較的浪費空間,而且每個字表的索引地址要手工輸入,效率不高。所以我用結構體將其改寫了一下。就是大家現在看到的這個。 因為代碼比較的大,共有6,000多漢字,這樣就得要12,000 byte來存放GB內碼,所以也是沒辦法的.編譯結果約為3000h,因為大部分是索引表,代碼優化幾乎無效。 在Keil C里仿真芯片選用的是華邦的W77E58,它有32k ROM, 256B on-chip RAM, 1K on-chip SRAM (用DPTR1指針尋址,相當于有1K的片上xdata)。條件有限,沒有上片試驗,仿真而已。 打算將其移植到AVR上,但CodeAVRC與IAR EC++在結構體、指針的定義使用上似乎與C51不太一樣,現在還未搞定。還希望在這方面有經驗的網友能給予指導。 #include<stdio.h> char * py_ime(char *); void main(void){ while(1) { char input_string[]="yI"; xdata char chinese_string[255]; sprintf(chinese_string,"%s",py_ime(input_string)); }}
上傳時間: 2013-10-30
上傳用戶:cainaifa
Σ-ΔA/D技術具有高分辨率、高線性度和低成本的特點。本文基于TI公司的MSP430F1121單片機,介紹了采用內置比較器和外圍電路構成類似于Σ-△的高精度A/D實現方案,適合用于對溫度、壓力和電壓等緩慢變化信號的采集應用。 在各種A/D轉換器中,最常用是逐次逼近法(SAR)A/D,該類器件具有轉換時間固定且快速的特點,但難以顯著提高分辨率;積分型A/D 有較強的抗干擾能力,但轉換時間較長;過采樣Σ-ΔA/D由于其高分辨率,高線性度及低成本的特點,正得到越來越多的應用。根據這些特點,本文以TI公司的MSP430F1121單片機實現了一種類似于Σ-ΔA/D技術的高精度轉換器方案。 MSP430F1121是16位RISC結構的FLASH型單片機,該芯片有14個雙向I/O口并兼有中斷功能,一個16位定時器兼有計數和定時功能。I/O口輸出高電平時電壓接近Vcc,低電平時接近Vss,因此,一個I/O口可以看作一位DAC,具有PWM功能。 該芯片具有一個內置模擬電壓比較器,只須外接一只電阻和電容即可構成一個類似于Σ-Δ技術的高精度單斜率A/D。一般而言,比較器在使用過程中會受到兩種因素的影響,一種是比較器輸入端的偏置電壓的積累;另一種是兩個輸入端電壓接近到一程度時,輸出端會產生振蕩。 MSP430F1121單片機在比較器兩輸入端對應的單片機端口與片外輸入信號的連接線路保持不變的情況下,可通過軟件將比較器兩輸入端與對應的單片機端口的連接線路交換,并同時將比較器的輸出極性變換,這樣抵消了比較器的輸入端累積的偏置電壓。通過在內部將輸出連接到低通濾波器后,即使在比較器輸入端兩比較電壓非常接近,經過濾波后也不會出現輸出端的振蕩現象,從而消除了輸出端震蕩的問題。利用內置比較器實現高精度A/D圖1是一個可直接使用的A/D轉換方案,該方案是一個高精度的積分型A/D轉換器。其基本原理是用單一的I/O端口,執行1位的數模轉換,以比較器的輸出作反饋,來維持Vout與Vin相等。圖1:利用MSP430F1121實現的實用A/D轉換器電路方案。
上傳時間: 2013-11-10
上傳用戶:lliuhhui
用單片機實現溫度遠程顯示摘 要:文章介紹了用AT89S8252單片機的串行接口與智能溫度巡回檢測儀(XJ-08S)通過RS—485總線相互通訊實現熱水溫度遠程顯示的一種低成本解決方案,內容涉及RS—485總線通訊、單片機驅動數碼管顯示、數據轉換以及鍵盤處理軟硬件設計等內容。關鍵詞:單片機 RS—485總線 數碼管顯示 數據轉換 鍵盤處理一、前 言目前檢測溫度一般采用熱電偶或熱敏電阻作為傳感器,這種傳感器至儀表之間一般都要用專用的溫度補償導線,而溫度補償導線價格很貴,并且線路太長也會影響測量精度。在實際應用中往往需要對較遠處(1KM左右)的溫度信號進行監視。現有的解決方案有很多,例如:1、 在現場用智能儀表對溫度信號進行測量,用計算機作上位機與智能儀表進行通訊來實現遠程溫度監測(采用這種方案要增加計算機設備及相關計算機軟件)。2、 NCU+DDC實現遠程溫度監測。用兩個DDC,一個安裝在現場測量溫度,另一個安裝在監視地,兩個DDC通過NCU進行通訊從而實現遠程溫度監測。但以上方案都存在成本高的問題,有沒有低成本的解決方案呢?其實,在單片機應用日益廣泛的今天,完全可以用單片機以極低的成本來實現遠程溫度監測。二、問題的提出我單位管理的鍋爐房同時給兩棟建筑物內的兩家酒店供應蒸汽,由安裝在兩棟建筑物地下室的熱交換器進行熱交換后產生熱水送給客房。從鍋爐房至兩個熱交換站的距離分別約600米,值班人員要不停地奔波于兩個熱交換站與鍋爐房之間進行設備巡視,檢查熱水溫度是否控制在規定的范圍,這樣不僅增加了值班人員的勞動強度,同時也使鍋爐房經常無人(因每班1人值班)。如果能在鍋爐房顯示兩個熱交換站內各熱交換器的熱水溫度,則值班人員僅在熱水溫度異常時才需到各熱交換站檢查設備,這樣便可解決上述問題。我公司曾就此問題找專業公司作過方案,其報價在人民幣10萬元左右,后因種種原因該項目未實施。經過分析,本人發現可以用單片機+智能儀表以低成本實現溫度遠程顯示,并且經過實驗取得了成功,現將設計方案簡述如下:三、控制要求及解決方案選擇 1、 兩個熱交換站分高低區共安裝有8個熱交換器,正常水溫在45oC至65oC之間;兩個熱交換站與鍋爐房的距離分別為500米和600米左右。2、 要求在鍋爐房能以巡回及定點兩種方式顯示8個熱交換器的熱水溫度,巡回方式以3秒為周期輪流更新及顯示各熱交換器熱水溫度。定點方式時每按上鍵或下鍵一次則顯示上或下一個熱交換器熱水溫度,每3秒自動更新數據一次。3、 根據控制要求選擇單片機+智能儀表的解決方案:用帶通訊接口的智能儀表安裝在現場測量溫度,設計制作一個單片機裝置完成與智能儀表的通訊及數據顯示。四、通訊協議、智能儀表選擇及其參數介紹因熱水溫度信號變化較慢,因而對通信的速度要求不高,對于這種低速率遠距離的通訊選用RS-485總線適宜。RS-485是EIA(美國電子工業聯合會)在1983年公布的新的平衡傳輸標準,是工業界使用最為廣泛的雙向、平衡傳輸線標準接口,它以半雙工方式通信,支持多點連接,傳統驅動器允許創建多達32個節點的網絡,且其具有傳輸距離遠(最大傳輸距離為1200M),傳輸速度快(1200M時為100KBPS)等優點。其連接方法如下圖所示。
上傳時間: 2013-10-12
上傳用戶:luopoguixiong
三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知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
用單片機配置FPGA—PLD設計技巧 Configuration/Program Method for Altera Device Configure the FLEX Device You can use any Micro-Controller to configure the FLEX device–the main idea is clocking in ONE BITof configuration data per CLOCK–start from the BIT 0The total Configuration time–e.g. 10K10 need 15K byte configuration file•calculation equation–10K10* 1.5= 15Kbyte–configuration time for the file itself•15*1024*8*clock = 122,880Clock•assume the CLOCK is 4MHz•122,880*1/4Mhz=30.72msec
上傳時間: 2013-10-09
上傳用戶:a67818601
I2C 總線包括了兩條串行總線(時鐘線SCL 和數據線SDA),通過這兩條總線能實現多個芯片之間的通信。在互相連接的芯片中,至少有一個芯片作為總線控制器,而其它芯片則作為從控制器。在本應用說明中,介紹了用Holtek 的八位RISC 結構的單片機作為單總線控制器的軟件實現的方法。在本文的示例中,采用了一片EEPROM(型號HT24LC02,2Kbit)作為從控制器參與測試。電路說明:HT24LC02 的A0、A1、A2、VSS、WP 引腳接地,VCC 接+5V,SCL 接PA3,SDA 接PA2使用說明:例程中先向eeprom 中寫數據,寫完后,再將eeprom 中內容讀出來,并將讀出數據進行比較,若數據不相等程序跳到fail_out 中;若相等,最后程序跳到ok_end 中。本說明中提供了一個源文件OP_HT24.ASM 和一個包含文件HT24.ASM。在應用時,要將OP_HT24.ASM 文件添加到用戶的project 中,并修改HT24.INC 文件中的變量設置,以建立SCL/SDA引腳來與用戶的應用電路相匹配。
上傳時間: 2013-10-19
上傳用戶:ming52900
用VHDL語言進行MCS-51兼容單片機ip核開發
上傳時間: 2013-10-28
上傳用戶:nem567397
用c5402構建的聲回波對消器
上傳時間: 2014-12-28
上傳用戶:pei5