数码管动态扫描实验一、实验目的学习计数器的设计、分析合测试方法。学习硬件扫描显示电路的设计方法。二、实验仪器1、PC机2、SW-51PROC单片机综合实验平台三、实验内容编写一段程序,用单片机P0口和P2口的I/O输出去控制8位的数码管显示,实现如下功能:使数码管上显示1、2、3、4、5、6、7、8。四、实验步骤:1、用Protues设计数码管动态扫描显示电路;2、在KeilC51中编写识别程序,通过后与Protues联合调试;3、启动仿真,观察数码管显示是否正确;4、用Protues设计脉冲计数电路,仿真调试、运行程序并查看效果。五、电路设计及调试:1、实验电路:2、程序设计与调试:①实验程序:【12345678】#includereg52.h#defineuintunsignedint#defineucharunsignedcharucharcodeDisplsy[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};ucharcodeTemble[]={0,1,2,3,4,5,6,7};voiddelay(uintz){uchart;while(z--)for(t=120;t0;t--);}voidmain(){uchari;P0=0xff;P1=0;while(1){if(i==8)i=0;P1=Temble[i];P0=~Displsy[i+1];i++;delay(2);}}【脉冲计时】#includereg52.h#defineuintunsignedint#defineucharunsignedcharucharcodeDisplay[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};ucharcodeTemble[]={0,1,2,3,4,5,6,7};ucharFlag;uintNum;voiddelay(uintz){uchart;while(z--)for(t=120;t0;t--);}voidTest2(void){TR1=1;while(1){Num=TH1;Num=Num8;Num|=TL1;P1=7;P0=~Display[Num%10];delay(3);P1=6;P0=~Display[Num%100/10];delay(3);P1=5;P0=~Display[Num%1000/100];delay(3);P1=4;P0=~Display[Num%10000/1000];delay(3);P1=3;P0=~Display[Num%100000/10000];delay(3);P1=2;P0=~Display[Num%1000000/100000];delay(3);P1=1;P0=~Display[Num%10000000/1000000];delay(3);P1=0;P0=~Display[Num%100000000/1000000];delay(3);}}voidmain(){TMOD=0x50;TH1=0x00;TL1=0x00;EA=1;ET1=1;TR1=0;while(1){Test2();}}②调试:③实验结果:1、数字1~8分别显示在8个数码管上,显示无闪烁。2、定时/计数器T1统计脉冲的个数,统计结果动态实时的显示在数码管上。七、实验总结专业知识有一定的提高且提高我的综合能力以便在今后社会生活中不但要学会运用所学的知识来解决实际问题而且要不断的通过这次课程设计让我了解了MCS-C51在实际生活中的一些应用单片机步进电机电路的设计及工作原理。让我在学习单片机理论知识同时让我明白了要在实际生活中学会应用提高了我的动手能力要手脑并用。本次设计是通过使用PROTEL软件来进行设计让我熟悉的掌握了此软件的基本操作。本来有些遗忘的知识点通过查参考资料让我对旧的知识有所巩固同时也明白了原来疑惑的地方。让我的专业知识有一定的提高且提高我的综合能力以便在今后社会生活中不但要学会运用所学的知识来解决实际问题而且要不断的