文档介绍:: .
成绩
批阅教师
日期
民明理Z大岁城市学院CITYCOLLEGEeucharunsignedchar#defineuintunsignedintsbitS1=P3A6;sbitS2=P3A7;voiddelay(ucharxms)(
uinti,j;
for(i=xms;i>0;i--)for(j=110;j>0;j--);}voidmain()(
uchara,b,c,d;
a=0xfe;
c=0x7f;
while(1)
(if(S1==0)(delay(5);if(S1==0)(for(b=0;b<8;b++)(P1=a;a=_crol_(a,1);delay(100);}}}if(S2==0)(delay(5);if(S2==0)(for(d=0;d<8;d++)(P1=c;c=_cror_(c,1);delay(100);}}}
}}
实验三数码管显示程序设计
一、实验目的与要求
1、认识单片机的数字显示电路结构原理及工作过程;
2、了解静态、动态显示的驱动方法;
3、学习静态、动态显示数字程序的编写及调用方法;二、实验设备
计算机、编程器、目标板、单片机AT89S51三、实验原理电路
实验电路如下图所示:
土10uF
20
9OiQfcAT89S51
实验电路如下图所示。
图中,———dp显示段码,即字形码;——,用来控制在第几位显示。LED为共阳极。
I/O口分配及硬件连线表:
P1AC^P1A7
LED"LED8
P2&—P2A7
Q"Q6
+5V
+5V
GND
GND
四、实验内容与步骤
1、编写一位数码显示程序(静态);
2、编写多位数码管动态扫描显示;
3、调整显示参数和模式,改变显示效果。
五、流程图及程序活单
1、流程图
2、静态显示参考程序:
#include<>#defineuintunsignedint#defineucharunsignedcharvoiddelayms(uintxms)(uinti,j;
for(i=xms;i>0;i--)for(j=110;j>0;j--);}ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,//数码管显示编码(1-F)0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voidmain(){uinta1;
a1=0;
P2=0x0f0;
while(1)
{P0=table[a1];delayms(500);a1=a1+1;if(a1==16)a1=0;
}}
动态显不'参考程序:
//位选的四位也是反方向的#include<>#defineuintunsignedint#defineucharunsignedcharvoiddelayms(uintxms){uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,//数码管显示编码(1-F)0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voiddisplay(uchara,ucharb,ucharc,uchard){P0=table[a];P2=0xfe;delayms(5);P0=table[b];P2=0xfd;delayms(5);P0=table[c];P2=0xfb;delayms(5);P0=table[d];P2=0xf7;delayms(5);}voidmain(){uchara,b,c,d;a=0;b=1;c=2;d=3;while(1){uinti;for(i=100;i>0;i--)display(a,b,c,d);a++;b++;c++;d++;if(a==16)a=0;if(b==16)b=0;if(c==16)c=0;if(d==16)d=0;}}实验四脉冲计数实验
一、实验目的与要求
1、熟悉51单片机定时/计数功能;
2、掌握定时/计数器初始化编程方法。
二、实验设备
计算机、编程器、目标板、单片机AT89S51三、实验原理电路
实验电路如下图所示: