一、系統(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ā)光二極管全部熄滅。
二、硬件設計
原理圖如下:
三、單片機軟件設計
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ù)測試沒問題的仿真圖紙,焊接實物,調試,最終完成本設計的作品。
審核編輯 黃宇
-
處理器
+關注
關注
68文章
19376瀏覽量
230443 -
電位器
+關注
關注
14文章
1012瀏覽量
66896 -
AVR128
+關注
關注
0文章
6瀏覽量
5315 -
單片機
+關注
關注
0文章
216瀏覽量
16658
發(fā)布評論請先 登錄
相關推薦
評論