日韩av无码中文字幕,国产午夜亚洲精品国产成人小说,成人影院午夜男女爽爽爽,欧美 亚洲 中文 国产 综合

首頁 熱點(diǎn) 要聞 國內(nèi) 產(chǎn)業(yè) 財(cái)經(jīng) 滾動(dòng) 理財(cái) 股票

基于AVR128單片機(jī)智能傳送裝置

2023-08-31 04:42:01 來源 : bbxyliyang

一、系統(tǒng)方案1、板載可變電阻電位器)R29的電壓作為處理器ATmega128的模數(shù)轉(zhuǎn)換模塊中單端ADC0的模擬信號(hào)輸入(跳線JP13短接)。2、調(diào)節(jié)電位器,將改變AD轉(zhuǎn)換接口ADC0的模擬信號(hào)輸入,由處理器完成ADC0的A/D轉(zhuǎn)換。3、將處理器通過A/D轉(zhuǎn)換后得到的電壓信號(hào)來模擬“貨物”的重量。假定轉(zhuǎn)換得到的電壓信號(hào)與“貨物”重量具有線性關(guān)系,例:電壓2.5V時(shí),貨物重量為500kg,電壓為0V時(shí),傳送裝置空載。4、將轉(zhuǎn)換得到的電壓及對(duì)應(yīng)的“貨物”重量通過7段數(shù)碼管LED或液晶顯示屏或PC串口顯示。5、使用板載4*4矩陣鍵盤中的四個(gè)按鍵號(hào)分別為A-D的4個(gè)按鍵和8個(gè)發(fā)光二極管D1-D8。A鍵為傳送裝置啟動(dòng)按鍵,按下后,板載發(fā)光二極管D1亮,表示傳送裝置啟動(dòng)。B鍵鍵為正向傳送控制鍵,在A啟動(dòng)后B才有效,B按下后,發(fā)光二極管D2-D8從左到右依次循環(huán)點(diǎn)亮,表示“傳送裝置”開始正向傳送貨物。C鍵為反向傳送控制鍵,同樣在A啟動(dòng)后才有效,C按下后,發(fā)光二極管D2-D8從右到左依次循環(huán)點(diǎn)亮,表示“傳送裝置”開始反向傳送貨物。D鍵為停止鍵,D按下后, “傳送裝置”停止工作,所有發(fā)光二極管全部熄滅。

二、硬件設(shè)計(jì)原理圖如下:


(資料圖片僅供參考)

三、單片機(jī)軟件設(shè)計(jì)1、首先是系統(tǒng)初始化void LCD12864_Init() //初始化液晶12864{ ResetLcd(); SetScreenOnOff(0); delay_nus(2); SetPage(0); delay_nus(2); SetColum(0); delay_nus(2); SetRow(0); delay_nus(2); SetScreenOnOff(1);}2、液晶顯示程序void SendCommand(unsigned char command)//給液晶寫入命令控制字{ CheckState(); LGM12864_CLR_RS; LGM12864_CLR_RW; LCDa_DO = command; delay_nus(2); LGM12864_SET_EN; delay_nus(2); LGM12864_CLR_EN;}

unsigned char LCD12864_RecData()//液晶接收數(shù)據(jù){ unsigned char temp; CheckState(); LGM12864_SET_RS; LGM12864_SET_RW; LGM12864_SET_EN; temp=LCDa_DI; LGM12864_CLR_EN;

return (temp);}3、按鍵程序void key(void)//按鍵檢測{if((k1)==0)//開始按鍵{delay_nms(10);if((k1)==0){led_start=1;led_0;}while((k1)==0);}

if((k2)==0)//正轉(zhuǎn){delay_nms(10);if((k2)==0){ if(led_start) fx=1; count=0;}while((k2)==0);}if((k3)==0)// 反轉(zhuǎn){delay_nms(10);if((k3)==0){if(led_start) fx=2;count=0;}while((k3)==0);}if((k4)==0)//停止{delay_nms(10);if((k4)==0){ led_start=0;led_1;}while((k4)==0);}}

4、核心算法程序#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVFvoid timer1_ovf_isr(void){//TIMER1 has overflowedTCNT1H = 0xFC; //reload counter high valueTCNT1L = 0x18; //reload counter low valuenum++;

if(led_start){ if(fx==1) PORTB=table0[count]; if(fx==2) PORTB=table1[count]; if(num>300) { num=0; count++; count%=8; }}else{

PORTB=0xff;

}}

四、proteus仿真設(shè)計(jì)Proteus軟件是一款應(yīng)用比較廣泛的工具,它可以在沒有硬件平臺(tái)的基礎(chǔ)上通過自身的軟件仿真出硬件平臺(tái)的運(yùn)行情況,這樣就可以通過軟件仿真來驗(yàn)證我們設(shè)計(jì)的方案有沒有問題,如果有問題,可以重新選擇器件,連接器件,直到達(dá)到我們設(shè)定的目的,避免我們搭建實(shí)物的時(shí)候,如果當(dāng)初選擇的方案有問題,我們器件都已經(jīng)焊接好了,再去卸載下去,再去焊接新的方案的器件,測試,這樣會(huì)浪費(fèi)人力和物力,也給開發(fā)者帶來一定困惑,Proteus仿真軟件就很好的解決這個(gè)問題,我們在設(shè)計(jì)之初,就使用該軟件進(jìn)行模擬仿真,測試,選擇滿足我們設(shè)計(jì)的最優(yōu)方案。最后根據(jù)測試沒問題的仿真圖紙,焊接實(shí)物,調(diào)試,最終完成本設(shè)計(jì)的作品。

審核編輯 黃宇

關(guān)鍵詞:
相關(guān)文章

最近更新
精彩推送
什么是LLMOps? 2023-08-31 04:47:32