版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在第6课里,我们讲到数码管的静态显示,利用静态显示法,通过控制位选和段选,可以让数任意几位数码管显示任意字符,但由于所有位数码管的相同的段选全部接在一起,所以只能同时显示相同的数字,例如8位同时显示8字,1、3、5位同时显示3字。但大家想一下,如果我们要让数码管同一时刻显示不同的数字,如图1所示的现象,用静态显示的方法就不能够实现,这里就只能用到动态显示的方法,今天这一节我们主要讲解数码管动态显示的原理的程序实现的方法。图1 数码管同时显示123456 在讲解动态显示方法之前,我们先介绍在种数码管及单片机程序开发过程常用的方法数组编码法。1、数组编码在跟数码管相关的程序中,可以对位进
2、行编码,也可对段进行编码,这里我们以段编码进行讲解。通过第8课的程序我们知道,在位选确定后,要显示数字8时,P0=0x80,显示数字3时P0=0xb0,也就是0xb0,0x80分别可以表示数字3和8,按此方法,我们把在数码管上显示0f,16个数字全部用16制度表示出来,这16个16进制数就称为数码管可显示0f的相应的编码,如图2所示(注意共阳和共阴极数码管相应的编码有所不同,这里以实验板上共阳极的为例)。图2 共阳极数码管编码在编程中,编码的表示方法如下:unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
3、0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e ;这里编码表示的方法与C语言中数组定义的方法基本一样。table是数组名,后面需加,中括号中需加上数组中元素的个数,也可以不写。等号的右边用一个大括号将所有元素包含起来,里面的元素之间用“,”隔开,在大括号外用“;”结束。等号左边的unsigned char 是数据元素的数据类型,这里定义为无符号字符型,也就是元素的值范围只能是0255之间。Code表示把这个数组定义为编码,这样定义的好处是其元素转化成二进文件后可能直接存储到程序存储器中,当然这里也可以不加code,但是这样编译后会将其直接存储到数据存储器中,要知道单片机中
4、数据存储器的容量是非常有限的,定义为code后可节约单片机数据存储器的空间。调用程序的方法如下,P0=table1;这里表示将数组中的第2个元素(注意第一个是table0)0xf9赋给P1口,即P0=0xf9;也就是此时位被选通的数码管会显示数字2.下面利用编码的方法让6个数码管以间隔1秒的时间循环显示0f。相应程序如例1.例1:6个数码管循环显示0f#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit duan=P26;sbit wei=P27;uchar num;unsigned ch
5、ar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e ;void delay(uint); void main() wei=1; P0=0xfe; wei=0;
6、0; for(num=0;num<16;num+) duan=1; P0=tablenum;
7、0; delay(150); duan=0; void delay(uint z) uint x,y; for(x=z;x>0;x-)
8、160; for(y=500;y>0;y-);下载到实验板后实验现象如图3所示。 图3 6个数码管依次从0f变化 2、数码管的动态显示明白了数组编码后,现在我们正式介绍数码管的动态显示,为了更利于大家理解,我们先用前面介绍过的静态显示法写一个程序,功能为:让6个数码管间隔一秒依次显示1、2、3、4、5、6。程序如例2.例2
9、;数码管依次显示1、2、3、4、5、6#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit duan=P26;sbit wei=P27;uchar num;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delay(uint); void main()
10、160; while(1) for(num=1;num<7;num+)
11、160; if(num=1)
12、60; wei=1; P0=0xfe;
13、; wei=0; duan=1;
14、160; P0=tablenum; &
15、#160; delay(1000); duan=0;
16、0; else if(num=2)
17、; wei=1;
18、0; P0=0xfd; wei=0;
19、 duan=1; P0=tablenum;
20、60; delay(1000); duan=0;
21、 else if(num=3)
22、160; wei=1;
23、 P0=0xfb; wei=0;
24、160; duan=1;
25、; P0=tablenum; delay(1000);
26、60; duan=0;
27、 else if(num=4) w
28、ei=1; P0=0xf7;
29、0; wei=0; duan=1; &
30、#160; P0=tablenum; delay(1000);
31、; duan=0;
32、160; else if(num=5)
33、0; wei=1; P0=0xef;
34、 wei=0; duan=1;
35、60; P0=tablenum;
36、160; delay(1000); duan=0;
37、; else if(num=6)
38、 wei=1;
39、; P0=0xdf; wei=0; &
40、#160; duan=1; P0=tablenum;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年网络营销师考试移动营销策略题库
- 2025-2026年广东省餐饮卫生与安全备考习题集
- 2025-2026年物业服务规范操作流程模拟试卷
- 2026年天津市部编版初中英语上册第12单元课后习题
- 2026年血常规标本稳定性考点试卷及答案
- T/CI 948-2025综掘工作面压入式智能通风除尘系统技术规范
- 2026年社区压力性损伤预防护理试卷及答案
- 2026年江苏省公务员招考行政职业能力言语理解考前押题模拟试卷及答案
- 2026年各类消毒剂配比与使用培训试题(含答案)
- 2026年河南省继续教育华医练习题(含答案)
- 中建三局项目样板引路(样板间)专项施工方案图文完整版
- 大学计算机与人工智能基础 课件全套 第1-8章 计算机基础 - 人工智能技术
- 2025浙教版(2024)八年级上册科学教学计划(三篇)
- 存货报废处置管理办法
- rood治疗技术课件
- 心理调适-开学第一课(课件)-小学生主题班会版
- 2《哦香雪》公开课一等奖创新教学设计统编版高中语文必修上册-2
- 30题仪表工程师岗位常见面试问题含HR问题考察点及参考回答
- 商务智能与数据可视化分析基础全套教学课件
- 城市更新培训课件
- 小学生反诈知识宣传课件
评论
0/150
提交评论