【正文】
N oN oN oY e sY e sY e sY e sd a n g w e i + + 。gun=gunrun。} if(jianzhi==19){tuorun=!tuorun。 if(dangwei1=16) {dangwei1=16。} } EEPROM 掉電保護(hù)程序 將條帶切割機(jī)設(shè)置的數(shù)據(jù)儲(chǔ)存在單片機(jī)自帶的 EEPROM 內(nèi),這樣就可以有掉電保護(hù)功能,以免丟失數(shù)據(jù)。//Disable(); //關(guān)閉 IAP 功能,清相關(guān)的特殊功能寄存器,使CPU 處于安全狀態(tài) BYTE IapReadByte(WORD addr)。然后將設(shè)定長(zhǎng)度 temper1 劃分為三部分存入;第一部分存放萬(wàn)位和千位 Byte_program(0x2200,temper1/1000)。由于延時(shí)范圍為 0~9,只需一個(gè)字節(jié) (0~256)的存儲(chǔ)置即可, Byte_program(0x2800,yanshi)。 Byte_program(0x20xx,temper%10)。 系統(tǒng)上電后數(shù)據(jù)將被讀出temper=Byte_read(0x20xx)*1000+Byte_read(0x20xx)*10+Byte_read(0x20xx)。 報(bào) 警 入 口設(shè) 定 長(zhǎng) 度 = 已 卷 長(zhǎng)度 ?滿 盤(pán) 開(kāi) 關(guān) 開(kāi)啟 ?滿 盤(pán) 閃 爍蜂 鳴 器 開(kāi) 、電 機(jī) 停 止N oY e sY e sN o報(bào) 警 出 口s t a t u s = 3 圖 47 報(bào)警程序流程圖 具體程序: {///已卷長(zhǎng)度等于設(shè)定長(zhǎng)度報(bào)警 if((temper2==temper1)amp。status=4。temper2++。同時(shí)每隔 10ms 對(duì)按鍵情況掃描一次,用以判斷是否有按鍵按下或 按下按鍵是否抬起。 count2++。 P2=P2amp。 scan1=P1。 _nop_()。存 儲(chǔ) 數(shù) 據(jù)g u n r u n = = 1 ?T e m p e r 9 9 9 9 9 ?t e m p e r = 0t e m p e r 1 = ?t e m p e r 2蜂 鳴 器 開(kāi) 、s t a t u s = 3Y e sN oY e sY e sY e sN oN o外 部 中 斷 出 口定 時(shí) 中 斷 入 口c o u n t 1 = = 5 0 ?T H 1 T L 1 賦 值 ;c o u n t 1 + + 、c o u n t 2 + +c o u n t 1 = 0 , b j = 0Y e sN oC o u n t 2 = = 1 0 0 ?C o u n t 2 = 0是 否 有 按 鍵 按 下獲 取 鍵 值Y e sY e sN oN o定 時(shí) 中 斷 出 口 圖 410 外部中斷 0 流程圖 圖 411 定時(shí)中斷 1 流程圖 第 5章 制作調(diào)試 制作 本次設(shè)計(jì)制作過(guò)程包括:繪制原理圖、 PCB 圖、焊接等。設(shè)計(jì)繪制 PCB 前應(yīng)了解相關(guān)元器件的封裝。 然后,圖繪制好之后就是開(kāi)發(fā)板的制作,制作過(guò)程中應(yīng)根據(jù)所繪的原理圖來(lái)連接各個(gè)元器件,確保接線網(wǎng)絡(luò)準(zhǔn)確無(wú)誤。布局中,根據(jù)控制實(shí)用方便,焊 接清晰方便,外觀明了等原則,使控制器使用起來(lái)方便,焊接起來(lái)輕松。焊接模塊有問(wèn)題時(shí),首先檢查連接電路是否正確,如有誤,修改接錯(cuò)線路。 軟件調(diào)試與所選用的軟件結(jié)構(gòu)和程序設(shè)計(jì)技術(shù)有關(guān)。所以要一個(gè)個(gè)子程序分別調(diào)試。當(dāng)這些控制模塊都能良好運(yùn)行后,就可以開(kāi)始測(cè)試各個(gè)模塊之間能否協(xié)同運(yùn)行,是否會(huì)發(fā)生干擾和沖突。 該系 統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、性價(jià)比高、使用效率高等特點(diǎn),靈活的按鍵控制方式來(lái)設(shè)定功能等參數(shù),增加了 系統(tǒng)的靈活性,對(duì)已卷長(zhǎng)度采集和顯示、系統(tǒng)狀態(tài)的顯示增加了系統(tǒng)的實(shí)用性。單片機(jī)原理及其接口技術(shù) [M].清華大學(xué)出版社, .. [16] 應(yīng)小咪 等 .計(jì)算機(jī)應(yīng)用教程 [M].上海:上海交通大學(xué)出版社, [17] 邊春元 .C51 單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用 [M].機(jī) 械工業(yè)出版社, [18]胡漢才 . 單片機(jī)原理及其接口技術(shù) [M]. 北京: 清華大學(xué)出版社, 20xx. [19]李廣弟 ,朱月秀 ,冷祖祁 . 單片機(jī)基礎(chǔ) [M]. 北京:北京航空航天大學(xué)出版社, 20xx. [20]樓然苗 ,李光飛 . 單片機(jī)課程設(shè)計(jì)指導(dǎo) [M]. 北京:北京航空航天大學(xué)出版社, 20xx. [21]戴仙金 . 51 單片機(jī)及其 C 語(yǔ)言程序開(kāi)發(fā)實(shí)例 [M]. 北京:清華大學(xué)出版社, 20xx. [22]高慧芳 . 單片機(jī)原理與應(yīng)用技術(shù) [M]. 北京:科學(xué)出版社, 20xx. [23]丁元杰 .單片微機(jī)習(xí)題集與 實(shí)驗(yàn)指導(dǎo)書(shū) .機(jī)械工業(yè)出版社, .. [22]霍孟友 . 單片機(jī)原理與應(yīng)用 [M]. 北京 :機(jī)械工業(yè)出版社 , . [24]李全利 , 遲容強(qiáng) . 單片機(jī)原理及接口技術(shù) [M]. 北京 :高等教育出版社 , . [25]馬長(zhǎng)林 ,陳怡 ,程利民 . 單片機(jī)實(shí)踐應(yīng)用與技術(shù) [M]. 北京 :清華大學(xué)出版社 , 李朝青 . 單片機(jī)原理及接口技術(shù) [M]. 北京:北京航空航天大學(xué)出版社, 1994. 畢 業(yè) 設(shè) 計(jì) 說(shuō) 明 書(shū) 33 [26]陳杰,黃鴻 . 傳感器與檢測(cè)技術(shù) [M]. 北京:高等教育出版社, 20xx. [27]王慶利,劉奎,袁建敏 . 單 片機(jī)設(shè)計(jì)標(biāo)準(zhǔn)教程 [M]. 北京:北京郵電大學(xué)出版社, 20xx. [28]閆玉德 ,俞虹 . MCS51 單片機(jī)原理與應(yīng)用( C 語(yǔ)言版) [M]. 北京:機(jī)械工業(yè)出 版社, 20xx [29]Gourab Sen. Embedded Microcontroller Based DC Motor Control: A Project Based Approach [J]. Embedded Microcontroller Interfacing, 20xx, 83102. [30]Jan Axelson. The Microcontroller Idea Book: Circuits Programs amp。 如果中小企業(yè)都采用全功能數(shù)控系統(tǒng),雖然功能豐富,但成本高,而大量的機(jī)械零件需要高速加工制造,需要大量便宜且自動(dòng)化程度高的加工設(shè)備,所以若此套系統(tǒng)能轉(zhuǎn)化為產(chǎn)品,相信非常適合我國(guó)一般的中小型企業(yè)。 第 6章 總結(jié) 本設(shè)計(jì)以 STC89C51 單片機(jī)為核心 設(shè)計(jì)實(shí)現(xiàn)條帶切割機(jī)部分功能的控制系統(tǒng) ,并設(shè)計(jì)出部分外圍功能硬件,實(shí)現(xiàn)了機(jī)床的 低成 本的自動(dòng)化控制要求。在這階段若發(fā)生故障,可以考慮各子程序在運(yùn)行時(shí)是否破壞現(xiàn)場(chǎng),緩沖單元是否發(fā)生沖突,零位的建立和清除在設(shè)計(jì)上是否失誤,堆棧區(qū)域有否溢出,輸入設(shè)備的狀態(tài)是否畢 業(yè) 設(shè) 計(jì) 說(shuō) 明 書(shū) 31 正常等等。如果采用實(shí)時(shí)多任務(wù)操作系統(tǒng),一般是逐個(gè)任務(wù)。最后如果檢測(cè)網(wǎng)絡(luò)信號(hào)能夠順利傳送,而模塊依然無(wú)法正常工作,則檢測(cè)各個(gè)元器件,看看各器件是否壞掉,及時(shí)更換損壞器件。每焊接好一個(gè)模塊之后要調(diào)試檢查一下能否正常工作,有沒(méi)有達(dá)到相應(yīng)的功能要求。本次制作是在萬(wàn)能板上焊接電路。同時(shí),需要會(huì)使用一款電子繪圖軟件,能夠使用它繪制出原理圖, PCB 圖。 首先,繪制原理圖之前所需各模塊電路的原理、連接和組成元器件。0xe0。 P2=P2|0xe0。 _nop_()。amp。 TL0=(6553610000)%256。amp。 外部中斷 0服務(wù)流程圖如圖 410 所示, 外部中斷 0 來(lái)記錄霍爾傳感器脈沖次數(shù),從而轉(zhuǎn)化已卷長(zhǎng)度,即外部中斷 0 中斷 n次 (n為中斷次數(shù)為 1 米比例系數(shù),可根據(jù)實(shí)際具體情況改變 ),系統(tǒng)得出已卷長(zhǎng)度增加 1 米,并判斷數(shù)據(jù)是否大于 99999,同時(shí)判斷已卷長(zhǎng)度是否等于設(shè)定長(zhǎng)度。(temper10)) status=3 。 報(bào)警程序 本系統(tǒng)有兩種情況會(huì)發(fā)生報(bào)警: ,如果已切帶的長(zhǎng)度到達(dá)設(shè)定長(zhǎng)度值,系統(tǒng)自動(dòng)記憶當(dāng)前機(jī)床速度狀態(tài),并使機(jī)床暫時(shí)處于停止 運(yùn)行狀態(tài),蜂鳴器長(zhǎng)鳴一聲,表示設(shè)定長(zhǎng)度已切割完成。 Byte_program(0x2A01,temper2%1000/10)。 然后將已卷總長(zhǎng)度 temper 和已卷長(zhǎng)度 temper2 同設(shè)定長(zhǎng)度 temper1 樣分為三部分存入Byte_program(0x20xx,temper/1000)。 第三部分存放個(gè)位 Byte_program(0x2202,temper1%10)。//擦除 扇區(qū)畢 業(yè) 設(shè) 計(jì) 說(shuō) 明 書(shū) 26 IapProgramByte(IAP_ADDRESS+k,xianshi[k])。 表 45 STC89C52RC 單片機(jī)內(nèi)部 EEPROM 詳細(xì)地址表 EEPROM 內(nèi)保存數(shù)據(jù)有本系統(tǒng)需要記憶“已卷長(zhǎng)度” “已卷總長(zhǎng)度”“設(shè)定長(zhǎng)度”和“延時(shí)時(shí)間”四個(gè)數(shù)據(jù)及 EEPROM 掉電保護(hù)程序。} if(jianzhi==21) if(dangwei11) {dangwei1。tuo=tuorun。 if(dangwei2=31) if(jianzhi==18){ if(dangwei20) {dangwei2。d a n g w e i 1 = 1 6 ? = 1 6N oY e s電 機(jī) 控 制 出 口圖 46 電機(jī)控制流程圖 畢 業(yè) 設(shè) 計(jì) 說(shuō) 明 書(shū) 25 具體程序: if(status==0) if(jianzhi==16){ gunrun=!gunrun。 d a n g w e i + ?d a n g w e i ?d a n g w e i 1 ? d a n g w e i t u o r u n = ! t u o r u n 。在滾布筒 /拖布盤(pán)停止?fàn)顟B(tài)下按下“滾布筒停止 /啟動(dòng)” /“托布盤(pán)停止 /啟動(dòng)”,將啟動(dòng)滾布筒 /啟動(dòng)托布盤(pán)電機(jī);在滾布筒 /托布盤(pán)運(yùn)行狀態(tài)下按下“滾布筒停止 /啟動(dòng)” / “托布盤(pán)停止 /啟動(dòng)”,將使?jié)L布筒 /托布盤(pán)電機(jī)停止轉(zhuǎn)動(dòng);檔位加減控制可以按下 “ ”或“ ”鍵對(duì)電機(jī)轉(zhuǎn)速進(jìn)行升速或降速的調(diào)速控制。 /////////////位置 9///////////////// LCD_write(10,temper1/10000)。 /////////////位置 5///////////////// //設(shè)定長(zhǎng)度數(shù)值 LCD_write(6, temper1%10)。 /////////////位置 1///////////////// LCD_write(2,temper%100/10)。滾布筒檔位顯示為第三行,檔位每加 2,往前升一格;拖布盤(pán)檔位顯示為第四行檔位每加 1,往前升一格,最小一格,滿格為 16。根據(jù)此方法如表 所示: 表 42 0~31 位地址對(duì)應(yīng)表 根據(jù)上表采用的方法,得出本系統(tǒng)地址位數(shù)組如下: uchar TAB1[]={0x00,0x04,0x08,0x0C,0x10,0x14,0x18,0x1C,0x20,0x24,0x28,0x2C, 0x30,0x34,0x38,0x3C,0x40,0x44,0x48,0x4C,0x50,0x54,0x58,0x5C,0x60,0x64,0x68,0x6C,0x70,0x74,0x78,0x7C}。由表 42 得出,約定引腳 5( PIN)為地址位開(kāi)始位,即為地址位 0。一旦 CS 管腳為 0,將出現(xiàn)一個(gè)新的工作模式 ID。數(shù)據(jù)模式包括 READ、 WRITE 和 READMODIFYWRITE 操作。 scan2=P2amp。 P1=0x00。0x1f。鍵盤(pán)掃描程序用于完成按鍵的判斷、按鍵的去抖動(dòng)以及按鍵的鍵值處理、存儲(chǔ),本次設(shè)計(jì)運(yùn)用了線反轉(zhuǎn)法并將掃描程序放入中斷中處理。 或滿盤(pán)開(kāi)關(guān)開(kāi)啟,進(jìn)入停機(jī)狀態(tài),只響應(yīng)“確定”和“刪除”按鍵;按下 “確定”,滾布筒立即以滿盤(pán)時(shí)的狀態(tài)動(dòng)作;如果不想繼續(xù)原先的狀態(tài)切帶加工,按下“刪除”即可,這時(shí)機(jī)床處于停止?fàn)顟B(tài)。按下延時(shí)鍵,進(jìn)入延時(shí)狀態(tài),可對(duì)延時(shí)時(shí)間進(jìn)行設(shè)定,此時(shí)只響應(yīng)數(shù)字鍵 0~9 和確定鍵。工作狀態(tài)時(shí)按下“刪除”鍵或“電機(jī)啟?!辨I時(shí),系統(tǒng)進(jìn)入正常停機(jī)狀態(tài)。TL1=(6