0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于AVR128單片機智能傳送裝置

bbxyliyang ? 來源:bbxyliyang ? 作者:bbxyliyang ? 2023-08-28 15:46 ? 次閱讀


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

wKgZomTsUK-AN2vyAAAUuAFPSuA871.png

二、硬件設計
原理圖如下:

wKgaomTsULaASE92AAD2CWQE3CU095.png

三、單片機軟件設計
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)//正轉
{
delay_nms(10);
if((k2)==0)
{
if(led_start) fx=1;
count=0;
}
while((k2)==0);
}

if((k3)==0)// 反轉
{
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_OVF
void timer1_ovf_isr(void)
{
//TIMER1 has overflowed
TCNT1H = 0xFC; //reload counter high value
TCNT1L = 0x18; //reload counter low value
num++;

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

wKgZomTsUL-AeKPCAAERKOJyi3g379.png

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19376

    瀏覽量

    230443
  • 電位器
    +關注

    關注

    14

    文章

    1012

    瀏覽量

    66896
  • AVR128
    +關注

    關注

    0

    文章

    6

    瀏覽量

    5315
  • 單片機
    +關注

    關注

    0

    文章

    216

    瀏覽量

    16658
收藏 人收藏

    評論

    相關推薦

    之前51單片機實驗板安裝的drivrer,可以用作AVR單片機drivrer嗎

    之前51單片機實驗板安裝的drivrer,可以用作AVR單片機drivrer嗎?PS:剛剛買了一塊二手的AVR128單片機實驗板,插上去發(fā)現(xiàn)
    發(fā)表于 06-16 10:19

    AVR128實驗板下載不了程序的原因

    AVR128實驗板下載不了程序的原因。PS:51單片機實驗板插在我電腦的USB就下載得了程序。不知道什么原因。
    發(fā)表于 06-16 10:46

    avr128

    我現(xiàn)在遇到關于avr128系列的困難,能幫解答一下如何控制一路pwm波嗎
    發(fā)表于 01-12 12:13

    avr128

    avr128如何控制一個舵機
    發(fā)表于 01-12 13:27

    AVR128的數(shù)碼相框的設計?。。?!急!?。?/a>

    基于AVR128的數(shù)碼相框的設計!用GCCAVR的,bmp圖像顯示,JTAG,TFT液晶顯示?。?!哪位大神幫幫忙。。感激不盡啊!
    發(fā)表于 05-14 15:23

    怎么用AVR128單片機(C語言)控制可編程數(shù)字電位器AD5122,求...

    怎么用AVR128單片機(C語言)控制可編程數(shù)字電位器AD5122,求程序!求大神!
    發(fā)表于 05-10 14:39

    ucosii在AVR128芯片移植中出現(xiàn)了什么問題?怎樣去解決?

    怎樣把ucosii移植到一塊AVR128芯片上去?ucosii在AVR128芯片移植中出現(xiàn)了什么問題?怎樣去解決?
    發(fā)表于 07-07 07:09

    如何把ucosii移植到一塊AVR128芯片上?

    如何把ucosii移植到一塊AVR128芯片上?
    發(fā)表于 10-29 06:01

    51單片機AVR單片機的區(qū)別在哪

    51單片機AVR單片機區(qū)別于不同區(qū)別于不同51單片機本身種類繁多,各種國產變種,增強型51等等。他們都是INTEL的80C51內核,經(jīng)典但是老51
    發(fā)表于 11-18 06:08

    USB/RS232_AVR_JTAG仿真器

    關于AVR128單片機的JTAG接口的使用方法
    發(fā)表于 02-25 10:49 ?33次下載

    AVR單片機-mega128-例程大全

    AVR單片機-mega128-例程大全
    發(fā)表于 12-29 20:37 ?24次下載

    基于AVR單片機的直流無刷電機智能控制系統(tǒng)設計講解

    基于AVR單片機的直流無刷電機智能控制系統(tǒng)設計講解(西工大現(xiàn)代電源技術)-該文檔為基于AVR單片機的直流無刷電
    發(fā)表于 09-24 16:00 ?2次下載
    基于<b class='flag-5'>AVR</b><b class='flag-5'>單片機</b>的直流無刷電<b class='flag-5'>機智能</b>控制系統(tǒng)設計講解

    基于AVR單片機的直流無刷電機智能控制系統(tǒng)設計

    基于AVR單片機的直流無刷電機智能控制系統(tǒng)設計(開關電源技術與設計潘永雄.pdf)-該文檔為基于AVR單片機的直流無刷電
    發(fā)表于 09-24 16:44 ?6次下載
    基于<b class='flag-5'>AVR</b><b class='flag-5'>單片機</b>的直流無刷電<b class='flag-5'>機智能</b>控制系統(tǒng)設計

    51單片機AVR單片機

    51單片機AVR單片機區(qū)別于不同區(qū)別于不同51單片機本身種類繁多,各種國產變種,增強型51等等。他們都是INTEL的80C51內核,經(jīng)典但是老51
    發(fā)表于 11-11 17:36 ?18次下載
    51<b class='flag-5'>單片機</b>與<b class='flag-5'>AVR</b><b class='flag-5'>單片機</b>

    基于AVR128單片機搶答器仿真設計

    基于AVR128單片機搶答器仿真設計
    的頭像 發(fā)表于 08-29 15:58 ?746次閱讀
    基于<b class='flag-5'>AVR128</b><b class='flag-5'>單片機</b>搶答器仿真設計