电子琴
高一 记叙文 1725字 189人浏览 活宝赶紧付款

微机原理及应用作业

题目:电子琴

学年:班级:

姓名:

学号:

成绩:

2016年12月10日

一:系统电路(Proteus 截图)

二:程序流程图

三:程序(KEIL 截图)

四:程序 #include <reg51.h> unsigned char code tab[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char t,N,len; sbit beep=P2^7;

void T0_INT()interrupt 1 using 1 { t++; if(t==N) { len--;

t=0; beep=!beep; if(len==0)

TR0=0;

}

}

void main() { unsigned char flag; unsigned char temp; TMOD=0X02;

TL0=56;

TH0=56; ET0=1; EA=1; flag=P1; while(1) { if(flag!=P1) { if(flag>P1)

temp=flag-P1;

flag=P1; switch(temp) {

case 0x01: N=20;

len=40; TR0=1; P0=tab[1]; break;

case 0x02: N=18;

len=50; TR0=1; P0=tab[2]; break;

case 0x04: N=16;

len=60; TR0=1; P0=tab[3];

break;

case 0x08: N=14;

len=70; TR0=1; P0=tab[4]; break;

case 0x10: N=12;

len=80; TR0=1; P0=tab[5]; break;

case 0x20: N=10;

len=90; TR0=1; P0=tab[6]; break;

case 0x40: N=8;

len=100; TR0=1; P0=tab[7]; break;

case 0x80: N=6;

len=110; TR0=1; P0=tab[8]; break;

}

} } }

五:总结

通过本次作大作业,我熟悉了Keil 和Proteus 两个软件的操作方法,还记得刚安装上的时候,一看全是英语,心里不由得产生了怯意,可我知道,再难也得去练,不仅是为了完成车老师布置得作业,而且还得学会他们,为我以后考研以及工作做好准备。因此我先开始抄书上的程序,然后用Keil 来验证正确性,待到自己熟练之后,尝试自己做一些简单的程序,并用Proteus 对程序进行仿真,慢慢的自己感到了熟练。

通过本次大作业,我掌握了用车老师所讲的C51中的相关知识去编写程序。如我用单片机中定时/计数器、LED 显示器与51单片机、函数的调用、变量的赋值以及地址的访问的相关知识编了个6位显示的时钟和4位显示的秒表。尽管刚开始的过程很难,但我却不放弃,我先是到图书馆借了两本单片机应用的实例的参考书,然后在网上自己查找,编完程序后我去找了我们学院大四的老乡帮我查看,后经自己反复再三确认后,用Proteus 进行仿真。

通过本次大作业,我学会如何用Keil 中的AT89C51进行编写程序,学会了Proteus 的仿真,更是将在车老师课上学到的知识加以运用。还记得刚开始上单片机课的时候,自己啥都听不懂,以为自己学不会,但当我哥告诉我单片机非常重要,尤其是国企和外企里面更是运用广泛,让我一定要好好学习。从那时起,我就严格要求自己,无论听懂还是听不懂,我都要跟着车老师的讲课步骤走,就这样、每次上课我都坐在第一排,慢慢下来,我发现自己开始懂得了好多,可见只要坚持下来总是会用收获的。

通过本次大作业,提高了我的逻辑能力,培养了自己严谨的思维方式。原本自己做事随心所欲、慌慌张张,顺序行很差,可在这一段时间的编程之后,我发现自己想事情开始注重顺序了,逻辑能力也有了很大的提高,故而非常感谢学校开了这门课,也更加感谢车老师给我代课,最后也对自己这短时间学习给予肯定。