濰坊工程職業(yè)學(xué)院山工機(jī)電工程學(xué)院 脫建智 謝宗華 于婷婷
自動(dòng)控制系統(tǒng)高亮數(shù)碼管顯示器的設(shè)計(jì)與制作
濰坊工程職業(yè)學(xué)院山工機(jī)電工程學(xué)院 脫建智 謝宗華 于婷婷
面向應(yīng)用環(huán)境較為復(fù)雜,顯示信息量較大的工業(yè)環(huán)境,選用通用型自動(dòng)控制核心IAP15F2K61S2設(shè)計(jì)了具備5線接口的硬件電路,采用可移植性較好的頭文件格式封裝了核心控制功能,設(shè)計(jì)并制作了功能完備的自動(dòng)控制系統(tǒng)高亮數(shù)碼管顯示器。
四聯(lián)高亮數(shù)碼管;控制核心;5線接口
強(qiáng)電磁干擾、粉塵、蒸汽等工業(yè)環(huán)境對控制系統(tǒng)的顯示器功能提出了較為苛刻的要求,本研究采用抗干擾能力極強(qiáng)的國產(chǎn)控制核心和四聯(lián)高亮數(shù)碼管設(shè)計(jì)并制作了適用范圍較為廣泛的高亮數(shù)碼管顯示器。
①控制核心
根據(jù)本項(xiàng)目控制系統(tǒng)的控制要求,選擇通用控制核心IAP-15F2K61S2系列芯片,該芯片內(nèi)置1T高速CPU,2KB RAM,具有低速、空閑和掉電三模式低功耗設(shè)計(jì),超強(qiáng)抗干擾,超低EMI,61KB Flash,強(qiáng)大的ISP/IAP編程和存儲(chǔ)功能。
②數(shù)碼管顯示器
為了綜合提高本顯示器的效率和功能,選擇4片四聯(lián)高亮數(shù)碼管搭建本顯示器,該元件采用14-DIP封裝,通過14根管腳可方便的實(shí)現(xiàn)溫度、時(shí)間、速度等信息的顯示,大幅節(jié)約控制核心的硬件資源。
③驅(qū)動(dòng)芯片
綜合考慮產(chǎn)品的性價(jià)比等因素,采用較為通用的串行轉(zhuǎn)并行8bit移位寄存器74HC595D作為本顯示器的驅(qū)動(dòng)芯片,芯片為SOP-16貼片式封裝,在保證性能的前提下,可大幅減小PCB電路板的體積,提高產(chǎn)品的性價(jià)比。
①主電路設(shè)計(jì)
本產(chǎn)品的主電路以單片機(jī)為核心設(shè)計(jì),采用DC5V-1A通用開關(guān)電源或A型USB接口供電,電源開關(guān)采用小型船型開關(guān),設(shè)計(jì)有LED電源指示燈,串行通信的發(fā)送和接收紅藍(lán)雙色指示燈,2條電源線和3條數(shù)據(jù)線的5線接口,4條備用線方便用戶實(shí)現(xiàn)自定義擴(kuò)展功能,上位機(jī)經(jīng)過USB接口給單片機(jī)串行下載程序。
②顯示電路設(shè)計(jì)
顯示電路以4片四聯(lián)數(shù)碼管和4片595驅(qū)動(dòng)芯片為核心設(shè)計(jì),驅(qū)動(dòng)芯片之間通過串入串出的方式通信,驅(qū)動(dòng)芯片和數(shù)碼管之間通過串入并出的方式通信,數(shù)碼管的顯示信息(段選)由U2傳遞,點(diǎn)亮數(shù)碼管的位置(位選)和表示時(shí)間的冒號控制信息由U3、U4和U5配合實(shí)現(xiàn)傳遞,一幀顯示數(shù)據(jù)為32bit。
控制軟件以3個(gè)數(shù)組和3個(gè)子函數(shù)為核心設(shè)計(jì),被封裝成獨(dú)立的頭文件,便于其他控制系統(tǒng)引入本產(chǎn)品實(shí)現(xiàn)顯示功能,系統(tǒng)主函數(shù)中只需要包含該頭文件,將所需顯示的信息存放到顯示緩沖區(qū)數(shù)組,調(diào)用顯示子函數(shù)即可將信息高亮顯示到本顯示器。
設(shè)計(jì)了二維顯示代碼數(shù)組作為本顯示器的顯示代碼表,便于顯示較為復(fù)雜的信息,用戶所需特殊字符也自定義擴(kuò)展到顯示代碼表,實(shí)現(xiàn)連續(xù)字符串的靜態(tài)或動(dòng)態(tài)顯示。
unsigned char TAB[CodeNO][2]={0,0x3F,1,0x06,2,0x5B,3,0x4F,4,0x66,5,0x6D,6,0x7D,7,0x07,8,0x7F,9,0x6F,0X0A,0x77,0x0B,0x7C,0x0C,0x39,0x0D,0x5E,0x0E,0x79,0x0F,0x71};
設(shè)計(jì)了2個(gè)一維數(shù)組作為段選和位選的顯示緩沖區(qū),用于存放待顯示數(shù)據(jù)。
unsigned char DSBu[16]={此處存放待顯示數(shù)據(jù)},DSInD[3]={0x7F,0xFF,0xFF};
設(shè)計(jì)了代碼轉(zhuǎn)換子函數(shù)用于提取二維顯示代碼數(shù)組的數(shù)碼管段碼。
unsigned char CodCvt(unsigned char InData){unsigned char i;for(i=0;i<CodeNO;i++){if(InData==TAB[i][0])return TAB[i][1];}return 0;}
設(shè)計(jì)了數(shù)碼管驅(qū)動(dòng)芯片驅(qū)動(dòng)子函數(shù)用于通過595傳遞數(shù)碼管段選和位選數(shù)據(jù),代碼如下:
void SendByte_595(unsigned char dat)
{unsigned char i;for(i=0;i<8;i++){HC595_SHCP=0;if(dat&0x80)HC595_DS=1;else HC595_DS=0; dat<<=1;HC595_SHCP=1;}}
設(shè)計(jì)了顯示驅(qū)動(dòng)子函數(shù)用于統(tǒng)籌數(shù)組和子函數(shù)實(shí)現(xiàn)本產(chǎn)品的顯示功能。本驅(qū)動(dòng)函數(shù)連續(xù)執(zhí)行4次SendByte函數(shù)發(fā)送一幀顯示數(shù)據(jù),點(diǎn)亮1位數(shù)碼管,連續(xù)發(fā)送16幀數(shù)據(jù),實(shí)現(xiàn)本顯示器的整屏信息顯示。將四聯(lián)數(shù)碼管的時(shí)間顯示冒號控制位用位選數(shù)組的4個(gè)bit來控制亮滅,設(shè)置時(shí)間顯示冒號控制標(biāo)志位,當(dāng)需要時(shí)間顯示的時(shí)候控制相應(yīng)的位選控制位點(diǎn)亮?xí)r間顯示冒號。
void DScan(unsigned char *DSBufP,unsigned char DSInfor)
{unsigned char i,j,c,k,SecLED=0xBD,TempDot=0x00;
DSInD[2]=0xFF;DSInD[1]=0xFF;DSInD[0]=0xFE;if(DSInfor==0x01){k++;if(k<22) SecLED=0xFD;else if(k<44)SecLED=0xBD;else k=0;}
if(DSInfor==0x80)SecLED=0xBD;for(i=0,j=0;i<=15;i++){if(DSInfor==0x80&&(i==0x06||i==0x0E))TempDot=0x80;else TempDot=0x00;
for(c=0;c<=6;c++){HC595_STCP=0;SendByte_595(DSInD[2]&0xF7);SendByte_59 5(DSInD[1]&SecLED);SendByte_595(DSInD[0]&0xEF);SendByte_595(CodCvt(*DSBufP)|TempDot);HC595_STCP=1;}
DSBufP ++;DSInD[j]=_crol_(DSInD[j],1);
if(i==0x03||i==0x07||i==0x0B||i==0x0F)DSInD[j]=_crol_(DSInD[j],1);
if(i==0x06||i==0x0C){DSInD[j]=0xFF;j++;DSInD[j]=0xFE;}}}
本研究經(jīng)過電路設(shè)計(jì),PCB打樣,產(chǎn)品制作,軟件設(shè)計(jì),功能調(diào)試等步驟成功制作了自動(dòng)控制系統(tǒng)高亮數(shù)碼管顯示器,在相關(guān)控制系統(tǒng)的應(yīng)用中驗(yàn)證了該產(chǎn)品的顯示功能。
[1]脫建智.基于IAP15F2K61S2單片機(jī)的數(shù)碼管動(dòng)態(tài)顯示器的研究與設(shè)計(jì)[J].電子世界,2013,12:36-37.
[2]脫建智.基于自適應(yīng)算法的圓柱狀旋轉(zhuǎn)顯示屏的研究與設(shè)計(jì)[J].電子世界,2013,7:155.
[3]脫建智.單片機(jī)外部中斷的教學(xué)和自學(xué)方法研究與設(shè)計(jì)[J].電子世界,2013,20:161-162.
脫建智(1981—),男,山東青州人,碩士,講師,現(xiàn)供職于濰坊工程職業(yè)學(xué)院山工機(jī)電工程學(xué)院,研究方向:機(jī)電一體化系統(tǒng)。