單片機(jī)在微型打印機(jī)中的應(yīng)用
3.3.2 89C52對(duì)聯(lián)絡(luò)信號(hào)實(shí)施控制的電路電路圖如圖6所示。
上電復(fù)位時(shí)D觸發(fā)器(U1)的Q輸出端為1,無(wú)論P(yáng)3.0為何值,經(jīng)過“或”門(6)后,BUSY=1,不接收數(shù)據(jù)。
當(dāng)89C52的P2.7=0時(shí),即有6116(數(shù)據(jù)存貯器)的CE為低電平,表示選中了6116,由圖3可知當(dāng)P2.7=0時(shí),經(jīng)過反相器(3)再經(jīng)過“或”門(8),此時(shí)無(wú)論P(yáng)3.7為何值74ALS374的片選端CE總為高電平,即沒有選中,這樣就保證了外部的數(shù)據(jù)與數(shù)據(jù)存貯器的數(shù)據(jù)分別進(jìn)行傳輸與接收而不至發(fā)生混亂。從上面的分析,當(dāng)P2.7=0時(shí),表示選中了6116,而沒有選中74ALS374,此時(shí)主機(jī)不應(yīng)有數(shù)據(jù)送入打印機(jī),即有BUSY=`,=1,下面來看是否滿足這點(diǎn):當(dāng)P2.7=0時(shí),經(jīng)過反相器(3)一路經(jīng)D觸發(fā)器(U2)的Q輸出為1即=1,另一路經(jīng)過“或”門(8),這時(shí)無(wú)論P(yáng)3.7為何值,輸出總為1,再經(jīng)D觸發(fā)器(U1)的Q輸出也為1,經(jīng)“或”門(6)后,BUSY=1,顯然滿足要求。
當(dāng)P2.7=1時(shí),通過“非”門(3)后變?yōu)?,若此時(shí)單片機(jī)準(zhǔn)備讀取數(shù)據(jù)(即P3.7=0),他們經(jīng)過“或”門(8)后,一路到74ALS374的片選端(CE),一路到D觸發(fā)器(U1)的清除端,使D觸發(fā)器的Q輸出端為0,即有74ALS374(CLK)為0,表示74ALS374的D0-D7端已有數(shù)據(jù)(同時(shí),即P3.5=1,,這樣通過檢測(cè)單片機(jī)的P3.5就可知道是否有數(shù)據(jù)輸入),此時(shí)若89C52的P3.0=0,經(jīng)過“或”門(6)后輸出為0,即BUSY=0,又由于P2.7經(jīng)過“非”門(3)后為0,他輸出到D觸發(fā)器(U2)的D端,當(dāng)P3.6()從低電平變?yōu)楦唠娖綍r(shí)使D觸發(fā)器(U2)的Q輸出端為0即=0,這時(shí)當(dāng)主機(jī)發(fā)出脈沖時(shí),在脈沖上升沿到來時(shí)打印機(jī)開始從74ALS374中讀入數(shù)據(jù)。
4 軟件設(shè)計(jì)
系統(tǒng)控制軟件主要包括:主程序、打印機(jī)是否在線的子程序、判斷是何種機(jī)型的子程序、判斷滑架到達(dá)最左端的子程序、讀取數(shù)據(jù)的子程序和走紙與打印的子程序等,其主程序流程框圖如圖7所示,其他子程序由于篇幅所限,在此不再詳細(xì)介紹。
評(píng)論