久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

單片機(jī)+8255課程設(shè)計(jì)遇到的問題,求助!

查看數(shù): 3357 | 評(píng)論數(shù): 4 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-9-27 18:22

正文摘要:

遇到兩個(gè)問題    1.擴(kuò)展口的PA口無法使用,我設(shè)定的程序是當(dāng)P2.0口為低電平時(shí)將PA口循環(huán)輸出信號(hào)經(jīng)過光耦和驅(qū)動(dòng)電路使得電機(jī)轉(zhuǎn)動(dòng),但是無法實(shí)現(xiàn)。已經(jīng)定義了這些不知道缺少了什么; #include<reg51.h ...

回復(fù)

ID:402376 發(fā)表于 2018-9-28 15:46
sxhwdz 發(fā)表于 2018-9-28 07:22
地址鎖存器74S373的輸入端順序接反了,CPU的 P0.0~P0.7 依次連接了 373的 D7~D0,所以8255的地址全錯(cuò)了。把 ...

謝謝       這個(gè)問題解決了
ID:387733 發(fā)表于 2018-9-28 07:22
地址鎖存器74S373的輸入端順序接反了,CPU的 P0.0~P0.7 依次連接了 373的 D7~D0,所以8255的地址全錯(cuò)了。把連線換過來,或者把地址定義改一下:
#define PA XBYTE[0x0000]
#define PB XBYTE[0x0080]
#define PC XBYTE[0x0040]
#define COM XBYTE[0x000C]
這樣也是可以的
ID:402376 發(fā)表于 2018-9-27 18:25
#include<reg51.h>
#include<absacc.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define PA XBYTE[0x0000]
#define PB XBYTE[0x0001]
#define PC XBYTE[0x0002]
#define COM XBYTE[0x0003] //PA、PB、PC端口及命令端口地址定義
#define motor1 PA
#define        motor2 PB
sbit RS = P3^5;        //液晶引腳定義
sbit RW = P3^3;
sbit EN = P3^4;
sbit Xqj=P2^0;   //電機(jī)正轉(zhuǎn),X軸前進(jìn)按鈕
sbit Yqj=P2^1;   //電機(jī)正轉(zhuǎn),Y軸前進(jìn)按鈕
sbit Xht=P2^2;   //電機(jī)反轉(zhuǎn),X軸后退按鈕
sbit Yht=P2^3;   //電機(jī)反轉(zhuǎn),Y軸后退按鈕
sbit jiting=P2^4;//急停按鈕
sbit dula=P2^6;         
sbit wela=P2^7;         
bit flag1=0;     //x軸正反轉(zhuǎn)標(biāo)志位
bit flag2=0;     //Y軸正反轉(zhuǎn)標(biāo)志位  
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0xf8,0x80,0x90};//共陽極數(shù)碼管編碼
uchar code a1[]={0xf2,0xfa,0xf8,0xf9,0xf1,0xf5,0xf4,0xf6}; //八拍正轉(zhuǎn)
uchar code a2[]={0xf6,0xf4,0xf5,0xf1,0xf9,0xf8,0xfa,0xf2}; //八拍反轉(zhuǎn)
uchar temp1=0000,temp2=0000,temp3=0000,temp4=0000;
void delayms(uchar x)//延時(shí)程序
{                                                                                               
  uchar c,j;
  for(c=x;c>0;c--)
   for(j=123;j>0;j--);
}

/***********LED寫入命令函數(shù)***********/
void write_com(uchar com)
{
  //while(LCD_Check_Busy()); //忙則等待
  RS=0;
  P1=com;
  _nop_();
  RW=0;
  EN=1;
  _nop_();
  EN=0;
  _nop_();
}
/**********LED寫入數(shù)據(jù)函數(shù)**********/
void write_dat(uchar chr)
{
  //while(LCD_Check_Busy()); //忙則等待
  RS=1;
  P1= chr;
  _nop_();
  RW=0;
  EN=1;
  _nop_();
  EN=0;
  _nop_();
}
void write_shuzi(uchar dat)
{  
  uchar t;
  t=dat+'0';
  //while(LCD_Check_Busy()); //忙則等待
  RS=1;
  RW=0;
  P1=t;
  _nop_();
  EN=1;
  _nop_();
  EN=0;
}

void GotoXY(uchar x,uchar y)   
{   
   if(y==0)                         //第一行
     write_com(0x80|x);               //寫地址
   if(y==1)                         //第二行
     write_com(0x80|(x+0x40));   
}
/*****LED初始化函數(shù)******/
void LCD_Init()
{
          RW=0;
        dula=0;         //關(guān)閉數(shù)碼管顯示
        wela=0;         //關(guān)閉數(shù)碼管顯示
   write_com(0x38); /*顯示模式設(shè)置*/
   delayms(5);
   write_com(0x06);/*顯示光標(biāo)移動(dòng)設(shè)置*/
   delayms(5);
   write_com(0x0C); /*顯示開及光標(biāo)設(shè)置*/
   write_com(0x01);  /*顯示清屏*/
   }


