单片机课程设计感想 单片机课程设计心得体会范文1000字
各位老铁们好,相信很多人对单片机课程设计感想都不是特别的了解,因此呢,今天就来为大家分享下关于单片机课程设计感想以及单片机课程设计心得体会范文1000字的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

单片机课程设计的目的
1.熟练掌握C51系统仿真开发系统的应用。
2.加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。
3.掌握的液晶的工作原理以及应用设计。能够对液晶芯片进行编程。
4.掌握小系统开发设计的流程以及设计思路。
单片机课程设计
C语言的,采用51单片机,矩阵键盘,外接HC57C,6个数码管,调时间采用中断模式。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x67,
0x77,0x7c,0x39,0x5e,0x79,
0x71};
uchar i,j,k,AA,BB0,BB,CC,ta,tc,kr4,keynumb,m,flag,flag1,t0,t;
uchar shi,fen,miao;
uint x;
uchar dispbuf[2];
float tt;
uchar keysearch(void)
{P3=0xf0;
m=P3;
m=~m;
m=m&0xf0;
return m;
}
uchar scankey(void)
{ta=keysearch();
if(ta==0) return 0x8f;
else
delay(20);
ta=keysearch();
if(ta==0) return 0x8f;
else
{ta=0xef;
for(kr4=0;kr4<4;kr4++)
{P3=ta;
tc=P3;
if((tc&0x01)==0) keynumb=kr4+0;
if((tc&0x02)==0) keynumb=kr4+4;
if((tc&0x04)==0) keynumb=kr4+8;
if((tc&0x08)==0) keynumb=kr4+12;
ta=ta<<1;ta++;
}
if(flag1==0)
{dispbuf[2]=dispbuf[1];
dispbuf[1]=dispbuf[0];
flag1++;
}
}
return keynumb;
}
void display(uchar q_c,uchar b_c,uchar sh_c,uchar g_c)//显示子程序
{dula=0;
P0=table[q_c];
dula=1;
dula=0;
wela=0;
P0=0xfb;
wela=1;
wela=0;
delay(5);
P0=table[b_c];
dula=1;
dula=0;
P0=0xf7;
wela=1;
wela=0;
delay(5);
P0=table1[sh_c];//点亮十位,显示字符送缓存
dula=1;
dula=0;
P0=0xef;//选中十位
wela=1;
wela=0;
delay(5);
//点亮个位
P0=table[g_c];
dula=1;
dula=0;
//选中个位
P0=0xdf;
wela=1;
wela=0;
delay(5);
}
void display1(uchar b_c,uchar sh_c,uchar g_c,uchar t)//显示子程序
{uchar b1_c,b2_c,sh1_c,sh2_c,g1_c,g2_c,t1,t2,t3;
if(flag!=0)
{
if(flag==1)
{t1=t;t2=1;t3=1;}
if(flag==2)
{t1=1;t2=t;t3=1;}
if(flag==3)
{t1=1;t2=1;t3=t;}
}
else
t1=t2=t3=t;
b1_c=b_c/10;
b2_c=b_c%10;
dula=0;//点亮时位第一位
P0=table[b1_c];
dula=1;
dula=0;
wela=0;
P0=0xfe;
wela=t1;
wela=0;
delay(15);
//点亮时位第二位
P0=table[b2_c];
dula=1;
dula=0;
P0=0xfd;
wela=t1;
wela=0;
delay(15);
sh1_c=sh_c/10;
sh2_c=sh_c%10;
P0=table[sh1_c];//点亮分位第一位
dula=1;
dula=0;
P0=0xfb;
wela=t2;
wela=0;
delay(15);
P0=table[sh2_c];//点亮分位第二位
dula=1;
dula=0;
P0=0xf7;
wela=t2;
wela=0;
delay(15);
g1_c=g_c/10;
g2_c=g_c%10;
P0=table[g1_c];//点亮秒位第一位
dula=1;
dula=0;
P0=0xef;
wela=t3;
wela=0;
delay(15);
P0=table[g2_c];//点亮秒位第二位
dula=1;
dula=0;
P0=0xdf;
wela=t3;
wela=0;
delay(15);
}
void INIT_TMR0(void)//定时器中断0,功能键S1引起中断,按S1时使时,分,秒位闪烁
{TMOD=0x66;
TL0=0xff;
TH0=0xff;
TR0=1;
}
void INIT_TMR0INT(void)
{ET0=1;
EA=1;
}
void TMR0_INT_SRV(void) interrupt 1
{flag++;
TL0=0xff;
TH0=0xff;
if(flag>3)
flag=0;
}
void INIT_TMR1(void)//定时中断0,功能键S2引起中断,按S2时使闪烁位增1
{TL1=0xff;
TH1=0xff;
TR1=1;
}
void INIT_TMR1INT(void)
{ET1=1;EA=1;}
void TMR1_INT_SRV(void) interrupt 3
{TL1=0xff;
TH1=0xff;
if(flag!=0)
{
if(flag==1)
{shi++;
if(shi>23)
shi=0;}
if(flag==2)
{fen++;
if(fen>59)
fen=0;}
if(flag==3)
{miao++;
if(miao>59)
miao=0;}
}
}
void work(void)//电子表工作程序
{uchar a;
for(a=50;a>0;a--);
miao++;
if(miao>59)
{miao=0;
fen++;}
if(fen>59)
{fen=0;
shi++;}
if(shi>23)
{shi=0;}
}
void main(void)
{uchar d;
INIT_TMR0();
INIT_TMR0INT();
INIT_TMR1();
INIT_TMR1INT();
while(1)
{flag1=0;
keysearch();
while(m!=0)
{scankey();
LED0=m;
beep=0;
}
beep=1;
t0=keynumb;
if(t0==15)
{enter();}
for(d=100;d>0;d--)
{display(dispbuf[2],dispbuf[1],dispbuf[0],0);}
LED1=1;
dispbuf[0]=keynumb;
}
}
单片机课程设计心得体会范文1000字
做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。
我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最后答辩的时候他们一起坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自己都不知道自己在说怎么,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10天的人最后的成绩都有不如他们的),但是鄙视他们的做法。
所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序(他们组也只有他一个人动手),看他边做边给我讲解。最后在开发机上做出来的时候,虽然不是我自己写的,但看他那么高兴,我也有一种分享到的成就感。后来我们组就用了他写的程序,他自己又抽空做了些拓展。
接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不同的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮助我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大家都鼓励我,即使最后出不来东西,但是一定要坚持把它做完。当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。
在要验收前,终于做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最后应该还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西现在记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,a/d转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当中的疑惑。在这个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手……算了吧,不要想那些如果,还是准备我自己的,做好我现在能做的吧。
还好,验收还算成功,得了3分,不是很高,但是我觉得对我来说已经很好,代表了我真实的水平,我觉得我对单片机的一些知识在这个动手的过程中真的是从无到有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有些人付出的是努力,有些人付出的是风险代价,其实这也没有什么不一样,这一点我早就了解。
最后,我发现自己对单片机竟然也有了一点兴趣,想暑假回家以后自己去买一些东西来做,再补一补汇编语言。有什么问题请教下以前的那些老同学好了,他们好厉害,在高中劳动课就成功的做出过调频收音机,大一暑假的时候参加了学校的电子竞赛培训接着比赛,不过后来怎么样我就不知道了。汗。看来要多保持联络,这次回家就好好找他们叙叙旧。
单片机课程设计感想的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于单片机课程设计心得体会范文1000字、单片机课程设计感想的信息别忘了在本站进行查找哦。