Can you summarize the following document?
        
  UPC碼是在IBM公司工程師諾曼·伍德蘭的環形碼基礎上誕生的。1966年,美國國家食物連鎖協會(National Association of Food Chains (NAFC))要求研製一種加快貨物驗收速度的裝置,國家收款機(National Cash Register,IBM公司的前身)在1967年開發出了用來替代伍德蘭德牛眼碼的一種新式同心圓環碼。  1970年夏天,應國家食物連鎖協會要求,Logicon公司開發出了食品工業統一碼(Universal Grocery Products Identification Code,UGPIC),依據IBM喬治·勞雷爾設計方案。很快,美國超市Ad Hoc組織在Logicon公司建議下製造了UPC碼。美國均勻碼理事會在1973年建立了UPC碼系統,並且實現了該碼制標準化。UPC碼首先在雜貨零售業中試用,1974年6月25日,俄亥俄州的Marsh超級市場安裝了由NCR製造的第一臺UPC掃描器。在使用UPC條碼的27種商品中,第一個被收銀員沙龍·布坎南(Sharon Buchanan)掃描的是標價69美分的十片裝箭牌口香糖。在十年內,條碼掃描器攻佔了一半的美國超市。至1989年,達到全美食品店的62%。  1992年香港惠康超級市場(臺灣稱為「頂好」)成為全港第一家使用UPC系統的超市,為客人提供更快更方便的付款服務。根據2004-2008的報告,惠康超級市場的分店數目因而提升。

  UPC碼只能用來表示0-9的數字。每7個模組表達一個字元,每個模組有空(白色)與條(黑色)兩種狀態。 UPC碼又分為UPC-A、B、C、D、E五種版本。

  用於通用商品,是適用範圍最廣的一種UPC碼。一共有113個模組,每個模組長0.33毫米。左右兩個各由9個模組組成的空白。UPC-A碼是定長碼,只能表示12位數字。從左至右,依次是3個模組(101)的起始碼、1位的系統碼、5位的左側資料碼、5個模組(01010)的中間碼、5位的右側資料碼、檢查碼、3個模組(101)的終止碼。其中,起始碼、中間碼、終止碼的模組長度都要長於資料碼。  可以看出,左側資料碼是右側資料碼的反碼。 以上圖中的數字4為例:首先確定它是右側資料碼,然後讀取出它的邏輯值:1011100。轉換成條與空則是:細黑(1)、細白(0)、粗黑(111)、粗白(00)。 CC =(N1+N3+N5+N7+N9+N11)* 3 +(N2+N4+N6+N8+N10)然後取個位。 C=10-CC(若C值為10,則取0)。 以圖中條碼為例,cc=(0+6+0+2+1+5)*3+(3+0+0+9+4)=58 c=2

  與UPC-A碼基本相同。其中:B碼主要用於醫藥衛生;C碼用於產業部門,第二位為系統碼,倒數第二位為檢查碼;D碼用於倉庫批發,倒數第三位為檢查碼

  短碼,總長度為8個字碼。A碼與E碼之間數字的對應規則與最後一位檢查碼有關。如下:  E表示偶碼,O表示奇碼。UPC-E的奇碼與UPC-A的奇碼完全相同。
通用產品程式碼(Universal Product Code),通常簡稱UPC碼,是美國均勻碼理事會(Uniform Code Council, "UCC")制定的一種商品條碼,主要在美國及加拿大使用。在其基礎之上發展起來的EAN碼則已發展成為適用範圍最廣的通用條碼。