完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 发烧狂 于 2015-5-9 10:36 编辑
跪求大神给调试下这个程序 原理图还没画完 另外参照教程做了一个 ae2501b电机驱动 不知道对不对 求大神再给做一个 这个是百度给的ae2501b的信息http://wenku.baidu.com/view/6444c115f18583d049645972.html #include #include #include #define uchar unsigned char #define uint unsigned int /*---接口定义 ---*/ ***it Menu = P2^5; //菜单选择 ***it TZDJ = P2^4; //停止电机 ***it ZFZ = P2^3; //正反转选择 ***it DJXZ = P2^2;//电机选择 ***it LED_DK1 = P2^1; //数码管段控第1位 ***it LED_DK2 = P2^0; //数码管段控第2位 ***it ADC0832_CS = P1^1; ***it ADC0832_CLK = P1^2; ***it ADC0832_DODI = P1^3; //停止电机 ***it DJ1a = P1^4; //直流电机1控制+ ***it DJ1d = P1^5;//直流电机1控制- ***it DJ2a = P1^6; //直流电机2控制+ ***it DJ2d = P1^7;//直流电机2控制- sfr DAT = 0x80; //数码管8位段控数据 sfr JXQ_DAT = 0xB0; //鉴相器8位数据 void Init(); void tzjcl(); void LED_display(); void delay(); uchar Menu_value=0,DJXZ_value=0,ZFZ_value=0,TZD_value=0,TZDJ_value=0; uchar *LED_1,flag=0,ADC0832_Hd,ADC0832_Ld,i,k,ADC0832_dat=100, H_dat=10; /*---主函数---*/ void main(void) { Init(); while(1) { if((Menu=0)||(DJXZ=0)||(ZFZ=0)||(TZDJ=0)) { TH1 = 0xfc; TL1 = 0x18; TR1=1; } LED_display(); } } void Init() { ADC0832_CS = 1; LED_1=&ADC0832_dat; TMOD=0x10; TH1 = 0xfc; TL1 = 0x18; EA=1; ET1=1; TR1=0; } /*---按键判断与处理程序---*/ void t1(void) interrupt 3 using 0 { TR1=0; flag=flag+1; if(flag=1) { if(Menu=0) { if(Menu_value!=2) Menu_value=Menu_value+1; else Menu_value=0; } if(DJXZ=0) { if(DJXZ_value!=1) DJXZ_value=DJXZ_value+1; else DJXZ_value=0; } if(ZFZ=0) { if(ZFZ_value!=1) ZFZ_value=ZFZ_value+1; else ZFZ_value=0; } if(TZDJ=0) { if(TZDJ_value!=1) TZDJ_value=TZDJ_value+1; else TZDJ_value=0; } loop:if((Menu=1)&&(DJXZ=1)&&(ZFZ=1)&&(TZDJ=1)) { TH1 = 0xfc; TL1 = 0x18; TR1=1; flag=1; } else goto loop; } if(flag=2) { if((Menu=1)&&(DJXZ=1)&&(ZFZ=1)&&(TZDJ=1)) { flag=0; tzjcl(); } else goto loop; } } /*---塔吊运行程序---*/ void tzjcl() { if(Menu_value=0) //运行电机 { if(TZDJ_value=0) { if(DJXZ_value=0) { if(ZFZ_value=0) { DJ1a = 1; DJ1d = 0; } else { DJ1a = 0; DJ1d = 1; } } else { if(ZFZ_value=0) { DJ2a = 1; DJ2d = 0; } else { DJ2a = 0; DJ2d = 1; } } } else { DJ1a = 0; DJ1d = 0; DJ2a = 0; DJ2d = 0; } } if(Menu_value=1) //测量物重 { loop:ADC0832_Hd= 0; ADC0832_Ld= 0; k= 0; _nop_ (); ADC0832_CS = 0; _nop_ (); ADC0832_CLK = 0; _nop_ (); _nop_ (); ADC0832_CLK = 1; ADC0832_DODI = 1; _nop_ (); _nop_ (); ADC0832_CLK = 0; _nop_ (); _nop_ (); ADC0832_CLK = 1; ADC0832_DODI = 0; _nop_ (); _nop_ (); ADC0832_CLK = 0; _nop_ (); _nop_ (); ADC0832_CLK = 1; _nop_ (); _nop_ (); ADC0832_CLK = 0; _nop_ (); _nop_ (); for(i=0;i<8;i++) { ADC0832_CLK = 1; _nop_ (); _nop_ (); ADC0832_CLK = 0; _nop_ (); _nop_ (); ADC0832_Hd |= ADC0832_DODI; ADC0832_Hd<<=1; } for(i=0;i<8;i++) { ADC0832_CLK = 1; _nop_ (); _nop_ (); ADC0832_CLK = 0; _nop_ (); _nop_ (); k|= ADC0832_DODI; k<<=i; ADC0832_Ld |= k; } ADC0832_CLK = 1; _nop_ (); _nop_ (); ADC0832_CS = 1; ADC0832_CLK = 0; _nop_ (); _nop_ (); if(ADC0832_Hd=ADC0832_Ld) { ADC0832_Hd=ADC0832_dat; LED_1=&ADC0832_dat; } else goto loop; } if(Menu_value=2) //测量高度 { H_dat=(JXQ_DAT/16)*10+(JXQ_DAT%16); LED_1=&H_dat; } } /*---显示函数---*/ void LED_display() { uchar code table[10]= { 0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f }; //数码管段码,分别为0到9. uchar code table2[8]={0x01,0x02}; // 数码管位空序列 uchar table1[2]; table1[0]=*LED_1%10; table1[1]=*LED_1/10; LED_DK1=table2[0]; delay(); DAT=table[table1[1]]; LED_DK2=table2[1]; delay(); } /*---延时函数---*/ void delay() { uchar i,j; for(i=200;i>0;i++) { for(j=200;j>0;j++); } } |
|
相关推荐
8个回答
|
|
警告的话 可以不用管
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
前些天把元器件自制出来了,后来发现需要模型才能用 后来放弃了 |
|
|
|
|
|
|
|
做完了吗?543490321
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2619 浏览 3 评论
3946 浏览 1 评论
4198 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
5918 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1156 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-20 00:49 , Processed in 0.911598 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号