单片机 - 图文 联系客服

发布时间 : 星期三 文章单片机 - 图文更新完毕开始阅读78d3d75683d049649a665890

}

for (i=0;i<=30000;i++); //延时程序 } P0=0xff;

//全亮

for (i=0;i<=30000;i++); //延时程序 }

实验二 数码管实验

一、实验目的

1、 掌握数码管显示原理(静态显示和动态显示)。 2、 掌握数码管显示编程。

二、设计题目

1. 1、实现数字1~9的循环跳变。

2. 在8位数码管上显示0、1、2、3、4、5、6、7

三、实验原理

数码管是一种半导体发光器件,是MCS-51单片机系统中用得非常多的一种输出通设

备,其基本单元是发光二级管。MCS-51单片机系统中最常使用的是8段数码管。

1、数码管显示原理

agfGNDababcdefgdpabcdefgdp+5V

fegbcdpd·edGNDcdp(a)(b)图4-1 数码管内部原理图

四、硬件电路设计参考

1、单位数码管静态显示

单位静态数码管模块电路及排线接口如图4-2所示。该数码管为共阳极数码管。

(1)、连接方法

用8PIN排线将JP3 与JP10 (单片机I/O P0口)连接,如图4-3所示。 (2)、硬件说明

使用单片机的P0口来驱动单位数码管8个LED,单位数码管是共阳极的,发光二极管的阳极接高电平,故赋P0口相应位为低电平时,就可以驱动数码管某段点亮。

图4-2 共阳极数码管接线图

图4-4 8位共阴极数码管接线图

1).实现数字1~9的循环跳变。 #include unsigned char code

tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; main() {

unsigned char i; unsigned int j;

while(1) {

for(i=0;i<10;i++)

{ //循环

P0=tab[i]; //循环查表 for(j=0;j<=50000;j++); //延时 } } }

2).在8位数码管上显示0、1、2、3、4、5、6、7 #include Unsigned char code

table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; void delay() //延时函数 {

int i,j;

for(i=500;i>0;i--)

for(j=100;j>0;j--); } void main() {

int a;

P1=0xf7; //片选 while(1) {