电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

七段数码管显示试验VIP免费

七段数码管显示试验_第1页
1/15
七段数码管显示试验_第2页
2/15
七段数码管显示试验_第3页
3/15
单片机实验报告实验九七段数码管显示实验一、实验目的1.学习七段数码管的工作原理;2.学习数码管与8051单片机的接口方法;3.掌握动态扫描显示技术。二、实验原理如图所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法:1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。实验中使用的LED显示器为共阴极接法2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表所示。表共阴极LED数码管字形代码图共阴极接法共阳极接法字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DHC39H106H707Hd5EH25BH87FHE79H34FH96FHF71H466HA77H灭00H56DHb7CH*实际上试验中使用的是共阳极数码管,这里就不一一列出。2、动态显示按图(b)连接线路,通过交替选中LED1和LED0循环显示两位十进制数。七段数码管段码连接不变,位码驱动输入端S1、S0接8255AC口的PC1、PC0,通过C口的这两位交替输出1和0,以便交替选中LED1和LED0,从而实现两位十进制数的交替显示。请编程实现在两个LED数码管上循环显示0099,程序流程图如图(b)所示。(a)静态显示程序流程图(b)动态显示程序流程图图十位数的段码至A口个位数的段码至A口开始开始返回DOS返回DOS延时并修改要显示的数字三、实验电路图第一部分电路图:第二部分电路图:四、实验设备微型计算机、单片机仿真器、实验仪、示波器(各一台);实验连线(若干)。五、实验内容*由于汇编语言程序中已经做了相应的注释,C语言的编程原理与之相同处不再做重复注释,仅作个别注释,请见谅。1.编程在8位数码管上面显示“”8个数字,每经过1秒8个数字循环左移一位显示。依次为:1234578、、.......汇编语言程序代码:ORG0000HSTART:MOVR4,#00HFLASH:MOVR2,#01HMOVR0,#30HMOVDPTR,#TABFLA;把字形表首地址给外部寻址寄存器LOPFLA:MOVA,R2;输出位型MOVP2,AMOVA,@R0MOVCA,@A+DPTR;在程序段中查表得到字形MOVP1,A;输出字形MOVR3,#0DJNZR3,$;循环等待延时MOVP1,#0FFH;关显示MOVA,R2;位型左移一位RLAMOVR2,AINCR0;下一个字形CJNER0,#38H,GOONMOVR0,#30HGOON:CJNEA,#01H,LOPFLA;若已经显示一遍则初始化INCR4CJNER4,#7FH,GOON1MOVA,30H;显示表左移更新MOV30H,31HMOV31H,32HMOV32H,33HMOV33H,34HMOV34H,35HMOV35H,36HMOV36H,37HMOV37H,AMOVR4,#00HGOON1:AJMPFLASHTABFLA:;字形表DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90H,88HDB83H,0C6H,0A1H,86H,8EHENDC语言程序代码:#include<>dataunsignedchardisadd_at_0x30;constunsignedcharLED_TAB[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};dataunsignedcharj;voiddelay(){unsignedchari=0xFF;while(i--){;}}voidchange_s(){unsignedchar*k;unsignedcharm;k=&disadd;m=*k;//显示表移位*k=*(k+1);*(k+1)=*(k+2);*(k+2)=*(k+3);*(k+3)=*(k+4);*(k+4)=*(k+5);*(k+5)=*(k+6);*(k+6)=*(k+7);*(k+7)=m;j=0x00;//计数值初始化}main(){unsignedchari;unsignedchardisbit;unsignedchar*disnum,*n;SP=0x40;j=0x00;n=&disadd;*(n)=0x01;//显示设置初值为1~8*(n+1)=0x02;*(n+2)=0x03;*(n+3)=0x04;*(n+4)=0x05;*(n+5)=0x06;*(n+6)=0x07;*(n+7)=0x08;while(1){disbit=0x01;disnum=&disadd;for(i=0;i<8;i++){P2=0x00;P1=LED_TAB[*disnum];P2=disbit;dela...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

七段数码管显示试验

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部