基于AVR128单片机智能传送装置

一、系统方案
1、板载可变电阻(电位器)r29的电压作为处理器atmega128的模数转换模块中单端adc0的模拟信号输入(跳线jp13短接)。
2、调节电位器,将改变ad转换接口adc0的模拟信号输入,由处理器完成adc0的a/d转换。
3、将处理器通过a/d转换后得到的电压信号来模拟“货物”的重量。假定转换得到的电压信号与“货物”重量具有线性关系,例:电压2.5v时,货物重量为500kg,电压为0v时,传送装置空载。
4、将转换得到的电压及对应的“货物”重量通过7段数码管led或液晶显示屏或pc串口显示。
5、使用板载4*4矩阵键盘中的四个按键号分别为a-d的4个按键和8个发光二极管d1-d8。
a键为传送装置启动按键,按下后,板载发光二极管d1亮,表示传送装置启动。
b键键为正向传送控制键,在a启动后b才有效,b按下后,发光二极管d2-d8从左到右依次循环点亮,表示“传送装置”开始正向传送货物。
c键为反向传送控制键,同样在a启动后才有效,c按下后,发光二极管d2-d8从右到左依次循环点亮,表示“传送装置”开始反向传送货物。
d键为停止键,d按下后, “传送装置”停止工作,所有发光二极管全部熄灭。
二、硬件设计
原理图如下:
三、单片机软件设计
1、首先是系统初始化
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()//液晶接收数据
{
   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软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。


LoRa在中国还有发展的机会吗
初识HarmonyOS
三相六拍通电方式工作原理
电脑蓝屏代码0x0000000a的原因与解决方法
华为p50e怎么样值得买吗
基于AVR128单片机智能传送装置
泰斯科电子TK2683绝缘电阻测试仪分享
典型超再生无线电接收电路图
Wi-Fi HaLow将推动物联网发展的十大原因
小米6、小米max2同时发!小米6备货达630万,能抢到吗?
中兴FTTR全屋光纤组网方案的优势
2020 LF AI &DATA DAY(AI开源日):中国开源社区迈入全球化新征程
如何判别晶闸管损坏原因
华为已经正式确认9月6日,将推出新一代麒麟处理器
诺基亚8新旗舰机将发布,三星S8将首次使用背部指纹解锁
地板清洁必备神器,日本由利电动拖把带你智享洁净生活
蓝牙耳机听歌哪个牌子好,听歌音质好平价蓝牙耳机
反击小米 三星在印度设最大手机工厂
程序员应该怎样提高工作效率
高通Zeroth:脑启发计算