文档详情

C51单片机数字控制.ppt

发布:2017-07-04约2.9千字共55页下载文档
文本预览下载声明
任务六 带时间显示的交通灯; 教学内容 单片机控制数码管 数组 教学目标 掌握数码管的控制方法 掌握数组的应用;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() {
显示全部
相似文档