硬件实验九 八段数码管.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:3 大小:1.3MB 金币:12 举报 版权申诉
预览加载中,请您耐心等待几秒...

硬件实验九 八段数码管.doc

硬件实验九八段数码管.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

12 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

硬件实验九八段数码管实验目的1、了解数码管动态显示的原理。2、了解用总线方式控制数码管显示。3、学习数码管静态显示和动态显示的编程方法。实验内容1、在静态数码管上轮流显示数字0~9.2、在两个4位数码管上动态显示数字0~9.实验连线静态显示:JP10(P0)和JP3用8PIN排线连接起来动态显示:数据端口:JP10(P0)与J12用8PIN排线连接起来。位线端口:JP8(P1口)和JP16用8PIN排线连接。实验说明JP12是2个4位数码管的数据端口。JP3是静态数码管的数据端口。静态显示时,只需将需要显示数据的段码送到P0口,延迟一段时间,将另外一个数据的段码送到P0口即可。动态显示时,需要设置位线。除了上面提到的直接将IO口当作位线的方法,另一种方法是使用138的输出作为位线。138的输出是J15,因此需要用8PIN排线将J15和J16连接起来。而且,138的输入来自于P2.2,P2.3和P2.4,因此需要设置这三个口线的电平以便译码选择某个数码管的位线。实验程序1、静态显示(本实验箱的数码管是共阳极的)://共阳极0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0X88,0X83//共阴极0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F#include<reg51.h>unsignedinti,j,K;voiddelay(){for(i=200;i>0;i--)for(j=1000;j>0;j--);}unsignedcharcodeDAT[10]={0xC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};main(){for(K=0;K<=10;K++){P0=DAT[K];delay();}}2、动态显示:#include<reg51.h>unsignedcharcodetab[8]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07};unsignedcharcodetab2[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharcodetab3[8]={0,1,2,3,4,5,6,7};voiddelay(){unsignedintk,j;for(k=0;k<38000;k++);for(j=0;j<58000;j++);}main(){unsignedchari=0;unsignedcharp;for(i=0;i<8;i++){p=tab3[i];P0=tab[p];P1=tab2[i];delay();}}六、实验结果及现象1、静态显示:显示结果为,数码管上的数字从0到9依次显示,如以下图片所显示。2、动态显示:在两个4位数码管上循环显示数字0~7,现象如以下图片所显示。六、实验心得通过这次实验,对单片机的编程又有了新的进步。我基本了解了数码管动态显示的原理,同时也了解用总线方式控制数码管显示,学习数码管静态显示和动态显示的编程方法。以前在EDA课程实验上也过数码管的显示,但是那时候只是学到了站在数码管外部的角度来使用它,,而这次实验我知道了怎么从内部的来控制数码管,即数码管上显示的数字或者字母可以怎么用单片机语言来控制,让数码管显示。这是一次由内到外的学习。希望在下次实验能有更多的收获。