电设报告 - 图文(5)

2019-06-02 14:00

TA2CTL = TASSEL_2 + MC_2 + TACLR; // SMCLK, contmode, clear TAR

__bis_SR_register(GIE); //enable interrupts

while(ab1) //扫描到金属后才跳出循环 {//while1 inti=0; ab2++;

if(ab2 == 1000) {

ab2=2; //ab2=9999时向右走,则走完后ab2++后应向左走 }

//ab2是偶数,则水平向左扫描 if((ab2%2) == 0) {//ab2 2 //for test

for(i=200;i>0;i--) //电机走动2000个计数周期 {//for if(ab3 == 1) //水平扫描时10个周期时没有找到金属,则继续水平扫描10个周期,直到满2000个周期 {//ab3==1没检测到金属

motor21(10);//P2口用于水平左走走一次2000用了14.5秒,从右手走起

}//if(ab3 == 1)

if(flag == 1) //每隔1000ms则检测金属 {

scan(); flag =0; } }//for }//ab2 2

//ab2是奇数,则水平向右扫描

if((ab2 % 2)==1) //ab2是奇数,则水平向右扫描 {//ab2 1

for(i=200;i>0;i--) //电机走动2000个计数周期 {//for

if(flag == 1) //每隔500ms则检测金属 {

scan(); flag = 0; }

if(ab3 == 1) //水平扫描时10个周期时没有找到金属,则继续水平扫描10个周期,直到满2000个周期 {//ab3==1没检测到金属

motor22(10); //P2口用于水平右走走一次2000用了14.5秒,从左手走起

}//if(ab3 == 1) }//for }//ab2

if(ab3 == 1)//左或右扫描都没有找到硬币,则向前走一步 {

motor2(33); //P4口用于垂直往前走一次走4厘米,走10次 }

}//while(ab1 == 1)

}//main主函数标号

//定义求余显示函数:将16位二进制整型数据,转换为5位十进制数据并在液晶102x6上分别显示出来

externvoidTrans_val(unsignedintHex_Val,intnum) {

unsignedinta,b,c,d,e;

uint8_t ptr0[5]; //用于保存转换好的十进制结果 a = Hex_Val; //万位数 b = a000; //千位数 c = b00; //百位数 d = c0; //十位数 e = d; //个位数

ptr0[0] = a/10000;

ptr0[0] = ptr0[0] + 0x30; ptr0[1] = b/1000;

ptr0[1] = ptr0[1] + 0x30; ptr0[2] = c/100;

ptr0[2] = ptr0[2] + 0x30; ptr0[3] = d/10;

ptr0[3] = ptr0[3] + 0x30; ptr0[4] = e;

ptr0[4] = ptr0[4] + 0x30;

switch (num) {

case 1:

Dogs102x6_stringDraw(0, DOGS102x6_DRAW_NORMAL);

Dogs102x6_clearRow(1); //Dogs102x6_stringDraw(1, DOGS102x6_DRAW_NORMAL);

0, \0, ptr0, Dogs102x6_charDraw(1,0,ptr0[0],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(1,6,ptr0[1],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(1,12,ptr0[2],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(1,18,ptr0[3],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(1,24,ptr0[4],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上 break; // case 2:

//Dogs102x6_stringDraw(2, 0, \DOGS102x6_DRAW_NORMAL);

Dogs102x6_stringDraw(2, 0, \DOGS102x6_DRAW_NORMAL);

Dogs102x6_clearRow(3); //Dogs102x6_stringDraw(3, 0, ptr0, DOGS102x6_DRAW_NORMAL);

Dogs102x6_charDraw(3,0,ptr0[0],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(3,6,ptr0[1],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(3,12,ptr0[2],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(3,18,ptr0[3],DOGS102x6_DRAW_NORMAL);

//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(3,24,ptr0[4],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上 break; // case 3:

Dogs102x6_stringDraw(4, 0, \DOGS102x6_DRAW_NORMAL);

//Dogs102x6_stringDraw(4, 0, \DOGS102x6_DRAW_NORMAL);

Dogs102x6_clearRow(5); //Dogs102x6_stringDraw(5, 0, ptr0, DOGS102x6_DRAW_NORMAL);

Dogs102x6_charDraw(5,0,ptr0[0],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(5,6,ptr0[1],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(5,12,ptr0[2],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(5,18,ptr0[3],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上

Dogs102x6_charDraw(5,24,ptr0[4],DOGS102x6_DRAW_NORMAL);//将一个字符写入确定行列的LCD液晶显示屏上 break; // case 4:

Dogs102x6_stringDraw(6, 0, \DOGS102x6_DRAW_NORMAL);

Dogs102x6_clearRow(7); //Dogs102x6_stringDraw(7, 0, ptr0,


电设报告 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江苏无锡金桥双语实验学校2016小升初考试语文真题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: