C51单片机数字控制.ppt
文本预览下载声明
任务六 带时间显示的交通灯; 教学内容
单片机控制数码管
数组
教学目标
掌握数码管的控制方法
掌握数组的应用;1.LED显示器结构
LED显示器内部由多个发光二极管组成。 ;显示字形与字段码关系 ; LED数码管显示字形与字段码关系 ;com;3.LED数码显示方式及控制电路;(1)静态显示方式;74LS373;3.LED数码显示方式及电路 ;字段码;并行口静态显示电路 ;(2) 4位LED动态显示电路 ;轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。;(2)动态显示方式;(2)动态显示方式;6.2 数组--构造数据类型;6.2 数组--构造数据类型;6.2 数组;6.2 数组;例如:
int num[3]={30,21,1};//整数数组char LCM[9]=“Testing.”;//此字符数组相当于字符串;6.2 数组;int a[5]={1,2,3};
系统为其余元素赋0
;Example;6.2 数组;unsigned char a[10]={1,2,3,4,5};
char string1[]=“Welcome to china.”;
unsigned char a[]={1,2,3,4,5};
unsigned char a[10];;
;单个数码管连续显示0-9如何编程实现?;#includereg51.h
unsigned char seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void main()
{ unsigned int i, j;
while(1)
{
for(i=0;i10;i++)
{
P0=seg[i];
for(j=50000;j0;j--);
}
}
};实例6-2 数码管静态显示案例 利用下图,在三个数码管中分别显示0~2。;实例6-2 数码管静态显示案例;实例6-3 动态显示案例 利用下图实现从左至右分别显示0~3共4个数字。;实例6-3 数码管动态显示;第十一周上机任务:;本周四上机题目;二维数组;x[0][0] x[0][1] x[0][2]
x[1][0] x[1][1] x[1][2];(1)分行对二维数组初始化;a[3][4]=3;
a[1,2]=1;;用二层循环语句处理数组,通常外循环控制行,内循环控制列。;6.2 数组;很多场所需要用点阵图形显示器显示数字、字母或汉字,不论显示图形还是文字,都是控制组成这些图形或文字的各个点所在位置相对应的LED器件发光。
通常事先把需要显示的图形文字转换成点阵图形,其显示方式是先根据所需要的字符提取字符点阵,将点阵文件存入ROM,形成字符编码;由字符编码组成语句;使用时,单片机按照语句顺序提取编码送出到点阵显示。
LED点阵中要??到的一个典型数据结构就是二维数组。 ;LED阵列的连接:把同一列阳极连接在一起,同一行的阴极连在一起;6.2 数组;6.2 数组;6.2 数组;常用LED阵列有5×7 LED、 5×8 LED、 8×8 LED;实例6-4 用二维数组实现LED点阵0~9的显示;#includereg51.h
unsigned char code digit_code[10][5]= {
{0x41,0x3e,0x3e,0x3e,0x41}, //0
{0x7f,0x3d,0x00,0x3f,0x7f}, //1
{0x3d,0x1e,0x2e,0x36,0x39}, //2
{0x5d,0x3e,0x36,0x36,0x49}, //3
{0x67,0x6b,0x6d,0x00,0x6f}, //4
{0x58,0x3a,0x3a,0x3a,0x46}, //5
{0x43,0x35,0x36,0x36,0x4f}, //6
{0x7e,0x0e,0x76,0x7a,0x7d}, //7
{0x49,0x36,0x36,0x36,0x49}, //8
{0x79,0x36,0x36,0x56,0x61} //9
};
unsigned char num=0;
unsigned char colm=0;
void delay();//用于设定每个数之间显示的延时时间
void init_time0();//这是什么函数?
void isr_time0();;void main()
{
init_time0();
while(1)
{
delay();
num =(num +1) %10;
}
}
void delay()
{
显示全部