与上篇文章一样先查询一下共阴极与共阳极数码管数字0到9的数码表:
//共阴极数码管0-9的数码表。
code int SEG_CODE1[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
//共阳极数码管0-9的数码表
code int SEG_CODE2[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
接下来在Keil C51的编程环境中编写代码:
//实验名称:共阳极数码管与共阴极数码管联合使用来循环显示数字00-99。 #includevoid delay(unsigned int uMs) { unsigned int i, j; for(i = 0; i < uMs; i++) { for(j = 0; j < 500; j++); } } //共阴极数码管0-9的数码表。 code int SEG_CODE1[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //共阳极数码管0-9的数码表 code int SEG_CODE2[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //主程序: main() { int i; int j; while(1) { for(i = 0; i < 10; i++) { P0 = SEG_CODE1[i]; //发送数码管的数码;P0口当做循环显示数字的十位。 for(j = 0; j < 10; j++) { P2 = SEG_CODE2[j]; //发送数码管的数码;P2口当做循环显示数字的个位。 delay(200); //延时:数字显示的时间间隔。 } delay(50); //延时:数字显示的时间间隔。 } } }
接下来在Proteus中构建仿真电路图:
构建好仿真电路图后,导入之前编译好的Keil C51的hex文件到单片机中,运行电路查看实验结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)