- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数码管实验报告
数码管实验报告
篇一:实验八 数码管LED实验报告
苏州大学实验报告
院、系 年级专业 姓名 学号课程名称 成绩指导教师同组实验者实验日期
实验名称: 数码管LED实验
一.实验目的
理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管LG5641AH与MCU的接线图。 二.实验内容
理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,MCU的排8段数码管显示MCU复位后的开始到现在的运行时间。由于只有四个数码管,所以只显示MCU运行到目前为止的分钟和秒,当计时达到一个小时,就重新从00:00开始计时。另外,也可以通过PC方的串口通信程序,指定计时的开始值。三.实验过程 (一)原理图
图8-2数码管外形
dp
a b c
e f g dp
图8-1 数码管
(二)接线图
图8-3 MCU与4连排8段数码管的连接
第1页
(三)基本原理
8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。根据公共端所接电平的高低,可分为共阳极和共阴极两种。有时数码管不需要小数点,只有7个位段,称7段数码管。共阴极8段数码管的信号端高电平有效,只要在各个位段上加上相应的信号即可使相应的位段发光,比如:要使a段发光,则在发光。
四.编程
(一)流程图
图8-4 数码管LED显示流程图(及其中断子程序)
(二)所用寄存器名称及其各个位
程序中没有使用与LED显示相关的控制和状态寄存器,仅仅使用了通用I/O口A口和B口。
(三)主要代码段
1
第2页
第3页
2.C
第4页
第5页
篇二:数码管实验报告
单片机实验报告
一、实验名称
数码管动态扫描显实验五)
二、实验目的
(1)掌握数码管显示数字的原理。
(2)通过不同的编程实现灵活运用数码管。
三、实验原理
数码管由7个发光二极管组成8字形构成的,加上小数点就是8个,分别把它命名为A,B,C,D,E,F,G,H。在共阳接法中,0(低电平)亮,1(高电平)灭。 原理图中把所有数码管的8个笔划段A-H同名端连在一起,而每一个显示器的公共机COM是各自独立受I\O线控制。CPU向字段输出口送出字型码时,所有显示器接收到的字型码相同。由8个PNP的三极管来控制这8位哪一位工作。在单片机里,首先显示一个数,然后关掉,然后在显示第二个数,又关掉,那么将看到连续的而数字显示,轮流点亮撒哦i案过程中,每位显示器的点亮时间是极为短暂的,由于人的视觉暂留和发光二级管的余光效应,是的给人的印象是一组稳定的显示数据,不会有闪烁感。
四、相关原理图
五、实验内容
数码管显 c程序:
#include lt;reg51.hgt;
#include lt;intrins.hgt;
unsigned char data dis_digit;
unsigned char code dis_code[11]={ 0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//0,1,2,3,4,5,6,7,8,9,关显示,数码管码表
unsigned char data dis_buf[8];// 显示缓冲区
unsigned char data dis_index;
char code SST516[3] _at_ 0x003b;
void main()
{
P0 = 0xff;
P2 = 0xff;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x17;
IE = 0x82;
dis_buf[0] = dis_code[0x1];
dis_buf[1] = dis_code[0x2];
dis_buf[2] = dis_code[0x3];
dis_buf[3] = dis_code[0x4];
dis_buf[4] = dis_code[0x5];
dis_buf[5] = dis_code[0x6];
dis_buf[6] = dis_code[0x7];
dis_buf[7] = dis_code[0x8];
dis_digit = 0xfe;
dis_index = 0;
TR0 = 1;
while(1);}
void timer0() interrupt 1
// 定时器0中断服务程序, 用于数码管的动态扫描
// di
文档评论(0)