void dispose()
{
  uchar a,b,bai1,shi1,ge1,bai2,shi2,ge2;
  a=(temp1-temp3)/8*75/36*5;
  b=(temp2-temp4)/8*75/36*5;
  bai1=a%1000/100;
  shi1=a%100/10;
  ge1=a%10;
  bai2=b%1000/100;
  shi2=b%100/10;
  ge2=b%10;
  write_shuzi(bai1);
  GotoXY(7,1);
  write_shuzi(shi1);
  GotoXY(8,1);
  write_shuzi(ge1);
  GotoXY(9,1);
  write_shuzi(bai2);
  GotoXY(7,2);
  write_shuzi(shi2);
  GotoXY(8,2);
  write_shuzi(ge2);
  GotoXY(9,2);
  write_dat('X');
  GotoXY(4,1);
  write_dat(':');
  GotoXY(5,1);
  write_dat('Y');
  GotoXY(4,2);
  write_dat(':');
  GotoXY(5,2);
  if(a<0)
  {
    write_dat('-');
    GotoXY(6,1);
  }
  if(b<0)
  {
    write_dat('-');
    GotoXY(6,2);
  }
}
void key()
{
  if(Xqj==0)
  {
   delayms(5);
   if(Xqj==0)
   {
     flag1=1;
     while(Xqj==0);
   }
  }
  if(Xht==0)
  {
    delayms(5);
    if(Xht==0)
    {
      flag1=~flag1;
      while(Xht==0);
    }
  }
  if(Yqj==0)
  {
    delayms(5);
    if(Yqj==0)
    {
      flag2=1;
      while(Yqj==0);
    }
  }
  if(Yht==0)
  {
    delayms(5);
    if(Yht==0)
    {
      flag2=~flag2;
      while(Yht==0);
    }
  }
}
void qudong()
{
if(flag1==1)
{
  uchar i;
  for(i=0;i<8;i++)          
  {
    if(jiting==0)
    {break;}
    PA=a1[i];
    temp1++;
  }
  i=0;                                 
}
if(flag2==1)
{
   uchar j;
  for(j=0;j<8;j++)          
  {
    if(jiting==0)
    {break;}
    PB=a1[j];
    temp2++;
  }
  j=0;                                 //八拍正轉(zhuǎn)子程序
}
if(flag1==0)
{
  uchar k;
  for(k=0;k<8;k++)          
  {
    if(jiting==0)
    {break;}
    if(Xht==0)
    {PA=a2[k];}
    temp3++;
  }
  k=0;               
}
if(flag2==0)               
{          
  uchar u;
  for(u=0;u<8;u++)
  {
    if(jiting==1)
    {break;}
    if(Yht==1)
    {PB=a2[u];}
    temp4++;
  }                                           //八拍反轉(zhuǎn)轉(zhuǎn)子程序
  u=0;
}
}
void main()
{
COM=0x80;//方式0,PA口與PB口均為輸出
  Xqj=1;  
  Yqj=1;   
  Xht=1;   
  Yht=1;   
  jiting=1;
while(1)
{
  key();
  dispose();
  qudong();
}
}
這是程序
ID:402376 發(fā)表于 2018-9-27 18:23
本帖最后由 LonelyLiar 于 2018-9-27 18:25 編輯

還有LCD總是顯示busy,無法顯示..

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩精品一区二区 | 91最新入口| 欧美极品少妇xxxxⅹ免费视频 | 日本色综合 | 国产精品99久久久久久动医院 | 97超碰站| 欧美精品一区二区三区蜜桃视频 | 久久久久国产精品一区二区 | 在线一区二区三区 | 久久久久久久97 | 欧美久久久| 久久久久国产精品一区二区 | 精品三区 | 久久精品久久综合 | 免费中文字幕 | 国产精品av久久久久久毛片 | 国产一区二区激情视频 | 久久精彩视频 | 中文字幕国产视频 | 日韩在线国产 | av一区二区在线观看 | 国产高清精品一区二区三区 | 国产一区二区精品在线 | 亚洲伊人久久综合 | 欧美一级三级在线观看 | 欧美精品 在线观看 | 亚洲免费在线 | 91电影在线| 小草久久久久久久久爱六 | 午夜在线小视频 | 久久不卡 | 精品久久久久久亚洲国产800 | 国产日产精品一区二区三区四区 | 国产成人久久精品一区二区三区 | 日本一区高清 | 日韩电影一区二区三区 | 色天天综合 | 亚洲精品乱码久久久久久9色 | 欧美日韩在线一区二区 | 老子午夜影院 | 麻豆changesxxx国产 |