一種基于總線的智能型執(zhí)行器系統(tǒng)設(shè)計(jì)
1、角反饋位置子程序。68HC12片上提供了一個(gè)8路10位的A/D轉(zhuǎn)換器,由于其簡(jiǎn)單易用,可靠性高,因此本設(shè)計(jì)中,應(yīng)用該A/D轉(zhuǎn)換器來(lái)完成位置信號(hào)的反饋。在本設(shè)計(jì)中,ATDCTL2賦值80H,允許A/D功能。正常清除A/D轉(zhuǎn)換標(biāo)志,不允許中斷。ATDCTL3賦值00H,選擇連續(xù)轉(zhuǎn)換模式,不許凍結(jié)。ATDCTL4賦值01H,分頻因子為4,采樣時(shí)間為2個(gè)A/D時(shí)鐘。A/D轉(zhuǎn)換完畢后,就可以得到當(dāng)前角位置反饋,然后將該值存入數(shù)據(jù)緩沖區(qū),供執(zhí)行器驅(qū)動(dòng)子程序、向總線仲裁器發(fā)送的變量寫子程序和LCD顯示子程序使用。
2、執(zhí)行器輸出驅(qū)動(dòng)子程序。由于執(zhí)行器的正反轉(zhuǎn)輸出由MCU上的兩個(gè)I/O口進(jìn)行控制,所以對(duì)其控制比較簡(jiǎn)單,在此不作詳細(xì)敘述。值得一提的是本設(shè)計(jì)中將死區(qū)嵌入了對(duì)到達(dá)指定位置判斷的子程序中,執(zhí)行器正轉(zhuǎn)時(shí),反饋值不能大于指定值加1(指定值為0~100%開度),反轉(zhuǎn)時(shí),反饋值不能小于指定值減1。即死區(qū)被定為1%。
圖5中斷處理程序流程圖
3、LCD顯示子程序。本設(shè)計(jì)使用的LCD控制器HD44780必須進(jìn)行初始化,否則模塊可能無(wú)法正常顯示,一般通過(guò)軟件復(fù)位程序來(lái)完成其初始化。將LCD設(shè)置為8位數(shù)據(jù)接口,2行顯示,5×7點(diǎn)陣,顯示開,光標(biāo)關(guān),閃爍關(guān),無(wú)移位。第一行地址80H,第二行地址C0H。在對(duì)LCD初始化結(jié)束后,可以對(duì)LCD進(jìn)行讀寫操作。LCD的讀寫操作都是在E管腳的下降沿有效,所以讀寫前要確保數(shù)據(jù)準(zhǔn)備好,先將E置高,再將其置低,完成讀寫操作。
4、軟件的固化。軟件調(diào)試完畢后需要把程序固化到MCU68HC12的FLASH中,68HC12的FLASH控制寄存器共有4個(gè),它們是:FEELCK,F(xiàn)EEMCR,F(xiàn)EETST和FEECTL。FEELCK等于01H時(shí)將禁止FLASH,F(xiàn)EEMCR等于01H時(shí)將擦除和編程FLASH的啟動(dòng)塊,F(xiàn)EETST主要用來(lái)進(jìn)行測(cè)試,而FEECTL則具體控制FLASH的讀寫編程。
評(píng)論