專利名稱:一種便攜式編碼存儲與重復編碼報警裝置的制作方法
技術領域:
本發明涉及一種能存儲大量產品編碼、對重復輸入的編碼進行報警并能方便地與PC機進行數據交換的便攜式裝置。
背景技術:
在工農業生產中,有時需要記錄已生產產品的數字編碼,并對重復輸入的編碼進行報警;有時需要根據一系列的數字編碼來生產產品,例如在生產一批同型號的鎖時,就是根據一定的數字編碼(通常是5位或者6位)來確定每把鎖鎖芯的形狀和對應鑰匙的形狀的。而根據相關規定,在同一批同型號的鎖中,不應該出現同一編碼的鎖,否則會出現不同鎖的鑰匙能打開同一把鎖的情況,為了避免這種情況的發生,就需要記錄每把鎖的編碼并確保該編碼與其它鎖的編碼不相同。要記錄產品的編碼,最原始的方法就是用紙和筆進行記錄,在小批量的產品生產中,這種方法還是很方便的,但當產品的批量較大時,比如說幾千件、萬件甚至幾十萬件時,這種手工記錄的方法就太麻煩了,特別是要比較某一個編碼跟其它的編碼是否相同就相當困難了。另外一種采用計算機錄入的方法,這種方法采用專門的軟件,可以記錄大量的數據,并可迅速地對重復編碼進行判別,但是用計算機錄入也存在一些缺點計算機體積較大,不便于攜帶;普通地計算機易受干擾,不適合某些環境惡劣地工業現場而且計算機價格一般較高。
發明內容
本發明的目的在于提供一種便攜式編碼存儲與重復編碼報警裝置,能存儲大量產品編碼,能夠對重復輸入的編碼進行報警并能方便地與PC機進行數據交換的裝置。
本發明解決其技術問題所采用的技術方案如下包括一個鍵盤,一個顯示器、一個發聲器、一組可擦寫存儲器通過電路與一個單片機連接,另外還有一個串行通信接口,該串行通信接口一端與單片機的串口連接,另一端做成一個插入式的接口與PC機的串口連接,實現單片機與PC的數據交換。
所述的鍵盤上有十個數字鍵0、1、2、3、4、5、6、7、8、9,一個退格鍵,一個清零鍵,一個確認鍵以及F1~F7七個功能鍵。
所述的顯示器是小型液晶顯示器或者LED數碼管。
所述的發聲器是蜂鳴器或者小功率揚聲器。
所述的單片機對產品編碼的存儲采用間接的位存儲方式,即把一組可擦寫存儲器的所有存儲單元按位劃分地址,每位存儲單元的地址對應相應的數字編碼,該位為0表示對應數字編碼未存儲,該位為1表示對應數字編碼已存儲。
在具體操作時,使用者通過鍵盤輸入數字編碼,單片機采用間接的位存儲方式存儲輸入到可擦寫存儲器,若發現該編碼已經存儲過,則發出該編碼重復的警告并顯示重復次數。單片機通過串行通信的方式實現與PC機的數據交換,這種數據交換既可以是單片機把可擦寫存儲器的數據讀出然后發送給PC機,也可以是單片機根據PC的指令要求改寫可擦寫存儲器內部的數據。
本發明具有的有益的效果是1、采用間接的位存儲方式存儲數字編碼,可以存儲大量的數字編碼,并且對重復編碼的判別簡單而迅速;2、可以實現與PC機的數據交換,既可以發揮PC機存儲容量大、運算迅速的優點,又可以彌補PC機直接錄入產品編碼的種種限制和不足;3、本發明體積較小,便于攜帶;操作簡單,成本低廉。
圖1是本發明實施例的結構框圖;圖2是本發明實施例的面板俯視圖;圖3是圖2中盒體部分的A向視圖;圖4是本發明實施例鍵盤的界面圖;圖5是本發明實施例液晶顯示界面圖圖6是本發明實施例的電路圖。
具體實施例方式
下面結合附圖和實施例對本發明作進一步的說明。
本發明它包括一個開關式鍵盤,一個液晶顯示器、一個蜂鳴器、一組可擦寫存儲器(EEPROM)通過電路與一個單片機連接;另外還有一個串行通信接口,該串行通信接口一端與單片機的串口連接,另一端做成一個插入式的接口,用于與PC機的串口連接,實現單片機與PC的數據交換。本新型實施例的結構原理如圖1所示。其中開關式鍵盤是通過專用的鍵盤處理芯片與單片機的I/O口連接,蜂鳴器是通過一個功率放大電路與單片機的I/O口連接。
以上所述的鍵盤上,共有20個鍵,包括十個數字鍵0、1、2、3、4、5、6、7、8、9,一個退格鍵,一個清零鍵,一個確認鍵以及七個功能鍵F1、F2、F3、F4、F5、F6、F7。鍵盤的界面設計如圖4所示。鍵盤通過鍵盤處理芯片7289芯片與單片機的I/O口連接,與8279芯片相比7289芯片可以實現同樣的功能但其成本低很多,而且用7289芯片控制鍵盤其占用的單片機的I/O口也較少。
以上所述的液晶顯示器選用的是128×64點陣的自帶顯示驅動器的圖像液晶顯示器。液晶顯示器用來顯示輸入的數字編碼或顯示其它提示性信息。
以上所述的蜂鳴器通過動率放大電路與單片機的I/O口的一個引腳連接。它用于在輸入的號碼重復時發出“嘟嘟”的報警聲,以及在使用者按鍵時發出短促的按鍵提示音。
以上所述的單片機對產品編碼的存儲采用間接的位存儲方式,即把一組可擦寫存儲器的所有存儲單元按位劃分地址,每位存儲單元的地址對應相應的數字編碼,該位為0表示對應數字編碼未存儲,該位為1表示對應數字編碼已存儲。本實施例選用的可擦寫存儲器芯片為ATMEL公司生產的24C1024芯片時,該芯片存儲容量為1024k Bit=1,048,576Bit,可把該芯片的1,048,576個位存儲單元的前1,000,000從0到999,999依次分配地址,地址為0的位存儲單元對應的數字編碼是0,地址為1的位存儲單元對應的數字編碼是1,依次劃分,地址為999,999的位存儲單元對應的編碼是999,999。若地址為x的位存儲單元該位為0表示值為x的數字編碼未存儲,為1值為x的數字編碼已經存儲過。這樣一塊24C1024芯片地前1,000,000個位存儲單元即可存儲1,000,000個6位數數字編碼,其后面地48,576還可以用于存儲其它的信息。本實施例先用了8塊這樣的可擦寫存儲器芯片,組成了一個可擦寫存儲器陣列,對存儲器陣列的讀寫通過單片機的P1口的8根I/O口線來控制。這樣8塊24C1024便可以分成8個存儲組,這8個存儲組按1、2、3、4、5、6、7、8依次編號,每個存儲組都可以獨立地存儲多達1,000,000個6位數編碼,8個存儲組共可存儲8,000,000個6位數編碼。而且通過與PC機的數據交換,這些獨立存儲的數據都可以轉移PC機中。圖6是本實施例的電路圖。
本實施例的外觀結構總體上如圖2所示。外觀接近于一只普通計算器。它分為盒體和盒蓋兩部分,兩部分用鉸鏈連接。電路板安放于盒體中,鍵盤、液晶顯示模塊均固定于盒體中;盒體的后面設置有一個安放干電池的開口,用于放置5V的干電池。盒體的前端還有兩個接口,如圖3所示,其中一個是串行通信接口,用于與PC機的通信,另一個5V電源接口。因此本實施既可以使用外接的5V電源,又可以使用內置的5V干電池。圖2所示盒體上的按鈕是一個電源開關。
在具體操作時,使用者通過鍵盤輸入數字編碼,單片機采用間接的位存儲方式存儲輸入到可擦寫存儲器,若發現該編碼已經存儲過,則發出該編碼重復的警告并顯示重復次數。
使用者還可以通過按鍵盤上的功能鍵來實現其它設置。七個功能鍵的具體作用如下F1清除當前存儲組的所有數據。為了防止所存儲的數據因為使用者的誤操作而刪除或被他人隨意地刪除,按F1之后系統會提示輸入4位數密碼,只有輸入的密碼與原來設定的密碼一致時,系統才允許刪除當前存儲組所保存的數據;F2設置4位數密碼。設置新的密碼之前必須先輸入原先正確的密碼;F3選擇當前存儲編碼的存儲組;F4選擇當前所要存儲編碼的位數。本實施例可以存儲的編碼位數是4位、5位或6位;F5按鍵音的開和關鍵。當按鍵音打開時,使用者按一下鍵,蜂鳴器將發出短促的按鍵提示音。
F6恢復鍵。系統默認狀態為編碼輸入狀態。當系統處于密碼設置狀態和其它狀態時,按F6將恢復到編碼輸入狀態。
F7串行通信控制鍵。剛開機時(未按過其它任何鍵),按下此鍵,系統將對PC進行的通信連測試,若通信測試成功,系統將根據PC機的指令與PC交換數據。單片機通過串行通信的方式實現與PC機的數據交換,這種數據交換既可以是單片機把可擦寫存儲器的數據讀出然后發送給PC機,也可以是單片機根據PC的指令要求改寫可擦寫存儲器內部的數據。
以上對系統狀態的更改和設定將在液晶顯示界面上反映出來,圖5是本實施例液晶顯示界面的一個示意圖。該圖中,液晶顯示界面分為上下兩個部分,上面的部分顯示系統當前的狀態,顯示的內容包括當前所選擇的存儲組,當前要輸入數字編碼的位數,當前所選擇的存儲組已經存儲編碼個數和已經重復輸入的編碼個數,已及按鍵提示音的開或關等;顯示界面的下半部分是輸入提示區,用于顯示輸入的編碼或其它信息提示,例如提示使用者輸入系統密碼等。
下面是本實施例中以偽代碼表示的單片機程序流程1、電復位;置位開機標志位start_flag(1->start_flag);
2、讀取初始化信息,這些信息包括上一次使用時選取的存儲組別S,上一次使用時選取的編碼位數N,S組存儲單元已存儲的編碼位數x;聲音標志位voice_flag(1->voice_flag);3、對下列差數進行賦值;當前的狀態值z(6->z);當前輸入編碼的值m(0->m);當前輸入編碼的值m的位數n(0->n);但前鍵值k(255->k);系統密碼值m0(0->m0);確認密碼值m3(0->m3);再次確認密碼值m4(0->m4);當前輸入密碼值位數n2(0->n2);按鍵標志位key_flag(0->key_flag);4、顯示當前狀態信息;5、判斷鍵值有無按鍵,無按鍵(即key_flag==0),轉5,若有按鍵,(即key_flag==1),則0->key_flag,轉6;6、若k<=9,按鍵為數字鍵,進行相應的按鍵發音;若start_flag==1(表示剛開機)&& k!=17,0->start_flag;7、判斷鍵值k,若k<=9,按鍵為數字鍵,轉8;若k==9,按鍵為確認鍵,轉9;若k==11,按鍵為退格鍵,轉12;若k==12,按鍵為清零鍵,轉13;若k>=13 && k<=18,按鍵為功能鍵,轉14;若k>19,按鍵為無效按鍵,轉5;8、判斷n值,若n==N,轉5;若n<N,則(m*10+k)->m,重新顯示m值,轉5;9、判斷n值,若n==N,轉10;若n<N,則(m*10+k)->m,提醒確認出錯,轉5;10、讀取S存儲組m地址單元位的值,若其值為0表示該m值未存儲過,m地址單元對應的位存儲單元置1,x++,重新顯示x值,轉5;若其值為1表示該m值已經存儲過,轉11;11、讀取S存儲組地址m編碼值重復輸入的次數y,發出m編碼值重復的報警,并顯示其重復輸入的次數y,轉5;12、(m/10)->m,n--;顯示退格后的m值,轉5;13、0->m,0->n,m顯示值清零,轉5;14、判斷k值,若k==13,則按鍵為F1,轉15;若k==14,則按鍵為F2,轉17;若k==15,則按鍵為F3,轉21;若k==16,則按鍵為F4,轉23;若k==16,則按鍵為F5,轉25;若k==17,則按鍵為F6,轉26;若k==17 && start_flag==1,則按鍵為F7,轉42;
15、提示使用者輸入4位數密碼,255->k,轉27;16、S存儲組所有存儲單元清零,寫入S存儲組初始化信息(已存儲個數x置0,S單元存儲編碼的位數N值不變),轉3;17.提示使用者輸入4位數密碼,255->k,轉27;18、提示使用者輸入4位數新密碼,255->k,轉32;19.提示使用者輸入4位數確認密碼,255->k,轉37;20、修改并存儲新的系統密碼(m4->m0),提示密碼修改成功,轉3;21、0->m,0->n;判斷S的值,若S<=7,則S+1->S,轉22;若S==8,1->S,轉22;22、重新顯示存儲組S的值,轉3;23、0->m,0->n;判斷N值,若N==4,則5->N,轉24;若N==5,則6->N,轉24;若N==6,則4->N,轉24;24、重新顯示S存儲組編碼位數的N值,轉3;25、0->m,0->n;判斷聲音標志位vioce_flag的值,若vioce_flag==1,則0->vioce_flag,轉3;若vioce_flag==0,則0->vioce_flag,轉3.
26、6->z,轉3;27、判斷鍵值有無按鍵,無按鍵(即key_flag==0),轉5,若有按鍵,(即key_flag==1),則0->key_flag,轉6;28、斷鍵值k,若k==17,退出F1處理程序,轉3;若k>10,轉27;若k<=9,轉29;若k==10,轉30;;若k為其它值,轉27;29、斷n2值,若n2==4,轉27;若n2<4,則(m2*9+k)->m2,重新顯示m2值,轉27;30、讀入原有密碼m0,比較m2與m0,若m2==m0 && z==1轉16;若m2==m0 && z==2轉19;若m2!=m0,則密碼輸入錯誤,轉31;31、提示密碼錯誤和重新輸入密碼,0->m2,0->n2,m2顯示值清零,轉27;32、判斷鍵值有無按鍵,無按鍵(即key_flag==0),轉5,若有按鍵,(即key_flag==1),則0->key_flag,轉6;33、判斷鍵值k,若k==17,退出F2處理程序,轉3;若k>9,轉32;若k<=9,轉34;若k==10,轉35;若k為其它值,轉32;34、判斷n2值,若n2==4,轉32;若n2<4,則(m2*9+k)->m2,重新顯示m2值,轉32;35、讀入原有密碼m0,比較m2與m0,若m2==m0,則密碼輸入正確,轉18;若m2!=m0,則密碼輸入錯誤,轉36;36、提示密碼錯誤和重新輸入密碼,0->m2,0->n2,m2顯示值清零,轉3237、判斷鍵值有無按鍵,無按鍵(即key_flag==0),轉5,若有按鍵,(即key_flag==1),則0->key_flag,轉6;38、判斷鍵值k,若k==17,退出F2處理程序,轉3;若k>9,轉37;若k<=9,轉39;若k==10,轉40;若k為其它值,轉37;39、判斷n2值,若n2==4,轉37;若n2<4,則(m2*9+k)->m2,重新顯示m2值,轉37;40、比較m4與m3,若m3==m4,則確認密碼正確,轉20;若m4!=m3,則確認密碼錯誤,轉41;41、提示密碼錯誤和重新輸入密碼,0->m2,0->n2,m2顯示值清零,轉37;42、測試與PC機的通信,若通信測試成功,轉43;若通信測試失敗,則提示通信檢查通信連接,轉42;43、讀取PC機的命令,若PC機的命令為讀,則轉44;若PC機命令為寫,則轉45;44、讀取相應存儲單元的數據傳送給PC機;45、從把PC機讀取數據并寫入相應存儲組。
以上偽代碼的原則如下1、如果不跳轉,則從前往后執行;2、“->”表示賦值;3、“==”表示兩邊相等;4、“&&”為并運輸符,表示“而且”。
以上偽代碼各變量的含義如下start_flag開機標志位,start_flag的值為1表示開機后未按F7以外的其它任何鍵,反之start_flag的值為0;voice_flag按鍵發音標志位,voice_flag的值為1表示鍵盤提示音打開,反之voice_flag的值為0;key_flag按鍵標志位,key_flag的值為1表式有新的鍵值鍵入,反之key_flag的值為0;S當前選取的存儲組組別,取值范圍1~8;N但前選取的編碼位數,取值范圍4~6;n當前輸入編碼的的位數,取值范圍4~6;m當前輸入編碼的值;k當前鍵盤輸入的鍵值;m0系統密碼值;m3確認密碼值;m4再次確認密碼值;n2當前輸入密碼值位數;z當前的狀態值取值范圍1~7,對應于7個功能鍵,默認值為6;x當前存儲組已存儲的編碼個數;y當前輸入編碼重復輸入的次數。
權利要求
1.一種便攜式編碼存儲與重復編碼報警裝置,其特征在于包括一個鍵盤,一個顯示器、一個發聲器、一組可擦寫存儲器通過電路與一個單片機連接,另外還有一個串行通信接口,該串行通信接口一端與單片機的串口連接,另一端做成一個插入式的接口與PC機的串口連接,實現單片機與PC的數據交換。
2.根據權利1所述的一種便攜式編碼存儲與重復編碼報警裝置,其特征在于所述的鍵盤上有十個數字鍵0、1、2、3、4、5、6、7、8、9,一個退格鍵,一個清零鍵,一個確認鍵以及F1~F7七個功能鍵。
3.根據權利1所述的一種便攜式編碼存儲與重復編碼報警裝置,其特征在于所述的顯示器是小型液晶顯示器或者LED數碼管。
4.根據權利1所述的一種便攜式編碼存儲與重復編碼報警裝置,其特征在于所述的發聲器是蜂鳴器或者小功率揚聲器。
5.根據權利1所述的一種便攜式編碼存儲與重復編碼報警裝置,其特征在于所述的單片機對產品編碼的存儲采用間接的位存儲方式,即把一組可擦寫存儲器的所有存儲單元按位劃分地址,每位存儲單元的地址對應相應的數字編碼,該位為0表示對應數字編碼未存儲,該位為1表示對應數字編碼已存儲。
全文摘要
本發明公開了一種便攜式編碼存儲與重復編碼報警裝置,包括一個鍵盤,一個顯示器、一個發聲器、一組可擦寫存儲器通過電路與一個單片機連接;另外還有一個串行通信接口,該串行通信接口一端與單片機的串口連接,另一端做成一個插入式接口,用于與PC機的串口連接,實現單片機與PC的數據交換。該裝置采用間接的位存儲方式存儲數字編碼,可以存儲大量的數字編碼,并且對重復編碼的判別簡單而迅速;可以實現與PC機的數據交換,既可以發揮PC機存儲容量大、運算迅速的優點,又可以彌補PC機直接錄入產品編碼的種種限制和不足;本發明體積較小,便于攜帶;操作簡單,成本低廉。
文檔編號G06F12/00GK1614598SQ20041006755
公開日2005年5月11日 申請日期2004年10月25日 優先權日2004年10月25日
發明者魏燕定, 高平波 申請人:浙江大學