单片机原理数码管动态显示实验单片机原理实验报告

{ while(1) { uchar ms; PntTime(); display(); ms++; if( ms >=60){ ms=0; comsec=(comsec+1) % 60; //定义一个计数变量,使其一直保持在60内 } if( comsec <20){ //comsec在20以内时g2、r1亮 sec1=20-comsec; sec2=30-comsec; r1=1;y1=0;g1=0; } if(comsec>=20 && comsec<30){ //comsec在20与30之间时y2、r1亮 sec1=30-comsec; sec2=30-comsec; r2=0;y2=0;g2=1; r1=1;y1=0;g1=0; } if(comsec>=30 && comsec<50){ //g1、r2在comsec增加20内亮 sec1=60-comsec; sec2=50-comsec; r2=0;y2=1;g2=0; r1=0;y1=0;g1=1; } if(comsec>=50){ sec1=60-comsec; sec2=60-comsec; r2=1;y2=0;g2=0; r1=0;y1=1;g1=0; r2=1;y2=0;g2=0; } } } 过程总结: 本实验是将单片机的P2口做为输出口,将四个数码管的七段引脚分别接到P2.0至P2.7.由于电路中采用共阳极的数码管,所以当P2端口相应的引脚为0时,对应的数码管段点亮。程序中预设了数字0-9的段码。由于是让八个数码管显示不同的数值,所以要用扫描的方式来实现。因此可定义扫描函数,接到单片机的P3口。 在实验中,预设的数字段码表存放在数组LedCode中,由于段码表是固定的,因此存储类型可设为code.在Proteus软件中按照要求画出电路,再利用Keil软件按需要实现的功能编写c程序,生成Hex文件,把Hex文件导到Proteus软件中进行仿真。 心得体会: 实验数码管显示程序的编程方法 1)先准备好要显示的数据,放入相应的显示存储单元中。 2)根据要使用的数码管的具体位置来确定扫描初值和扫描方向。 3)根据使用数码管的个数来确定扫描的位数。 4)查表将要显示的数据转换为能使数码管正确显示相对应的段码。 5)分时送段码和位码,数码管开始循环显示。 指导教师评语: 1、完成所有规定的实验内容,实验步骤正确,结果正确; 2、完成绝大部分规定的实验内容,实验步骤正确,结果正确; 3、完成大部分规定的实验内容,实验步骤正确,结果正确; 评定等级:A(优秀) B(良好) C(中等) D(及格) E(不及格) 成绩评定 教师签字 年 月 日 备注: 注:1、报告内的项目或设置,可根据实际情况加以补充和调整 2、教师批改学生实验报告应在学生提交实验报告10日内

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4