本設計中以PlCl6F877單片機為核心,完成對輸出驅動單元、人機交互單元、執行機構單元、檢測單元等部分的控制.根據設計產品的功能要求,各個功能的定義如下�
· 碼盤電機的位置和方向分別由RE0和RC2控制�
· 把手電機的位置和方向分別由RB1和RC1控制�
· 碼盤電機光電檢測輸入到RB7口;
· 把手電機光電檢測輸入到RBG口:
· 蜂鳴器輸出通過RD0口;
· 開鎖指示輸出通過RD1口;
· 鍵盤掃描輸出為RB0~RB3�
· 鍵盤掃描輸入為RD2、RD3、RD4、RD7口:
· LCD串行通信通過RPD、REI、RE2、RD5實現�
PICIDP877單片機在各種復位間的區別如下:
· 上電復位(POR);
· MCLR在正常運行下復位�
· MCLR復位在SLEEP期間�
· WDT在正常運行期間溢出復位;
· WDT喚醒(在SLEEP期間);
· 降壓復位�
一些寄存器用在POR上未知,在其他任何復位時不會改變共他大多數寄存器,在運行期間都能通過上電復位(POR),NCLR、WDf復位,在睡眠期間,NCLR復位可在BDR上復位到復位狀態。它們不受WDT喚醒的影響,因為這些復位被當成正常運行的繼續。TD、PD位在不同的復位狀態中被置1或清0�
單片機在MCLR復位通道上有一個MCLR噪聲過濾器,過濾器將探測和忽略小的脈沖,然而一個有效的MCLR脈沖必須符合最小脈沖寬度�
�1)上電復位(POR)�
當VDD被探測到上升時(�1.2�1.1V之間),產生一個上電復位脈沖。為了充分利用POR,把MCLR引腳連到VDD(通過一個電阻器)。這將省去通常用來產生上電復位的外部RC組件,需要確定VDD最大上升時間�
當單片機開始運行時(退出復位條件)單片機運行參數必須達到要求以保證運行(如電壓、頻率、溫度),如果這些條件達不到,單片機必須一直保持復位狀態直到運行參數達到要求,降壓復位可用來滿足啟動條件�
�2)上電定時器(PWRT)�
上電定時器在從POP上電時提供一個固定的72ms正常溢出。PWRT運行在一個內部的RC振蕩器上,隨著PWRT一起作用,單片機一直保持在復位狀態。PWRT的時間延時允許VDD上升到一個可接受的電平,提供一個設定位使能/不使能PWRT�
上電時間延時隨著單片機的不同VDD、溫度以及生產過程的變化而不同�
�3)晶體振蕩器起動定時器(OST)�
在PWRT延時結束之后晶體振蕩器起動定時器提供一�1024個振蕩器周期的延時(�0SC1輸入),這樣保證晶體振蕩器或者諧振器開始振蕩和穩定�
OST溢出在XT、LP和IIS方式下,上電復位,或從睡眠中喚醒時才起作用�
�4)降壓復位(B0R)�
一個設置位BODEN能夠不使能(如果編程�0)或使能(如果置1)降壓復位電路。如果VDD下降低于4.0V,VBOR參數D005(VBOR)比在參數(TBOR)大,降壓情況將復位芯片,如果VDD下降低于4.0V,且比參數(TBOR)小,復位芯片可能不復位�
一旦降壓發生,芯片將保持在降壓復位狀態直到VDD上升高于VBOR。采用上電定時器保持單片機在復位狀�72ms。如果在PWRT期間,當帶有上電定時器復位的VDD上升高于VB0R時,降壓復位將重新開始。當復位能使時,上電定時器應該一直被使能而不管PWRT設置位的狀態�
�5)溢出順序�
在上電時,溢出順序如下:POR復位出現時,當一個POR復位發生時,PWRT延遲開始。當PWRT結束(LP,XT,HS)時,OST開始計數1204個振蕩器周期。當OST結束時,單片機脫離復位�
如果MCLR保持較長時間低電平,溢出將會中止。把MCLR變為高電平時,溢出立即運行�
�6)電源控制/狀態寄存器(PCON)�
電源控制/狀態寄存器PCON有兩位�
�0是BOR(降壓復位狀態位),POR在上電復位時是未知的,用戶必須將該位�1。在隨后的復位上如果BOR�0,則表明發生降壓復位。BOR狀態位是隨意位,如果降壓復位電路不能使能,BOR位是不能確定的�
�1是POR(上電復位)。在POR被清0時,其他方面不受影響。在一個POR之后,用戶必須將該位�1。在隨后的復位上如果POR�0,則表明發生POR復位�
�7)中斷�
PICl6877�10個中斷源。中斷控制寄存器(INTCON)用標志位記錄單個中斷請求,它有單個和全體中斷使能位�
一個全體中斷使能位GIF(INTCON�7>)使能或不使能所有的中斷。當位GIE使能時,一個中斷標志位和屏蔽位�1時,中斷將立即引導。單個中斷通過它們在各種寄存器里相應使能位來禁止。不管GIE位的狀態如何,單個中斷都是置1的,GIE位在復位時清O�
中斷返回指令,RETFIE將GIE位置1來重新使能中斷。RBO/INT引腳中斷,RB端口改變中斷和TMR。溢出中斷標志都包括在INTCON寄存器里�
外部中斷標志包含在特殊功能寄存器PIR1和PM里,相應的的中斷使能位包含在特殊功能寄存器PIE1和PIE2里,外部中斷使能位包含在特殊功能寄存器INTCON里。不管和它們相關的屏蔽位和GIF,位的狀態如何,單個中斷標志位�1�
�8)INT中斷�
在引腳RBO/INT引腳上的外部中斷為邊沿觸發。INteDG位(OPTION �6))�1時為上升沿觸發:如果INTEDG位是�0的,則為下降沿觸發。當在RBO/INT引腳上出現一個有效邊沿時,標志位INTF (INTCON�1))被置1�
�9)TMR0中斷�
在TMR0寄存器里的一個溢出(FFH~OOH)將標志位TOIF(INTCON�2>)�1。通過對使能位TOIE(INTCON�5>)�1或清0來決定中斷使能或不使能�
�10)端口B變化中斷
一個在PORTB�7�4>的輸入變化將標志位RBIF(INTCON�0))�1,通過對使能位RBIF(INTCON�4>)�1或清0,來決定中斷使能或不使能�
�11)在中斷期間上下內容的保存�
在一個中斷期間,只有返回程序計數的值被保存在堆棧里。其中典型的是用戶希望在一個中斷期間保存的關鍵寄存器,即工作寄存器和狀態寄存器,這將由軟件來實現�
在PICl6F876M77單片機里每個塊的高16位字節是公用的,臨時保存寄存器W-TEMP、STATUS-TEMP和PLATH-TEMP存放在這里。�16個存儲單元不要求分塊,使存儲和重新存儲內容較容易�
�12)監視定時器(WDT)�
監視定時器是一個自由運行的片內專用振蕩器,它不需要任何外部組件。這個RC振蕩器和OSC1/CLKIN引腳的外部RC振蕩器是分離的。這就意味著即使在單片機的OSCI/CLKIN和OSC2/CLKOUT引腳上的時鐘已停止的情況下,WDT仍能運行。例如,通過執行一條Sleep指令�
在正常運行期間,一個WDT溢出將使單片機復位(EDT復位)。如果單片機在睡眠方式,一個WDT溢出將使單片機喚醒和恢復正常運行(WDT喚醒)。在STATUS寄存器里的TO位通過MDI溢出將被�0�
通過編程設定WDT位為0,使WDT永久不能使用�
當把預分頻器分配給WDT時,預分頻器分配和預分頻器值在OPTIONˉRFC寄存器里是置1的�
在串行模式下,使用兩條傳輸線進行數據傳送,主控系統將配合傳輸同步時鐘(SCLK)與接收串行數據線(SID)來完成串行傳輸�
在片選CS設為高電位時,同步時鐘(SCLK)輸入的信號才會被接收,在片選CS設為低電位時。模塊內部傳輸串行傳輸計數與串行數據將會被重置,傳輸中的數據將會被終歀清除,并將待傳輸的數據重設回第一位,設計中將CS設為高電位�
模塊的同步時鐘(SCLK)具有獨立的操作,因為其內部沒有傳送/接收緩沖區,因此,當有連續多個指令需傳送時,必須等到一個指令執行完成才能傳送下一個指令�
串行傳輸時先傳起始位,它需要接�5個連續的“t”(同步位串),此時傳輸記數器將被重置,串行傳輸將被同步,傳輸的第二位分別指向傳輸方向位RW不口暫存器選擇位RS,最�8位為�0”�
在接收到起始位后,每個指令或者數據將分兩組接收,�4位將會被放到�1個LSB中,�4位將會被放到�1個LSB中,其余都為�0”�
串行接口時序如圖1所示�
該液晶顯示模塊采用SPI串行方式與單片機進行通信,液晶模塊中的控制芯片將配合傳輸同步時鐘SCLK與串行數據線SID來完成串行傳輸。當片選信號CS為高電平時,同步時鐘線SCLK輸入信號開始被接收;當CS為低電平時,傳輸中的信號將被終止、清除�
在本系統中,CS與單片機復位端相連,即系統復位時液晶顯示模塊也同時復位,接口設計如圖2所示�
�2 接口設計�
關注我�
公眾號:china_tp
微信名稱:亞威資�
顯示行業頂級新媒�
掃一掃即可關注我