单片机实验报告三

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽新华学院实验报告

姓名:钟金芙学号:1432101251 专业班级:14计应2班课程名称:单片机原理及应用实验名称:单片机控制数码管实验实验日期:2016.3.4 同组人员:指导教师:王华本

得分:

一、实验名称

单片机控制数码管实验

二、实验类型

基础性实验

三、实验目的与要求

1.掌握数码管的静态显示。

2.掌握数码管的动态显示

四、实验主要仪器设备

硬件设备:PC机,单片机试验仪

软件环境:proteus仿真软件。

五、实验原理

1、数码管静态显示驱动原理:把多个led灯泡放在一块,安装组成了数码形式,把全部LED的正极连接到一块为共阳极,负极则为共阴极,所有用单片机管脚对应每一个数码管管脚,然后进行通断的转换显示出字符。

2、数码管动态显示的基本原理:多位数码管按从左到右或从右到左顺序分时显示,显示的刷新速率不低于人的暂留视觉,让人感觉不出数码管的显示有先后顺序,就像所有的数码管同时显示一样。

为了使LED数码管显示不同的符号或数字,要把某些段的发光二极管点亮,这样就要为LED数码管提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码也称为段码。

LED数码管共计8段。因此提供给LED数码管的段码正好是一个字节。在使用中,习惯上是以“a”段对应段码字节的最低位。

六、实验内容

1.编程实现单片机控制一个8位数码管循环显示。

2.编程实现单片机控制 2只数码管,静态显示 2个数字“27”。

3.编程实现单片机控制 8 只数码管,滚动显示数字“12345678”。

七、实验步骤

实验一:利用单片机控制一个8位数码管先循环显示单个偶数:2、4、6、8 再显示单个奇数:1、3、5、7,如此循环显示。

代码如下:#include

#include

#define uchar unsigned char

#define uint unsigned int

#define out P0

uchar code seg[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0xc0};

void delayms(uint);

void delayms(uint j){

uchar i;

for(;j>0;j--){

i=250;

while(--i);

i=249;

while(--i); } }

void main(void){

uchar i;

while(1){

out=seg[i];

delayms(900);

i++;

if(seg[i]==0x01)i=0;

}

}

生成.hex文件,将文件导入绘制好的电路图中,运行结果如下:

实验二:单片机控制2只数码管,静态显示2个数字“27”。代码如下:#include

#define uchar unsigned char

#define uint unsigned int

void main()

{

P0=0XA4;

P1=0XF8;

while(1);

}

编译程序生成.hex文件,导入电路图中,启动如下:

实验三:单片机控制8 只数码管,分别滚动显示单个数字1~8.程序运行后,单片机控制左边第1 个数码管显示1,其他不显示,延时之后,控制左边第2 个数码管显示2,其其他不显示,直至第8 个数码管显示8,其他不显示,反复循环上述过程。

步骤一:在proteus中绘制如下电路图:

步骤二:在keil中编写程序,生成.hex文件

程序如下:#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code dis_code[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0xc0};

void delay(uint t);

void delay(uint t){

uint i,j;

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

for(j=0;j

}

void main(){

uchar i,j=0x80;

while(1){

for(i=0;i<8;i++){

j=_crol_(j,1);

P0=dis_code[i];

P2=j;

delay(1);

P0=0xff;

}

}

}

步骤三:把.hex文件导入仿真电路图中,结果如下(因把延迟变小,形成数码管动态显示)

八、数据记录及处理

1.程序说明。说明程序的功能、结构。

2.调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3.写出源程序清单和执行结果。

九、实验注意事项

1.注意数码管显示时的延时时间,决定了显示时字符是稳定显示还是闪烁。

2.共阴极和共阳极的8段数码管的段码值是恰好相反的。

十、实验中遇到的问题及解决的措施

相关文档
最新文档