第一篇:數(shù)碼管簡介
(注:此文檔內(nèi)容均復(fù)制:數(shù)碼管_百科名片,僅供下載方便。)
數(shù)碼管
百科名片
數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。
一 產(chǎn)品分類
數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點(diǎn)顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管。
按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。
二 驅(qū)動方式
數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。
1)靜態(tài)顯示驅(qū)動
靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機(jī)可用的I/O端口才32個呢:),實(shí)際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。
2)動態(tài)顯示驅(qū)動
數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。
三 主要參數(shù)
1)8字高度
8字上沿與下沿的距離。比外型高度小。通常用英寸來表示。范圍一般為0.25-20英寸。
2)長*寬*高
長——數(shù)碼管正放時,水平方向的長度;寬——數(shù)碼管正放時,垂直方向上的長度;高——數(shù)碼管的厚度。
3)時鐘點(diǎn)
四位數(shù)碼管中,第二位8與第三位8字中間的二個點(diǎn)。一般用于顯示時鐘中的秒。數(shù)碼管使用的電流與電壓
4)電流
靜態(tài)時,推薦使用10-15mA;動態(tài)時,16/1動態(tài)掃描時,平均為4-5mA,值電流50-60mA。
5)電壓
查引腳排布圖,看一下每段的數(shù)量是多少?當(dāng)紅色與黃綠色時,使用1.9V乘以每段的芯片串聯(lián)的個數(shù);當(dāng)綠色/藍(lán)色時,使用3.1V乘以每段的芯片串聯(lián)的個數(shù)。
四 數(shù)碼管應(yīng)用
數(shù)碼管是一類 通過對其不同的管腳輸入相對的電流,會使其發(fā)亮,從而顯示出數(shù)字能夠顯示 時間、日期、溫度等所有可用數(shù)字表示的參數(shù)。
由于它的價格便宜 使用簡單 在 特別是家電領(lǐng)域應(yīng)用極為廣泛,空調(diào)、熱水器、冰箱等等。絕大多數(shù)熱水器用的都是數(shù)碼管,其他家電也用液晶屏與熒光屏。
五 常見問題
恒流驅(qū)動與非恒流驅(qū)動對數(shù)碼管的影響
1)顯示效果
由于發(fā)光二極管基本上屬于電流敏感,其正向壓降的分散性很大,并且還與溫度有關(guān),為了保證數(shù)碼管具有良好的亮度均勻度,就需要使其具有恒定的工作電流,且不能受溫度及其它因素的影響。另外,當(dāng)溫度變化時驅(qū)動芯片還要能夠自動調(diào)節(jié)輸出電流 的大小以實(shí)現(xiàn)色差平衡溫度補(bǔ)償。
2)安全性
即使是短時間的電流過載也可能對發(fā)光管造成永久性的損壞,采用恒流驅(qū)動電路后可防止 由于電流故障所引起的數(shù)碼管的大面積損壞。
另外,我們所采用的還具有級聯(lián)延時開關(guān)特性,可防止反向尖峰電壓對發(fā)光二極管的損害。
超大規(guī)模集成電路還具有熱保護(hù)功能,當(dāng)任何一片的溫度超過一定值時可自動關(guān)斷,并且可在控制室內(nèi)看到故障顯示。
3)為什么數(shù)碼管亮度不均勻?
關(guān)于亮度一致性的問題是一個行業(yè)內(nèi)的常見問題。
有二個大的因素影響到亮度一致性。
一是使用原材料芯片的選取,一是使用數(shù)碼管時采取的控制方式。
原材料--芯片的VF和亮度和是一個正態(tài)分布,即使篩選過芯片,VF和亮度和波長已在一個很小的范圍了,生產(chǎn)出來的產(chǎn)品還是在一個范圍內(nèi),結(jié)果就是亮度不一致。
要保證數(shù)碼管亮度一樣,在控制方式選取上也有差別。最好的辦法是恒流控制,流過每一個發(fā)光二極管的電流都是相同的,這樣發(fā)光二極管看起來亮度就是一樣的了。如恒壓控制,則導(dǎo)致VF不相同的發(fā)光二極管分到的電流不相同,所以亮度也不同。
當(dāng)然以上二個條件是相輔相成的。
4)怎樣測量數(shù)碼管引腳,分共陰和共陽?
找公共共陰和公共共陽:首先,我們找個(3到5伏)和1個1K(幾百歐的也行)的電阻,VCC串接個電阻后和GND接在任意2個腳上,組合有很多,但總有一個LED會發(fā)光的,找到一個就夠了,然后GND不動,VCC(串電阻)逐個碰剩下的腳,如果有多個LED(一般是8個),那它就是共陰的了。相反用VCC不動,GND逐個碰剩下的腳,如果有多個LED(一般是8個),那它就是共陽的。也可以直接用數(shù)字萬用表,紅表筆是電源的正極,黑表筆是電源的負(fù)極。
5)LED全彩數(shù)碼管的效果控制系統(tǒng)
a 防水一般是在外罩接口處用熱熔膠或硅膠密封,內(nèi)部LED、電路板都是裸露的,由于晝夜溫差大,外罩的端頭與外罩熱脹冷縮不同,導(dǎo)致熱熔膠或硅膠密封處出現(xiàn)縫隙,下雨后雨水滲進(jìn)內(nèi)部,造成電路短路而燒毀LED。要解決這個問題,一定要求對內(nèi)部電路和LED進(jìn)行灌膠處理。接頭單用熱熔膠或硅膠密封固然簡單,但可靠性達(dá)不到在戶外應(yīng)用的要求。
b 防LED護(hù)欄管由于要求混光防雨,外面都會有外罩,外罩的材料選擇是很多不規(guī)范公司降低成本的又一個手段,質(zhì)量好的產(chǎn)品都會使用增加了抗紫外線的材料。如GE、拜爾等材料,而質(zhì)量不好的LED護(hù)欄管很多使用混合了水口料的材料,談不上抗紫外線,太陽光比較大的地方,不到一個月,外罩就變成黃色的了,從而出光效果變差,透光率也大大減小。
c 線損有色金屬漲價很多,采用劣質(zhì)材料和減小線徑是一些廠家節(jié)省成本的方法,一般好的生產(chǎn)廠家都會在內(nèi)部使用1mm以上的導(dǎo)線,而且導(dǎo)線材料使用的是符合國標(biāo)的產(chǎn)品。如果導(dǎo)線面積不夠或材料的雜質(zhì)太多,電阻值就較大,前面的護(hù)欄管和后面的護(hù)欄管就有較大的電壓差,為了讓后面的LED也能正常工作,就需要增加輸入電壓,這樣無形中就增加了功耗,很多電能不是用于驅(qū)動驅(qū)動LED,而是浪費(fèi)在導(dǎo)線和恒流芯片上?,F(xiàn)在通用的恒流芯片都有功耗要求,電壓高功耗就大,如果功耗太大,熱量散不出去就會導(dǎo)致芯片燒毀。這就是為什么很多LED護(hù)欄管都是前面損壞得多的原因了。
d 散熱一般LED護(hù)欄管外罩和低座完全是一體的,都是塑膠材料。當(dāng)LED排布很密時,在通電熱平衡后,LED的結(jié)溫已經(jīng)很高了,就將造成LED的壽命急劇減少。實(shí)力強(qiáng)的LED護(hù)欄管公司肯定會有熱設(shè)計(jì)人員,在設(shè)計(jì)護(hù)欄管外罩時就會想法把LED的熱量和恒流芯片的熱量有效的傳導(dǎo)到大氣中去。底座使用鋁材是比較好的方法。另外在設(shè)計(jì)時要盡量將PCB靠近鋁底座。
e 供電護(hù)欄管的供電有兩種方式:220V的高壓和48V以下的低壓。220V直接供電是一種危險而又不經(jīng)濟(jì)的方式,低壓的做法是用電容或電阻降壓后供給。這種方式首先是安全性就存在很大的問題;其次是太耗電并對電網(wǎng)有極大的損害,供電部門是堅(jiān)決反對的。由于突然在線路上加接了大量的容性負(fù)載,使供電線路失配形成了自激震蕩,就可能出大事故。
第二篇:數(shù)碼管簡介
(注:此文檔內(nèi)容均復(fù)制:數(shù)碼管_百科名片,僅供下載方便。)
數(shù)碼管
百科名片
數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。
一 產(chǎn)品分類 數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點(diǎn)顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管。
按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時,相應(yīng)字段就不亮。
二 驅(qū)動方式 數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。
1)靜態(tài)顯示驅(qū)動的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動,要知道一個89S51單片機(jī)可用的I/O端口才32個呢:),實(shí)際應(yīng)用時必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。
2)動態(tài)顯示驅(qū)動
數(shù)碼管動態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。
三 主要參數(shù)
1)8字高度
8字上沿與下沿的距離。比外型高度小。通常用英寸來表示。范圍一般為0.25-20英寸。
2)長*寬*高
長——數(shù)碼管正放時,水平方向的長度;寬——數(shù)碼管正放時,垂直方向上的長度;高——數(shù)碼管的厚度。
3)時鐘點(diǎn)
四位數(shù)碼管中,第二位8與第三位8字中間的二個點(diǎn)。一般用于顯示時鐘中的秒。數(shù)碼管使用的電流與電壓
4)電流
靜態(tài)時,推薦使用10-15mA;動態(tài)時,16/14-5mA值電流50-60mA。
5)電壓
1.9V乘以每段的芯片串聯(lián)的個數(shù);當(dāng)綠色/藍(lán)色時,使用3.1V乘以每段的芯片串聯(lián)的個數(shù)。
四 數(shù)碼管應(yīng)用
通過對其不同的管腳輸入相對的電流,會使其發(fā)亮,從而顯示出數(shù)字能夠顯示 時間、日期、溫度等所有可用數(shù)字表示的參數(shù)。
由于它的價格便宜 使用簡單特別是家電領(lǐng)域應(yīng)用極為廣泛,空調(diào)、熱水器、冰箱等等。絕大多數(shù)熱水器用的都是數(shù)碼管,其他家電也用液晶屏與熒光屏。
五 常見問題
恒流驅(qū)動與非恒流驅(qū)動對數(shù)碼管的影響
1)顯示效果
并且還與溫度有關(guān),為了保證數(shù)碼管具有良好的亮度均勻度,就需要使其具有恒定的工作電流,且不能受溫度及其它因素的影響。另外,當(dāng)溫度變化時驅(qū)動芯片還要能夠自動調(diào)節(jié)輸出電流 的大小以實(shí)現(xiàn)色差平衡溫度補(bǔ)償。
2)安全性
即使是短時間的電流過載也可能對發(fā)光管造成永久性的損壞,采用恒流驅(qū)動電路后可防止 由于電流故障所引起的數(shù)碼管的大面積損壞。
峰電壓對發(fā)光二極管的損害。
超大規(guī)模集成電路還具有熱保護(hù)功能,當(dāng)任何一片的溫度超過一定值時可自動關(guān)斷,并且可在控制室內(nèi)看到故障顯示。
3)為什么數(shù)碼管亮度不均勻?
關(guān)于亮度一致性的問題是一個行業(yè)內(nèi)的常見問題。
有二個大的因素影響到亮度一致性。
一是使用原材料芯片的選取,一是使用數(shù)碼管時采取的控制方式。
原材料--芯片的VFVF和亮度和波長已在一個很小的范圍了,生產(chǎn)出來的產(chǎn)品還是在一個范圍內(nèi),結(jié)果就是亮度不一致。
要保證數(shù)碼管亮度一樣,在控制方式選取上也有差別。最好的辦法是恒流控制,流過每一個發(fā)光二極管的電流都是相同的,這樣發(fā)光二極管看起來亮度就是一樣的了。如恒壓控制,則導(dǎo)致VF不相同的發(fā)光二極管分到的電流不相同,所以亮度也不同。
當(dāng)然以上二個條件是相輔相成的。
4)怎樣測量數(shù)碼管引腳,分共陰和共陽?
3到5伏)和1個1K(幾百歐的也行)的電阻,VCC串接個電阻后和GND接在任意2個腳上,組合有很多,但總有一個LED會發(fā)光的,找到一個就夠了,然后GND不動,VCC(串電阻)逐個碰剩下的腳,如果有多個LED(一般是8個),那它就是共陰的了。相反用VCC不動,GND逐個碰剩下的腳,如果有多個LED(一般是8個),那它就是共陽的。也可以直接用數(shù)字萬用表,紅表筆是電源的正極,黑表筆是電源的負(fù)極。
5)LED全彩數(shù)碼管的效果控制系統(tǒng)
a 防水LED、電路板都是裸露的,由于晝夜溫差大,外罩的端頭與外罩熱脹冷縮不同,導(dǎo)致熱熔膠或硅膠密封處出現(xiàn)縫隙,下雨后雨水滲進(jìn)內(nèi)部,造成電路短路而燒毀LED。要解決這個問題,一定要求對內(nèi)部電路和LED進(jìn)行灌膠處理。接頭單用熱熔膠或硅膠密封固然簡單,但可靠性達(dá)不到在戶外應(yīng)用的要求。
b LED護(hù)欄管由于要求混光防雨,外面都會有外罩,外罩的材料選擇是很多不規(guī)范公司降低成本的又一個手段,質(zhì)量好的產(chǎn)品都會使用增加了抗紫外線的材料。如GE、拜爾等材料,而質(zhì)量不好的LED護(hù)欄管很多使用混合了水口料的材料,談不上抗紫外線,太陽光比較大的地方,不到一個月,外罩就變成黃色的了,從而出光效果變差,透光率也大大減小。
c 線損有色金屬漲價很多,采用劣質(zhì)材料和減小線徑是一些廠家節(jié)省成本的方法,一般好的生產(chǎn)廠家都會在內(nèi)部使用1mm以上的導(dǎo)線,而且導(dǎo)線材料使用的是符合國標(biāo)的產(chǎn)品。如果導(dǎo)線面積不夠或材料的雜質(zhì)太多,電阻值就較大,前面的護(hù)欄管和后面的護(hù)欄管就有較大的電壓差,為了讓后面的LED也能正常工作,就需要增加輸入電壓,這樣無形中就增加了功耗,很多電能不是用于驅(qū)動驅(qū)動LED,而是浪費(fèi)在導(dǎo)線和恒流芯片上?,F(xiàn)在通用的恒流芯片都有功耗要求,電壓高功耗就大,如果功耗太大,熱量散不出去就會導(dǎo)致芯片燒毀。這就是為什么很多LED護(hù)欄管都是前面損壞得多的原因了。
d 散熱一般LED護(hù)欄管外罩和低座完全是一體的,都是塑膠材料。當(dāng)LED排布很密時,在通電熱平衡后,LED的結(jié)溫已經(jīng)很高了,就將造成LED的壽命急劇減少。實(shí)力強(qiáng)的LED護(hù)欄管公司肯定會有熱設(shè)計(jì)人員,在設(shè)計(jì)護(hù)欄管外罩時就會想法把LED的熱量和恒流芯片的熱量有效的傳導(dǎo)到大氣中去。底座使用鋁材是比較好的方法。另外在設(shè)計(jì)時要盡量將PCB靠近鋁底座。
e 供電護(hù)欄管的供電有兩種方式:220V的高壓和48V以下的低壓。220V直接供電是一種危險而又不經(jīng)濟(jì)的方式,低壓的做法是用電容或電阻降壓后供給。這種方式首先是安全性就存在很大的問題;其次是太耗電并對電網(wǎng)有極大的損害,供電部門是堅(jiān)決反對的。由于突然在線路上加接了大量的容性負(fù)載,使供電線路失配形成了自激震蕩,就可能出大事故。
第三篇:LED數(shù)碼管介紹范文
供應(yīng)LED數(shù)碼管
LED-3006 LED數(shù)碼管
燈體尺寸:L1000*W50*H95MM mm
凈重: 1.0 Kg
分類: LED數(shù)碼管系列LED
LED 光源:48紅/48綠/48藍(lán)(1000mm long)
高度智能化產(chǎn)品,特別適應(yīng)高樓大廈外墻及高級娛樂場所使用,效果可實(shí)時設(shè)定。
專為大廈、酒店、橋梁輪廓裝飾而設(shè)計(jì)的最具燈光效果的燈具,以超高亮LED為光源,PC管材,防紫外線、抗老化、防水、防潮。色彩艷麗,具有流水掃描等千變?nèi)f化效果,同時也可根據(jù)用戶實(shí)際需求進(jìn)行效果設(shè)計(jì)。
型號與技術(shù)參數(shù):
燈體尺寸:L1000*W50*H95MM mm
凈重: 1.0 Kg
LED 光源:48紅/48綠/48藍(lán)(1000mm long)
材料: 乳白色聚碳酸酯(抗紫外線)
控制模式:DMX 512
電壓: AC 90-240V/50-60HZ(開關(guān)電源, 90V-240V 自動轉(zhuǎn)換)
操作溫度::-20℃ ~ +45℃
Net/Gross Weight:1.0kg/1.5kg
Size: L 1000*W50 *H 95MM
IP:44
型號: LED 3006C LED數(shù)碼管控制器
帶DMX 512通信功能
自動走燈模式25種
有單獨(dú)可調(diào)走燈模式29種
最少可以控制4000跟LED數(shù)碼管
自動存儲模式參數(shù)
預(yù)置參數(shù)設(shè)置模式
全彩六段護(hù)欄管,采取進(jìn)口PC 材料,可以根據(jù)客戶要求設(shè)計(jì)各種LED程序變化,以實(shí)現(xiàn)美化效果,產(chǎn)品廣泛應(yīng)用于戶可以根據(jù)客戶要求設(shè)計(jì)各種LED程序變化,以實(shí)現(xiàn)美化效果外工程、城市景觀、娛樂場所。是采用進(jìn)口臺灣超高亮度LED芯片及進(jìn)口PC管材,其基本特性是以RGB三基色及PCB電路板串(并)聯(lián)混合連接,內(nèi)置微處理器,執(zhí)行主機(jī)傳送的各種程序命令,能使眾多光源組合時產(chǎn)生色彩和動態(tài)上的變化,有縱向分層追逐掃描、流水、擴(kuò)張、漸變、同步等幾十種變化程序,燈光效果有單色(紅,黃,藍(lán),綠,白)、三色變化、七色變化、三段變化、六段變化、九段變化、十二段變化等循環(huán)切換,除了推薦的幾十種變化程序外,還可以根據(jù)客戶的要求隨機(jī)進(jìn)行變幻花樣的設(shè)計(jì),七彩流水型護(hù)攔燈是通過新型的電
腦編程控制,使其變化多達(dá)幾十種,還可以根據(jù)客戶需求而設(shè)定或自動變化。每米功率不超過12W,電壓12V,PC管材直徑可以為26mm,30mm,50mm,80mm,110mm, 燈泡粒數(shù)可以為96粒、108粒、120粒、144粒,150粒,亮度高、壽命長達(dá)100000小時。廣泛適用于橋梁、廣場、大樓輪廓、跨街空中走廊、建筑物輪廓、道路燈飾、各種燈光廣告牌、櫥窗、舞臺、大廈、酒店等場所裝飾,是城市亮化工程的主導(dǎo)產(chǎn)品,夜晚效果格外醒目,并能引導(dǎo)車輛行進(jìn)方向,可有效的防治交通事故的發(fā)生,并且對美化城市、塑造景觀有著特別重要的意義
LED護(hù)欄管——介紹:
以RGB三基色及PCB電路板串(并)聯(lián)混合連接,內(nèi)置微處理器,執(zhí)行主機(jī)傳送的各種程序命令,能使眾多光源組合時產(chǎn)生色彩和動態(tài)上的變化,有縱向分層追逐掃描、流水、擴(kuò)張、漸變、同步等幾十種變化程序,燈光效果有單色、三色變化、七色變化、三段變化、六段變化、八段變化、十二段、十六段變化等循環(huán)切換,除了推薦的幾十種變化程序外,還可以根據(jù)客戶的要求隨機(jī)進(jìn)行變幻花樣的設(shè)計(jì),七彩流水型護(hù)攔燈是通過新型的電腦編程控制,使其變化多達(dá)幾十種,還可以根據(jù)客戶需求而設(shè)定或自動變化。
LED護(hù)欄管——用途:
主要應(yīng)用于橋梁欄桿,樓體輪廓,招牌,酒吧KTV等場所。廣泛應(yīng)用于舞臺、酒吧、酒店、的士高、KTV歌舞廳、橋梁、花園、溝道河岸、各交通立交橋、建筑物輪廓、建筑物的裝飾及輪廓勾勒。是取代傳統(tǒng)霓虹燈和熒光燈的新一代照明解決案。
LED護(hù)欄管——技術(shù)參數(shù):
光源:采用進(jìn)口臺灣超高亮度LED芯片
材質(zhì):進(jìn)口PC管材
功率:每米功率不超過12W
電壓:12V
PC管材直徑:50mm,80mm,110mm
燈泡粒數(shù):108粒、120粒、144粒,150粒
工作壽命:長達(dá)100000小時。
LED護(hù)欄管——其它說明:
包裝方式:每件LED護(hù)欄管都是獨(dú)立環(huán)保包裝
品質(zhì)保證:本產(chǎn)品嚴(yán)格按照ISO9001:2000國際質(zhì)量管理體系標(biāo)準(zhǔn)進(jìn)質(zhì)量 控制,確保LED護(hù)欄管質(zhì)量符合國家標(biāo)準(zhǔn),完全達(dá)到設(shè)計(jì)要求。
2.LED護(hù)欄管需要解決的可靠性問題
2.1防水
以前的LED護(hù)欄管是在外罩接口處用硅膠密封,內(nèi)部LED、電路都是裸露的,由于晝夜溫差大,外罩的端頭與外罩熱脹冷縮不同,導(dǎo)致硅膠密封處出現(xiàn)縫隙,下雨后雨水滲進(jìn)內(nèi)部,可想而知結(jié)果會怎么樣。要解決這個問題,一定要求對內(nèi)部電路和LED灌膠處理,外面外罩硅膠密封固然簡單,但可靠性達(dá)不到在戶外大規(guī)模應(yīng)用的要求。
另一個問題就是電氣連接的接頭問題。很多廠家為了便宜往往選擇塑膠接頭,或者選擇質(zhì)量較差的金屬接頭,短時間的測試和使用,塑膠還沒有變形,防水是沒有問題,但是經(jīng)過太陽的照射和晝夜溫差變化,四季氣候變化,塑膠就會變形,從而導(dǎo)致防水膠圈失效,雨水滲進(jìn)接頭內(nèi)部導(dǎo)致電線短路,特別在帶電狀態(tài),電線的腐蝕比不帶電狀態(tài)下高若干個數(shù)量級。本人曾經(jīng)做的實(shí)驗(yàn),信號線接觸水后在8個小時通電狀態(tài)下就已經(jīng)腐蝕的象鐵銹一樣。較差的金屬接頭的價格只有正規(guī)廠家的幾分之一,由于表面處理和本身材料問題,也容易被雨水腐蝕,導(dǎo)致信號短路。
2.2防紫外線
LED護(hù)欄管由于要求混光,在外面都會加上外罩,外罩的材料選擇是很多不規(guī)范公司降低成本的又一個手段,質(zhì)量好的產(chǎn)品都會使用增加了抗紫外線的材料,如GE,拜爾等材料,而質(zhì)量不好的LED護(hù)欄管很多使用混合了水口料的材料,談不上抗紫外線,太陽光比較大的地方,不到一個月,外罩就變成$的了,從而出光效果變差,透光率也大大減小。
2.3防開裂
這個問題,還是外罩的問題,如果選擇的是帶水口料的材料,材料內(nèi)應(yīng)力很難去除,導(dǎo)致材料開裂。即使選擇比較好的材料,如果設(shè)計(jì),生產(chǎn)工藝不合理,也會產(chǎn)生很多內(nèi)應(yīng)力,有經(jīng)驗(yàn)的公司都會在注塑時選擇恒溫保護(hù),盡量減少內(nèi)應(yīng)力,還有一個去除內(nèi)應(yīng)力很好的辦法,如果對此有興趣的讀者可以咨詢材料方面的專家。
2.4線損
銅是一些廠家節(jié)省成本的地方,大家都知道,一般好的生產(chǎn)廠家都會在內(nèi)部使用1mm2以上的導(dǎo)線,而且導(dǎo)線使用的是符合國標(biāo)的產(chǎn)品。如果導(dǎo)線面積不夠,電阻較大,前面的護(hù)欄管和后面的護(hù)欄管就有較大的電壓差,為了讓后面的LED電流與前面的一致,一定需要增加輸入電壓,這樣無形中就增加了功耗,很多電能不是驅(qū)動LED,而是浪費(fèi)在導(dǎo)線和恒流芯片上。一般來說如果設(shè)計(jì)的產(chǎn)品前后電壓超過15%,問題就很嚴(yán)重了,因?yàn)楝F(xiàn)在通用的恒流芯片都是有功耗要求的,如果功耗太大,熱量散不出去就會導(dǎo)致芯片燒毀。大家現(xiàn)在應(yīng)該明白為什么很多級連的LED護(hù)欄管都是前面壞的多了。
2.5散熱
這個問題不僅體現(xiàn)的成本問題上,更多的是體現(xiàn)一個廠家的技術(shù)實(shí)力上,現(xiàn)在有些LED護(hù)欄管外罩和低座完全是一體的,都是塑膠材料,而且LED排布很密,這樣當(dāng)達(dá)到熱平衡時,LED的結(jié)溫已經(jīng)很高了,如果工作時的環(huán)境溫度較高,LED的壽命會急劇減少。實(shí)力強(qiáng)的LED護(hù)欄管公司肯定會有熱設(shè)計(jì)人員,在設(shè)計(jì)護(hù)欄管時要將LED的熱量和恒流芯片的熱量有效的導(dǎo)到大氣中去。大家應(yīng)該想到使用鋁材是比較好的解決方案,鋁的導(dǎo)熱系數(shù)高,可以有效的將內(nèi)部熱量導(dǎo)出。另外在設(shè)計(jì)時也要盡量將PCB靠近鋁底座,從而減少灌封膠部分產(chǎn)生的熱阻。這個問題又涉及到另一個問題,即灌封膠的選擇上,好的灌封膠不僅要求硬度適中,也要求有比較高的導(dǎo)熱系數(shù),目前很多護(hù)欄管廠家借鑒LED大屏的經(jīng)驗(yàn),使用韓國的灌封膠,這是個不錯的選擇,本人綜合的比較后發(fā)現(xiàn)某家德國公司的灌封膠在綜合性能上更勝一籌。
一、LED外控和內(nèi)控護(hù)欄管安裝方法及常見問題
主要材料:
LED護(hù)欄燈;護(hù)欄燈安裝卡子,防水變壓器,LED護(hù)欄燈主控器,LED護(hù)欄燈分控器,輔助材料:
公母插頭,超五類網(wǎng)線,兩芯電源線,自攻螺絲,膠粒等
LED外控護(hù)欄燈安裝步驟:
第一步:先將LED護(hù)欄燈安裝到墻體上:在墻體上打孔,裝膨脹螺釘,再裝LED護(hù)欄燈,用自攻螺絲鎖??;護(hù)欄燈之間的距離根據(jù)客戶的要求而定;一般是1CM到3CM之間。
第二步:檢查接頭上是否有防水膠圈,一般為白色或紅色硅膠圈.然后將LED護(hù)欄燈的信號線、電源線對接起來,一定要對接緊密,然后把螺母扭緊.(最好外面再打上玻璃膠或黑色膠布繞一下,這樣對防水更有好處.)不要因?yàn)轳R虎或難扭緊而沒有扭緊,造成進(jìn)水,給后來維護(hù)帶來不少麻煩.信號線公司采用的一般兩芯的小公母插頭;電源線是兩芯的大公母插;
第三步:安裝電源(變壓器或開關(guān)電源);
根據(jù)變壓器的功率以及護(hù)欄燈的功率來計(jì)算每臺變壓器可以帶多少條護(hù)欄燈;比如108燈的LED七彩護(hù)欄燈是10W/M;144燈的LED護(hù)欄燈是12W/M;若用400W的防水變壓器,則可以帶108燈36M管;144燈的則帶32 M管。若變壓器可以帶36M管;變壓器則放在第18和19條中間,接兩條線出來,再接幾個分接口,每邊各帶18條。
注:1.變壓器一般只用到80%到90%的功率;
2.不管變壓器的功率再大,每邊接的管最好不要超過8M;高壓220V的連接最好不要超過10米;因?yàn)殡娫磳?dǎo)線有功率損耗;越到后面的LED護(hù)欄燈亮度越低;而且電流過大對線路板,燈珠,線頭都會有影響。
第四步:LED護(hù)欄燈控制器的安裝;
先裝分控器,直接將分控器接在LED護(hù)欄燈上;分控器兩端一般有三個出線頭,一端一條的一般是電源線接24V或12V,注意這個電源線只是分控器的供電,護(hù)欄管的供電要另外聯(lián)接,另外一端兩條接線頭一條是從主控器輸入的信號線,一條是接護(hù)欄管的輸出的信號線,分控器上會標(biāo)出哪條接主控哪條接分控!
信號接信號(目前公司主要采用兩芯公母插小頭),電源接電源(兩芯公母插大頭);然后將分控器與主控器的信號對接,如果分控與主控的距離將遠(yuǎn)時可以用超五類網(wǎng)線連接起來,這樣信號比較好;每個分控只能帶固定數(shù)量的LED數(shù)碼管,一般可以帶到100M;現(xiàn)在公司用的兩芯數(shù)碼管數(shù)據(jù)線,可控制1000米,也可訂做到2000米,信號強(qiáng).易安裝.做樓體輪廓時,每一個分控帶一路;具體的情況根據(jù)LED效果圖安裝(公司會幫您算好要多少分控,每個分控帶哪一路,一般會有安裝圖紙)。分控與主控之間亦采用超五線網(wǎng)線連接;網(wǎng)線都是八條線的,采用公母信號插與網(wǎng)線對接起來,先接到分控上;不同回路的數(shù)碼管之間的信號線需要斷開。
第五步:通電,通信號。
將變壓器全部接到一條220V主電源上,然后采用一個空氣開關(guān)和時間開關(guān);控制LED數(shù)碼管(LED護(hù)欄燈)統(tǒng)一通電;然后將主控器上的變壓器插頭插在220V的電源上。
LED內(nèi)控,單色常亮護(hù)欄管的安裝:
單色護(hù)欄管直接按護(hù)欄管的電壓接電就行了,內(nèi)控護(hù)欄燈的安裝,直接接在對應(yīng)的電源上就行了;這里還要提到就是內(nèi)控編號LED護(hù)欄燈的安裝:內(nèi)控編號護(hù)欄燈的安裝必須按管的順序一個一個安裝;如果不按順序安裝最后會出現(xiàn)整體不同步現(xiàn)像。內(nèi)控和內(nèi)控編號護(hù)欄管必須同時通電,才能保證變化效果同步!低壓的必須接變壓器或開關(guān)電源,變壓器或開關(guān)電源裝在護(hù)欄管的中間,這樣護(hù)欄管的效果才會更統(tǒng)一!
二、常見問題:
1.若LED數(shù)碼管不能正常走程序,如果為外控管,首先確認(rèn)此管是否信號線有問題,請把不能運(yùn)作的管換下,還有一個問題,這條管的可能信號線只有輸入沒有輸出,導(dǎo)致后面的管變化效果不能同步,這種情況下可以把裝在最后一條護(hù)欄管裝在這里,把這條護(hù)欄管裝在最后面那邊,可以恢復(fù)正常!若恢復(fù)正常,就確認(rèn)是此管問題,若不行可以換個分控試試,若無法解決安裝中出現(xiàn)的問題請與廠家聯(lián)系。如果為內(nèi)控管,首先確定公母接頭有沒有接反,現(xiàn)在經(jīng)過改良后的新管子和程序,一般公母接頭的順序,根據(jù)公司配的接頭接就行了。然后把電斷開幾分鐘,再送電,看是否正常。也可及時與公司聯(lián)系,分析是什么問題。
2. LED護(hù)欄燈一般安裝要的樓體上,安裝成本比較高,具有一定的危險性;如果
有壞管了,需要吊人或架手腳架上去拆換;所以公司把品質(zhì)放到第一位,請各位客戶和朋友放心,公司出廠產(chǎn)品都是經(jīng)過老化,檢驗(yàn)合格才出廠的,若安裝時仍有不良品,請及時給公司聯(lián)系,我們會用最快的速度解決問題。
3.最后再提醒安裝時,一定檢查是否有防水膠圈,要把公母接頭對緊,把螺母扭緊接好。工程主管要培訓(xùn),監(jiān)督做好。
第四篇:數(shù)碼管萬年歷實(shí)習(xí)報(bào)告
河南機(jī)電高等專科學(xué)校
綜合實(shí)訓(xùn)報(bào)告
系 部: 專 業(yè): 班 級: 學(xué)生姓名: 學(xué) 號:
2013年 6月 28日
實(shí)訓(xùn)任務(wù)書
1.時間:2013年6月15日~2013年6月28日 2.實(shí)訓(xùn)單位:河南機(jī)電高等??茖W(xué)校 3.實(shí)訓(xùn)目的:深入學(xué)習(xí)電子產(chǎn)品設(shè)計(jì)制作的全過程 4.實(shí)訓(xùn)任務(wù):
①加深學(xué)習(xí)電路圖繪制軟件的相關(guān)常識及其特點(diǎn); ②以51單片機(jī)為核心設(shè)計(jì)出一個LED萬年歷;
③萬年歷具有年份、月、日、時、分、秒、周、溫度、整點(diǎn)報(bào)時等功能; ④自己獨(dú)立完成設(shè)計(jì)電路圖,生成PCB,轉(zhuǎn)印、腐蝕電路板,焊接等硬件制作工作;
⑤會使用keil軟件編寫程序,并完成燒寫過程; ⑥學(xué)會調(diào)試程序,敢于發(fā)現(xiàn)問題,解決問題; ⑦參考相關(guān)的的書籍、資料,認(rèn)真完成實(shí)訓(xùn)報(bào)告。
綜合實(shí)訓(xùn)報(bào)告
前言:
萬年歷是我們經(jīng)常見到和使用的計(jì)時工具,使用方便,功能多。但自己做一個讓人滿意的萬年歷,就不一定有那么輕而易舉了,本次實(shí)訓(xùn)的任務(wù)就是自己親手做一個萬年歷。利用本學(xué)期學(xué)過的單片機(jī)知識,設(shè)計(jì)出具有顯示年、月、日、時、分、秒、周、溫度功能,同時有整點(diǎn)報(bào)時的功能的萬年歷。
一、實(shí)訓(xùn)器件
1.溫度傳感器DS18B20 采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以避免A/D模數(shù)轉(zhuǎn)換模塊,降低硬件成本,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高、測量范圍廣等優(yōu)點(diǎn)。因此,本設(shè)計(jì)DS18B20溫度傳感器作為溫度采集模塊。
2.時鐘芯片DS1302 采用DS1302時鐘芯片實(shí)現(xiàn)時鐘,它可以對年、月、日、周、時、分、秒進(jìn)行計(jì)時,具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。具有主電源/后背電源雙電源引腳,同時提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。因此,本設(shè)計(jì)中采用DS1302提供時鐘。
3.74LS154 74LS154 為 4 線-16 線譯碼器,其主要電特性的典型值如下:
當(dāng)選通端(G1、G2)均為低電平時,可將地址端(ABCD)的二進(jìn)制編碼在一個對應(yīng)的輸出端,以低電平譯出。若將G1和G2中的一個作為數(shù)據(jù)輸入端,由ABCD對輸出尋址,54/74154 還可作4線-16線數(shù)據(jù)分配器。
引出端符號: A、B、C、D 譯碼地址輸入端(低電平有效)G1、G2 選通端(低電平有效)0-15 輸出端(低電平有效)可用此種芯片作為數(shù)碼管的選址芯片。4.74HC573 74HC573是八進(jìn)制3態(tài)非反轉(zhuǎn)透明鎖存器,是高性能硅門CMOS器件。當(dāng)鎖存使能端為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步)。當(dāng)鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。輸出能直接接到 CMOS,NMOS和 TTL接口上操作電壓范圍:2.0V~6.0V×低輸入電流: 1.0uA。本實(shí)訓(xùn)采用此芯片作為數(shù)碼管的驅(qū)動芯片。
5.數(shù)碼管
本實(shí)訓(xùn)使用共陰極數(shù)碼管作為顯示器件,采用 LED 數(shù)碼管動態(tài)掃描,LED 數(shù) 主電路PCB: 碼管價格適中,對于顯示數(shù)字也最合適。
綜上各模塊的選擇方案與論證,確定最后的主要硬件資源如下:采用AT89S51作為主控制系統(tǒng);DS1302提供時鐘;DS18B20作為數(shù)字式溫度傳感器;74LS154作為選址芯片;74HC573作為數(shù)碼管的驅(qū)動芯片;共陰極數(shù)碼管顯示數(shù)字;S8550驅(qū)動揚(yáng)聲器。
二、實(shí)訓(xùn)原理
為了使萬年歷在包裝美化時簡單化及布線的方便,我將萬年歷分為兩部分,一部分是主體部分含有年份、月、日、時、分、秒,另一部分是小模塊包含周、溫度。
電路圖如下:
主電路圖:
***9485*********2930******203919343338***61635***33212*********6545516251724***1 周,溫度電路圖: 周,溫度PCB:
***061
三、程序編寫
使用Keil軟件編寫程序。程序包括主函數(shù)、時間顯示函數(shù)、溫度顯示函數(shù)、時間調(diào)整函數(shù)、DS18B20模塊、DS1302模塊和周計(jì)算函數(shù)等。
程序的編寫使我熟練的掌握了Keil軟件的應(yīng)用。具體程序見附錄。
四、程序的燒寫與調(diào)試
程序燒寫需要用專用的燒寫軟件將Keil軟件聲生成的.hex文件寫進(jìn)單片機(jī)里。經(jīng)過多次的程序的改寫與調(diào)試,最終制作出比較滿意的成品。
五、成品展示:
心得體會: 經(jīng)過此次實(shí)訓(xùn)我學(xué)到了很多,剛開始以為做萬年歷很難,著手開始做這個產(chǎn)品沒有一點(diǎn)頭緒,經(jīng)過上網(wǎng)查資料,產(chǎn)生了最初的制作框架,然后就開始找芯片,查芯片資料,設(shè)計(jì)電路圖,又請同學(xué)幫忙指點(diǎn),修改原理圖。接著買元器件,做封裝,生成PCB,制作電路板,焊接元器件,最后完成了整個硬件部分的制作。完成了硬件制作后,我又編了測試軟件測試硬件是否有問題,發(fā)現(xiàn)數(shù)碼管不亮,經(jīng)過問題排查及資料查詢,發(fā)現(xiàn)單片機(jī)P0口缺少了上拉電阻,接上后,解決了問題。
編程也是比較困難的,由于掌握的知識不夠多,借鑒了別人的程序,并加入自己的想法,經(jīng)過調(diào)試,程序編寫成功。最終完成了產(chǎn)品的制作。在實(shí)習(xí)的過程中我得到了別人的幫助,同時也主動幫助別人,得到了很多經(jīng)驗(yàn),為以后學(xué)習(xí)提供了方便。實(shí)習(xí)就是學(xué)習(xí)的過程,本次實(shí)習(xí)是最成功的一次,也是學(xué)到最多的一次。參考文獻(xiàn):
《單片機(jī)C51程序設(shè)計(jì)教程與實(shí)驗(yàn)》 北京航空航天大學(xué)出版社 《單片機(jī)原理及應(yīng)用(C51語言)》 清華大學(xué)出版社 《數(shù)字電子技術(shù)》 黃河水利出版社 《Protel DXP 2004電路設(shè)計(jì)與仿真教程》 北京航空航天大學(xué)出版社 附錄: 程序
萬年歷.c #include
uchar mode,TH,TL,TN,seconds,minutes,hours,years,months,days,WEEK,n;
uchar count=0;sbit SET=P3^4;
sbit ADD=P3^5;//增加
sbit RED=P3^6;//減小
sbit CANL=P3^7;sbit le=P2^6;sbit oe=P2^7;sbit en=P1^4;
sbit beep=P2^4;
uchar GetWeekFromDay(uchar years,uchar months,uchar days);
void WriteSet1302(uchar cmd,uchar date);
uchar ReadSet1302(uchar cmd);
void ReadyreadDS18B20(void);
uchar ReadDS18B20(void);void IntDS1302(void);
void delay1ms(uint x){ uchar i,j;for(i=x;i>0;i--)for(j=124;j>0;j--);} void delaynus(uchar n)//延時若干微秒
{
while(n--);} void display_Year(year)//顯示年
{
uchar i,j;i=year/10;j=year%10;P0=digit[2];P1=8;delay1ms(2);P0=digit[0];P1=9;delay1ms(2);P0=digit[i];P1=10;delay1ms(2);P0=digit[j];P1=11;delay1ms(1);} void display_Month(month)//顯示月
{ uchar i,j;i=month/10;j=month%10;P0=digit[i];P1=6;delay1ms(2);P0=digit[j];P1=7;delay1ms(1);} void display_Day(day)//顯示日
{ uchar i,j;i=day/10;j=day%10;P0=digit[i];P1=4;delay1ms(2);
P0=digit[j];P1=5;delay1ms(1);} void display_Hour(hour)//顯示時
{ uchar i,j;
i=hour/10;j=hour%10;P0=digit[i];P1=2;delay1ms(2);P0=digit[j]+n*0x80;P1=3;delay1ms(1);}
void display_Minute(minute)//顯示分
{ uchar i,j;i=minute/10;j=minute%10;P0=digit[i];P1=0;delay1ms(2);P0=digit[j];P1=1;delay1ms(1);} void display_Week(void)//顯示周{ WEEK=GetWeekFromDay(years,months,days);
P1=12;switch(WEEK){
case 1:P0=digit[1];
delay1ms(2);
break;
case 2:P0=digit[2];
delay1ms(2);
break;
case 3:P0=digit[3];
delay1ms(2);
break;
case 4:P0=digit[4];
delay1ms(2);
break;
case 5:P0=digit[5];
delay1ms(2);
break;
case 6:P0=digit[6];
delay1ms(2);
break;
case 7:P0=digit[8];
delay1ms(2);
break;
} }
void display_Time(void)//顯示實(shí)時時間
{ uchar value;value=ReadSet1302(0x83);minutes=(((value&0x70)>>4)*10+(value&0x0f));display_Minute(minutes);value=ReadSet1302(0x85);hours=(((value&0x70)>>4)*10+(value&0x0f));display_Hour(hours);value=ReadSet1302(0x87);days=(((value&0x70)>>4)*10+(value&0x0f));display_Day(days);value=ReadSet1302(0x89);months=(((value&0x70)>>4)*10+(value&0x0f));display_Month(months);value=ReadSet1302(0x8D);years=(((value&0xf0)>>4)*10+(value&0x0f));display_Year(years);display_Week();} /*****************時間調(diào)整部分*********************/
void hourset(void)//調(diào)時
{ uchar timevalue,hour;
delay1ms(500);//防止多次觸發(fā)
WriteSet1302(0x8e,0x00);//將寫保護(hù)去掉,確保能正常將調(diào)整后的數(shù)值寫入DS1302
timevalue=ReadSet1302(0x85);//讀取此時的數(shù)值
hour=(((timevalue&0x70)>>4)*10+(timevalue&0x0f));while(1){
if(ADD==0)
{
delay1ms(20);
if(ADD==0)
{
hour++;
delay1ms(100);
while(ADD==0);
}
}
if(RED==0)
{
delay1ms(20);
if(RED==0)
{
hour--;
delay1ms(100);
if(hour==0)hour=23;
while(RED==0);
}
}
if(hour>=24)hour=0;
timevalue=(((hour)/10)<<4|(hour%10));
WriteSet1302(0x84,timevalue);
delay1ms(2);
display_Hour(hour);
delay1ms(10);
if(CANL==0)
{
mode=0;
break;
}
if(SET==0)break;} WriteSet1302(0x8e,0x80);} void minuteset(void)
//調(diào)分
{ uchar timevalue,minute;delay1ms(500);WriteSet1302(0x8e,0x00);timevalue=ReadSet1302(0x83);minute=(((timevalue&0x70)>>4)*10+(timevalue&0x0f));while(1){
if(ADD==0)
{
delay1ms(20);
if(ADD==0)
{
minute++;
if(minute>=60)timevalue=0;
while(ADD==0);
}
}
if(RED==0)
{
delay1ms(10);
if(RED==0)
{
minute--;
if(minute==0)minute=59;
delay1ms(300);
while(RED==0);
}
}
if(minute>=60)minute=0;
timevalue=((minute/10)<<4|(minute%10));
WriteSet1302(0x82,timevalue);
delay1ms(2);
display_Minute(minute);
delay1ms(10);
if(CANL==0)
{
mode=0;
break;
}
if(SET==0)break;} WriteSet1302(0x8e,0x80);}
void yearset(void)
//調(diào)年
{ uchar datevalue,year;delay1ms(500);WriteSet1302(0x8e,0x00);datevalue=ReadSet1302(0x8d);year=(((datevalue&0x70)>>4)*10+(datevalue&0x0f));while(1){
if(ADD==0)
{
delay1ms(20);
if(ADD==0)
{
year++;
while(ADD==0);
}
}
if(RED==0)
{
delay1ms(20);
if(RED==0)
{
year--;
delay1ms(100);
while(RED==0);
}
}
datevalue=((year/10)<<4|(year%10));
WriteSet1302(0x8c,datevalue);
delay1ms(5);
display_Year(year);
delay1ms(5);
if(CANL==0)
{
mode=0;
break;
}
if(SET==0)break;} WriteSet1302(0x8e,0x80);} void monthset(void)
//調(diào)月
{ uchar datevalue,month;delay1ms(500);WriteSet1302(0x8e,0x00);datevalue=ReadSet1302(0x89);month=(((datevalue&0x70)>>4)*10+(datevalue&0x0f));while(1){
if(ADD==0)
{
delay1ms(20);
if(ADD==0)
{
month++;
if(month>12)month=1;
while(ADD==0);
}
}
if(RED==0)
{
delay1ms(20);
if(RED==0)
{
month--;
delay1ms(100);
if(month==0)month=12;
while(RED==0);
}
}
datevalue=((month/10)<<4|(month%10));
WriteSet1302(0x88,datevalue);
delay1ms(5);
display_Month(month);
delay1ms(5);
if(CANL==0)
{
mode=0;
break;
}
if(SET==0)break;} WriteSet1302(0x8e,0x80);} void dayset(void)
//調(diào)日
{ uchar datevalue,day;delay1ms(500);WriteSet1302(0x8e,0x00);datevalue=ReadSet1302(0x87);day=(((datevalue&0x70)>>4)*10+(datevalue&0x0f));while(1){
if(ADD==0)
{
delay1ms(10);
if(ADD==0)
{
day++;
if(day>31)day=1;
while(ADD==0);
}
}
if(RED==0)
{
delay1ms(10);
if(RED==0)
{
if(day==0)day=31;
day--;
delay1ms(300);
while(RED==0);
}
}
datevalue=((day/10)<<4|(day%10));
WriteSet1302(0x86,datevalue);
delay1ms(5);
display_Day(day);
delay1ms(5);
if(CANL==0)
{
mode=0;
break;
}
if(SET==0)break;} WriteSet1302(0x8e,0x80);} void TimeSet(void)
//時間調(diào)整函數(shù)
{ if(SET==0){
delay1ms(20);
if(SET==0)
{ while(!SET);
mode++;
delay1ms(20);
switch(mode)
{
case 1:{yearset();delay1ms(20);}
break;
case 2:{monthset();delay1ms(20);} break;
case 3:{dayset();delay1ms(20);}
break;
case 4:{hourset();delay1ms(20);} break;
case 5:{minuteset();delay1ms(20);} break;
}
if(mode==5)mode=0;
} } } /***************顯示溫度模塊********************/ uchar flag;/*********************顯示溫度整數(shù)部分*************************/ void Display_Integer(unsigned char x){
uchar s,g;s=x%100/10;g=x%10;P0=digit[s];P1=13;delay1ms(3);P0=digit[g]+0x80;P1=14;delay1ms(3);P0=digit[10];P1=15;delay1ms(1);}
void display_Temperature(void){
ReadyreadDS18B20();
TL=ReadDS18B20();
TH=ReadDS18B20();
if((TH&0XF8)!=0X00)
{
flag=1;
TL=~TL;
TH=~TH;
TL+=1;
if(TL>255)TH+=1;
TN=TH*16+TL/16;
}
TN=TH*16+TL/16;
Display_Integer(TN);} /**************** 設(shè)置模塊 ******************/
void Set(void){ if(SET==0){
delay1ms(5);
if(SET==0)
{
delay1ms(50);
while(1)
{
TimeSet();
if(CANL==0)
{
break;
}
}
} } } void InitTimer0(void){
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;} /***************主函數(shù)**********************/
void main(){ int i;P0=0;InitTimer0();IntDS1302();
//初始化DS1302 delay1ms(5);le=1;oe=0;en=0;delay1ms(200);beep=1;while(1){
for(i=1000;i>0;i--)
{
Set();
display_Time();
Display_Integer(TN);
if(hours==7||hours==8||hours==9||hours==10||hours==11||hours==12
||hours==14||hours==15||hours==16||hours==17||hours==18||hours==19
||hours==20||hours==21||hours==22)
{
if(minutes==0x00)
{
uchar value,w,k;
value=ReadSet1302(0x81);
seconds=(((value&0x70)>>4)*10+(value&0x0f));
if(seconds>0&&seconds<2)
{
for(k=5;k>=0;k--)
{
for(w=100;w>0;w--)
{
beep=0;
delay1ms(3);
beep=1;
delay1ms(3);
}
delay1ms(1000);
}
}
else beep=1;
}
}
}
display_Temperature();
}
} void t0()interrupt 1 { TH0 = 0x3C;
TL0 = 0x0B0;count++;
if(count==10){n=0;
} if(count==20){ count=0;
n=1;
} } /*******DS1302模塊*************/ sbit SCLK=P2^0;//DS1302時鐘輸入
sbit DATE=P2^1;//DS1302數(shù)據(jù)輸入
sbit REST=P2^2;//DS1302復(fù)位端口
void Write1302(uchar date)//向1302寫數(shù)據(jù) {
uchar i;SCLK=0;delaynus(2);for(i=0;i<8;i++){
DATE=date&0x01;
SCLK=1;
delaynus(2);
SCLK=0;
delaynus(2);
date>>=1;} } void WriteSet1302(uchar cmd,uchar date)//根據(jù)相應(yīng)的命令輸入相應(yīng)的數(shù)據(jù)
{
REST=0;
SCLK=0;
REST=1;
Write1302(cmd);
delaynus(5);
Write1302(date);
SCLK=1;
REST=0;} uchar Read1302(void)//讀取1302數(shù)據(jù)
{
uchar i,date;delaynus(2);for(i=0;i<8;i++){
date>>=1;
if(DATE==1)
date|=0x80;
SCLK=1;
delaynus(2);
SCLK=0;
delaynus(2);} return date;
} uchar ReadSet1302(uchar cmd)//根據(jù)命令讀取1302相應(yīng)的值 { uchar date;REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(2);date=Read1302();SCLK=1;REST=0;return date;} void IntDS1302(void)//DS1302初始化 {
uchar flag;
flag= ReadSet1302(0x81);if(flag&0x80)
//判斷時鐘芯片是否關(guān)閉
{
WriteSet1302(0x8E,0x00);
//根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令
WriteSet1302(0x80,((0/10)<<4|(0%10)));
//根據(jù)寫秒寄存器命令字,寫入秒的初始值
WriteSet1302(0x82,((0/10)<<4|(0%10)));
//根據(jù)寫分寄存器命令字,寫入分的初始值
WriteSet1302(0x84,((0/10)<<4|(0%10)));//根據(jù)寫小時寄存器命令字,寫入小時的初始值
WriteSet1302(0x86,((0/10)<<4|(0%10)));//根據(jù)寫日寄存器命令字,寫入日的初始值
WriteSet1302(0x88,((0/10)<<4|(0%10)));//根據(jù)寫月寄存器命令字,寫入月的初始值
WriteSet1302(0x8c,((10/10)<<4|(10%10)));//根據(jù)寫年寄存器命令字,寫入年的初始值
WriteSet1302(0x90,0xa5);
//打開充電功能 選擇2K電阻充電方式
WriteSet1302(0x8E,0x80);
//根據(jù)寫狀態(tài)寄存器命令字,寫入保護(hù)指令
} } /**********************操作DS18B20模塊***************************/ sbit DQ=P2^3;
uchar time;void delayms(uchar x){ uchar i,j;for(i=x;i>0;i--)for(j=124;j>0;j--);} /**********************DS18B20初始化****************************/ bit IntDS18B20(void){ bit temp;DQ=1;for(time=0;time<2;time++);DQ=0;for(time=0;time<200;time++);DQ=1;for(time=0;time<10;time++);temp=DQ;for(time=0;time<200;time++);return temp;} /**************************讀DS18B20**********************/ uchar ReadDS18B20(void){ uchar dat,i;for(i=0;i<8;i++){
DQ=1;
_nop_();
DQ=0;
_nop_();
DQ=1;
for(time=0;time<2;time++);
dat>>=1;
if(DQ==1)
dat=dat|0x80;
else
dat=dat|0x00;
for(time=0;time<10;time++);} return dat;} /*********************向DS18B20寫數(shù)據(jù)**************************/ void WriteDS18B20(uchar date){
uchar i;for(i=0;i<8;i++){
DQ=1;
_nop_();
DQ=0;
DQ=date&0x01;
for(time=0;time<10;time++);
DQ=1;
for(time=0;time<1;time++);
date>>=1;
} for(time=0;time<4;time++);} /*******************為讀取溫度做好準(zhǔn)備************************/ void ReadyreadDS18B20(void){ IntDS18B20();WriteDS18B20(0XCC);WriteDS18B20(0X44);IntDS18B20();WriteDS18B20(0XCC);WriteDS18B20(0XBE);} // 計(jì)算2000~2099年任一天星期幾
// year
: 00-99 // month: 01-12 // day
: 01-31
uchar GetWeekFromDay(uchar years,uchar months,uchar days){
if(months == 1 || months == 2)
{
months+=12;
if(years> 0)
years--;
else
years;
}
return(1+((days + 2*months + 3*(months+1)/5 + years + years/4)%7));//(星期一用1表示,而星期天用7表示)}
// 返回星期幾
第五篇:《一位LED數(shù)碼管顯示0-9》
成都理工大學(xué)工程技術(shù)學(xué)院
單片微機(jī)原理及應(yīng)用課程設(shè)計(jì)
《一位LED數(shù)碼管顯示0-9》
學(xué)生姓名:
學(xué)
號:
專
業(yè):
班
級:
指導(dǎo)教師:
完成日期:
目
錄
一 實(shí)驗(yàn)?zāi)康呐c任務(wù)…………………………………2 二 實(shí)驗(yàn)要求…………………………………………2 三 實(shí)驗(yàn)內(nèi)容…………………………...……………2 四 元器件清單………………………………………2 五 LED數(shù)碼管的結(jié)構(gòu)及工作原理…………………2 六 關(guān)于PLC控制LDE介紹………………………4 七 原理圖繪制說明…………………………………5 八 流程圖繪制以及說明……………………………9 九 電路原理圖與仿真………………………………10 十 源程序……………………………………………12 十一 心得體會………………………………………12 十二 參考文獻(xiàn)………………………………………13
一、實(shí)驗(yàn)與任務(wù)
結(jié)合實(shí)際情況,編程設(shè)計(jì)、布線、程序調(diào)試、檢查與運(yùn)行,完成一個與接近實(shí)際工程項(xiàng)目的課題,以培養(yǎng)學(xué)生的實(shí)際操作能力,適應(yīng)生產(chǎn)一線工作的需要。做到能檢查出錯誤,熟練解決問題;對設(shè)備進(jìn)行全面維修。通過實(shí)訓(xùn)對PLC的組成、工作原理、現(xiàn)場調(diào)試以及基于網(wǎng)絡(luò)化工作模式的基本配置與應(yīng)用等有一個一系列的認(rèn)識和提高。
利用51單片機(jī)、1個獨(dú)立按鍵及1位7段數(shù)碼管等器件,設(shè)計(jì)一個單片機(jī)輸入顯示系統(tǒng),要求每按一下獨(dú)立按鍵數(shù)碼管顯示數(shù)據(jù)加1(數(shù)碼管初始值設(shè)為0,計(jì)到9后再加1,則數(shù)碼管顯示0)。
本次設(shè)計(jì)采用12MHz的晶體振蕩器為單片機(jī)提供振蕩周期,外加獨(dú)立按鍵,復(fù)位電路和顯示電路組成。
二、實(shí)驗(yàn)要求
1、了解七段LED數(shù)碼管的結(jié)構(gòu)、分類以及數(shù)碼管的顯示碼。
2、學(xué)習(xí)1位LED數(shù)碼管靜態(tài)顯示與動態(tài)顯示的編程方法。
3、掌握可編程序控制器技術(shù)應(yīng)用過程中的一些基本技能。
4、了解可編程控制器的裝備、調(diào)試的全過程。
三、實(shí)驗(yàn)內(nèi)容
1、練習(xí)設(shè)計(jì)、連接、調(diào)試控制電路;
2、學(xué)習(xí)PLC程序編程;
四、元器件清單
從PROTUES庫中選擇元器件(1)AT89C51;單片機(jī)。(2)RES、RX8;電阻、8排阻。
(3)7SEG-COM-CAT-BLUE;帶公共端共陰極七段藍(lán)色數(shù)碼管。(4)CAP/CAP-ELEC;電容、電解電容。(5)CRYSTAL:晶振。
五、LED數(shù)碼管的結(jié)構(gòu)及工作原理 led數(shù)碼管(LED Segment Displays)是由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。led數(shù)碼管常用段數(shù)一般為7段有的另加一個小數(shù)點(diǎn),還有一種是類似于3位“+1”型。位數(shù)有半位0,1,2,3,4,5,6,8,10位等等....,led數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍(lán),黃等幾種。led數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。選用時要注意產(chǎn)品尺寸顏色,功耗,亮度,波長等。下面將介紹常用LED數(shù)碼管內(nèi)部引腳圖1
圖1 10引腳的LED數(shù)碼管
圖2 LED數(shù)碼管引腳定義
LED數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。
A、靜態(tài)顯示驅(qū)動:
靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O埠進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)位*器*進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O埠多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O口來驅(qū)動,要知道一個89S51單片機(jī)可用的I/O口才32個呢。故實(shí)際應(yīng)用時必須增加*驅(qū)動器進(jìn)行驅(qū)動,增加了硬體電路的復(fù)雜性。B、動態(tài)顯示驅(qū)動:
數(shù)碼管動態(tài)顯示介面是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃“a,b,c,d,e,f,g,dp ”的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就顯示出字形,沒有選通的數(shù)碼管就不會亮。
透過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O口,而且功耗更低。
六、關(guān)于PLC控制LED介紹
PLC可編程控制器:它采用一類可編程的存儲器,用于其內(nèi)部存儲程序、執(zhí)行邏輯運(yùn)算、順序控制、定時、計(jì)數(shù)與算數(shù)操作等面向用戶的指令,并通過數(shù)字或模擬式輸入/輸出控制各種類型的機(jī)械或生產(chǎn)過程。
用PLC控制LED直接進(jìn)行數(shù)據(jù)顯示,可以降低成本,使得數(shù)據(jù)顯示直觀。傳統(tǒng)數(shù)顯有兩種方法:
1、由PLC編制程序進(jìn)行譯碼,來控制顯示a-g段;
2、利用 譯碼組合電路產(chǎn)生a-g各段譯碼信號實(shí)現(xiàn)LED數(shù)碼管顯示。前一種方法邏輯譯碼關(guān)系復(fù)雜,后一種方法譯碼電路冗長,都不利于顯示的實(shí)現(xiàn)。傳統(tǒng)數(shù)顯邏輯譯碼關(guān)系復(fù)雜,而用PLC的位組合元件和譯碼功能指令方法來實(shí)現(xiàn)LED數(shù)顯.前一種方法將表示十進(jìn)制數(shù)的4位BCD碼的位元件成組使用,形成位組合元件數(shù)顯;后一種方法用7段譯碼指令把指定元件的低4位對應(yīng)的十六進(jìn)制數(shù)譯碼后,驅(qū)動數(shù)顯.這兩種方法邏輯簡單,易于理解,便于實(shí)現(xiàn)。
設(shè)計(jì)任務(wù):LED數(shù)碼管顯示:0到9
七、原理圖繪制說明
本次設(shè)計(jì)主要用到單片機(jī)AT89C51、晶振時序電路。AT89C51是一種帶4KB閃爍可編程可擦出只讀存儲器的低電壓、高性能CMOS微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微處理器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且廉價的方案,AT89C51的管腳分配(如圖1)。
圖1 AT89C51芯片及管腳圖
AT89C51單片機(jī)主要由4個輸入輸出端口(P0口、P1口、P2口、P3口)及個控制引腳組成的,本次設(shè)計(jì)用到P1、P2的部分引腳,及18、19腳外接晶振電容為單片機(jī)提供時鐘,9管腳為復(fù)位引腳,外接復(fù)位電路。
晶振時序電路:XTAL1和XTAL2分別為片內(nèi)反相放大器的輸入和輸出端,當(dāng)單片機(jī)采用外部時鐘信號時,前者接地,后者引入外部輸入信號,本次設(shè)計(jì)采用12M的石英晶體振蕩器為單片機(jī)提供時鐘(如圖2)。
圖2 AT89C51的晶振時序電路圖
本次設(shè)計(jì)的原理圖是在PROTEUS ISIS中繪制的,其工作界面分為原理圖編輯窗口(Editing window)、預(yù)覽窗口(Overview window)和工具欄。
1、新建*.dsn 打開繪圖界面后,首先新建一個繪圖文件,選擇“【文件】——【新建設(shè)計(jì)】”,并保存成.dsn型文件。
2、繪制原理圖
6(1)添加元器件:元件拾取共有兩種辦法,一種是按類別查找和拾取元件,另一種是直接查找和拾取元件。我采用的是前一種方法,元件通常以其英文名稱或器件代號在庫中存放。我們在取一個元件時,首先要清楚它屬于哪一大類,然后還要知道它歸屬哪一子類,這樣就縮小了查找范圍,然后在子類所列出的元件中逐個查找,根據(jù)顯示的元件符號、參數(shù)來判斷是否找到了所需要的元件。雙擊找到的元件名,該元件便拾取到編輯界面中了。右側(cè)列表中自上而下分別為元件圖形和元件封裝。具體如圖3所示:
圖3 分類拾取元件示意圖
(2)元件的放置
在原理圖編輯區(qū)的藍(lán)色方框內(nèi),單擊鼠標(biāo)左鍵即完成元件的釋放。具體如圖4所示:
圖4 元件的放置示意圖
(3)電路連線
PROTEUS的連線是非常智能的,它會判斷你下一步的操作是否想連線從而自動連線,而不需要選擇連線的操作,只需用鼠標(biāo)左鍵單擊編輯區(qū)元件的一個端點(diǎn)拖動到要連接的另外一個元件的端點(diǎn),先松開左鍵后再單擊鼠標(biāo)左鍵,即完成一根連線。如果要刪除一根連線,右鍵雙擊連線即可。根據(jù)設(shè)計(jì)完成連線后即可得到完整的電路原理圖,具體如圖5:
圖5 連線后的完整電路原理圖
八、流程圖繪制以及說明
主程序設(shè)計(jì)說明
主程序主要分為四部分,包括復(fù)位電路部分、獨(dú)立按鍵的判別部分、單片機(jī)控制主程序部分和譯碼顯示部分,模塊流程圖如圖6所示:
圖6 數(shù)碼管顯示程序流程圖
九、電路原理圖與仿真
1、Hex文件的導(dǎo)入過程
在仿真前,須先在KEIL4中生成.HEX文件。編譯完源程序并且沒有錯誤后,選擇“Project-Options for Target ‘Target1’-Output”,在“Create HEX File”前面的空挑勾,再“確定”,即可生成HEX文件,如圖7所示 :
圖7 生成HEX文件示意圖
在進(jìn)入PROTEUS ISIS中,雙擊AT89C51芯片,出現(xiàn)如圖8所示的對話框。在“Program File”一項(xiàng)中查找“seg.hex”文件的路徑并加上該文件即可開始仿真,如圖8所示:
圖8 keil的seg.hex文件載入單片機(jī)的示意圖
2.在導(dǎo)入hex文件后,便可運(yùn)行該設(shè)計(jì)系統(tǒng),打開仿真開關(guān),顯示如圖
十、源程序清單
org 0000h
sjmp main
org 000bh
sjmp t0_isr
org 0030h main:clr a
mov dptr,#table
movc a,@a+dptr
mov p0,a
mov tmod,#01h
mov th0,#0d8h
mov tl0,#0efh
setb et0
setb ea
setb tr0 pd: cjne r0,#100,$
inc dptr
clr a
movc a,@a+dptr
cjne a,#00h,aaa
mov dptr,#table
;如果花樣數(shù)據(jù)完應(yīng)重新循環(huán)
clr a
movc a,@a+dptr aaa: mov p0,a
mov r0,#00h
sjmp pd t0_isr:
clr tr0
mov th0,#0d8h
mov tl0,#0efh
inc r0
setb tr0
reti table:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h
end
十一、心得體會
通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)單片機(jī)知識,用匯編語言在KEIL4中編程,在PROTEUS中繪制原理圖并進(jìn)行仿真,通過對這兩個軟件的學(xué)習(xí),了解了其功能的強(qiáng)大,掌握了AT89C51的內(nèi)部結(jié)構(gòu)及工作原理,對于我們以后的 學(xué)習(xí)和實(shí)踐有很大的指導(dǎo)意義,在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗(yàn)不足。過而能改,善莫大焉。在課程設(shè)計(jì)過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在老師的指導(dǎo)下,終于游逆而解。此次設(shè)計(jì)也讓我明白了團(tuán)隊(duì)精神的重要性,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。果然是團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。
十一、參考文獻(xiàn)
[1]高欽和.可編程控制器應(yīng)用技術(shù)與設(shè)計(jì)實(shí)例.北京:人民郵電出版社,2004 [2]虞鶴松編.可編程序控制器原理及應(yīng)用.南京:東南大學(xué)出版社,1995 [3]田庭主編.常用可編程序控制器編程器及編程軟件使用手冊.北京:機(jī)械工業(yè)出版社,1994