


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序源代码#include<REGX51.H>/51寄存器定义#include"intrins.h"#definecontrolP1/P1_0:A相,P1_1:B相,P1_2:C相,P1_3:D相#definediscodeP0/显示代码控制端口#defineucharunsignedchar定义无符号型变量#defineuintunsignedintsbiten_dm=P3A0;显示代码锁存控制sbiten_wk=P3A1;位控锁存控制ucharcodecorotation4=(0x03,0x06,0x0c,0x09;/电机正转ucharcoderoll
2、back4=0x0c,0x06,0x03,0x09;/电机反转ucharcodetab10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/显示字段uintcodeLevspeed5=500,400,300,200,100;/电机速度等级ucharHscan,speedcount;/Hscan行扫描,speedcount速度等级计数uintuu;频率计数uintstep,setstep;/step:电机步伐计数,setstep:手动设置电机步伐uintspeed=500;电机初始速度ucharcount;ucharflag5;ucharbu
3、tcount;按键次数*/flag0正转标志/flag1反转标志/flag2加速标志/flag3减速标志/flag4设置标志/*Delay1mS(unsignedinttt)延时1ms“Delay1mS延时子程序,用循环语句延时。unsignedchari;while(tt-)for(i=113;i>0;i-);keyscan()键盘扫描"keyscarif盘扫描子程序,用于寻找是否有按键按下。P2=0xf0;把oxfe赋值给P2口将按键控制口置于未按键的状态.单片机输出口假设不是按键按下状态.if(P2!=0xf0)如果P2口的值不等于0xfe/检查是否有按键按下.如果有,处
4、理内的事(有按键按下.Delay1mS(150);/调用延时函数有按键按下,避开无效读码值的时间.,或者是脉冲长度Hscan=0xfe;/将Hscan赋值,初始遥控值是要置高电平的.P2=Hscan;/while(Hscan&0x10)!=0)检查X10口是否有键按下。未按下是1,在这显示出你的按键口是P2_4.即检查P2_4是高电平,无键按下,低电平有键按下。(P2=Hscan;if(P2&0xf0)!=0xf0)/检查按键脉冲是否是变化,returnP2;elseHscan=(Hscan<<1)|0x01;这里在存码值,应该是遥控输入。将码值存入Hscan这里是
5、读取码值的关键,如果来的脉冲不管是高电平还是低电平,靠左移一位保存脉冲的状态值.elsereturn0;key_val()按键处理函数这里是读取将存好的码值进行处理.看是什么代码无(ucharkey;key=keyscan();这里是读取码值并存放在key里switch(key)/这里是比照读取的码值(case0xee:/按键7'读取的码值=0xEE,则是按键“确代码/while(P2=0xee);setstep=setstep*10+7;/步伐数这里是输入”setstep+7步伐数比照读取的码值,/setstep原来可能是有数字的。step=setstep;butcount+;计数,
6、看输入拉几个数字if(butcount>=5)输入的数字超过5个就置0,无效(butcount=0;setstep=0;break;case0xde:按键8读版的码值=0xdE,则是按键“明代码其他同”7”/while(P2=0xde);setstep=setstep*10+8;butcount+;step=setstep;if(butcount>=5)(butcount=0;setstep=0;break;case0xbe:/按键9同上”7”/while(P2=0xbe);setstep=setstep*10+9;butcount+;step=setstep;if(butcoun
7、t>=5)(butcount=0;setstep=0;break;case0x7e:/按键正转正转按键识别while(P2=0x7e);/等待按键松开一值按住电机是不转的,放开后才转.有检查/P2口的状态值flag0=0xff;开启正转标志,关闭反转置正转标志.flag1=0x00;活除反转标志.butcount=0;speedcount=0;speed=500;置电机的转速.if(!flag4)step=0;TR0=1;break;case0xed:/按键4'同Zt”7”while(P2=0xed);setstep=setstep*10+4;butcount+;step=set
8、step;if(butcount>=5)(butcount=0;setstep=0;break;case0xdd:按键5同It”7”/while(P2=0xdd);setstep=setstep*10+5;step=setstep;butcount+;if(butcount>=5)butcount=0;setstep=0;break;我上周刚做的这个实验成功拉,给你参考一下吧这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的和ULN2003一样,你把它换成2003就行拉#include<AT89X51.H>unsignedcharcodetable=0xf1,0
9、xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x00;unsignedchartemp,temp_old;unsignedcharkey;unsignedchari,j,k,m,s;voiddelay(inti)for(m=i;m>0;m-)for(j=250;j>0;j-)for(k=10;k>0;k-);voidsaomiao()P3=0xff;P3_4=0;temp=P3;temp=temp&0x0f;if(temp!=0x0f)for(i=50;i
10、>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0x0f;if(temp!=0x0f)temp=P3;temp=temp&0x0f;switch(temp)case0x0e:key=1;break;case0x0d:key=2;break;case0x0b:key=3;break;case0x07:key=4;break;temp=P3;temp=temp&0x0f;while(temp!=0x0f)(temp=P3;temp=temp&0x0f;P3=0xff;P3_5=0;temp=P3;temp=temp&a
11、mp;0x0f;if(temp!=0x0f)(for(i=50;i>0;i-)for(j=200;j>0;j-);temp=P3;temp=temp&0x0f;if(temp!=0x0f)(temp=P3;temp=temp&0x0f;switch(temp)(case0x0d:key=5;break;case0x0b:key=6;break;case0x07:key=7;break;temp=P3;temp=temp&0x0f;while(temp!=0x0f)(temp=P3;temp=temp&0x0f;voidmain(void)(while
12、(1)(saomiao();if(key=1)(P1=0;P2=0;saomiao();if(key=2)(temp_old=key;for(s=0;s<8;s+)(P2=tables;P1_4=0;delay(13);saomiao();if(key!=temp_old)(P1_4=1;break;if(key=3)(temp_old=key;for(s=0;s<8;s+)(P2=tables;P1_5=0;delay(5);saomiao();if(key!=temp_old)(P1_5=1;break;if(key=4)(temp_old=key;for(s=0;s<8
13、;s+)(P2=tables;P1_6=0;delay(20);saomiao();if(key!=temp_old)(P1_6=1;break;if(key=5)(temp_old=key;for(s=9;s<17;s+)(P2=tables;P1_7=0;delay(13);saomiao();if(key!=temp_old)(P1_7=1;break;if(key=6)(temp_old=key;for(s=9;s<17;s+)(P2=tables;P1_5=0;delay(5);saomiao();if(key!=temp_old)P1_5=1;break;if(key=7)temp_old=key;for(s=9;s<17;s+)P2=tables;P1_6=0;delay(20);saomiao();if(key!=temp_old)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45815-2025物流信息服务提供方之间的数据交换要求
- 核酸核苷酸行业深度研究分析报告(2024-2030版)
- 2025-2030年中国瓶装氧气行业深度研究分析报告
- 2025-2030年中国五金机械塑料行业深度研究分析报告
- 餐饮协会培训课件
- 2025年中国农用金属配件行业市场发展前景及发展趋势与投资战略研究报告
- 中国蔬菜基地行业市场发展现状及前景趋势与投资分析研究报告(2024-2030)
- 2025年抖音冲锋衣行业趋势洞察报告
- 2025年 朝阳师范学院高校招聘考试笔试试题附答案
- 2025-2030年中国参茸滋补品行业市场供需态势及前景战略研判报告
- 物流司机奖罚管理制度
- 体裁教学法在高中英语阅读教学中的应用研究-以说明文为例
- 7数沪科版期末考试卷-2024-2025学年七年级(初一)数学下册期末考试模拟卷02
- 人教版(2024)2025年春季学期七年级下册地理期末复习模拟试卷(原卷)
- 2025年全国普通高校招生全国统一考试数学试卷(新高考Ⅰ卷)含答案
- 生物●广东卷丨2024年广东省普通高中学业水平选择性考试生物试卷及答案
- 2025年河南省豫地科技集团有限公司社会招聘169人笔试参考题库附带答案详解析集合
- 2025年中国电风扇行业市场现状、进出口贸易、市场规模预测报告
- 智能建造技术概述
- 重庆市渝北区名校2025届生物七下期末复习检测模拟试题含解析
- 扬州印象城市介绍旅游宣传
评论
0/150
提交评论