数码管静态显示实验,单片机实验报告

 数码管静态显示实验

 一.

 实验目的

 1.熟悉数码管的功能和使用。

  2.熟悉延时子程序的编写和使用。

  3.初步熟悉单片机软硬件设计方法。

  二.实验仪器

 计算机、Keil 编程环境、普中下载软件、单片机开发实验仪。

  三 .实验原理与内容

 P0 口做输出口,接一个共阳极数码管,要求循环显示。共阳极数码管字形表 (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,-共 17 个字形码)

 0C0H,0FCH,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH。

  四 . 实验线路及原理

  五 . 注意事项

 1.安装实验仪时,先接通讯串口线,再开电源开关。

 2.实验过程中,在进行接插线操作时,必须先关闭电源。

 六 . 实验步骤

 1、主机连线说明:

 JP10

 单片机 0 P0 口(8 8 位)

 JP3

 共阳极数码管

 七 . 实验步骤

 2.打开 Keil 编程软件编写程序,并进行汇编产生 HEX 文件。

 (1)流程图

 (2)汇编源程序

 ORG

 00H LJMP

 MAIN

  ;初始位置直接跳转 MAIN 主程序 START;

 MOV

 R2,#0 ;赋值 R2=0

 MOV

 R5,#17;赋值 R5=17

 MAIN:

 MOV DPTR,#TAB;将 TAB 地址传送给数据指针

 MOV A,R2

 ;赋值累加器 A=0

 MOVC A,@A+DPTR;将数组第 A+1 的数据赋值 A

 MOV

 P0,A

 ;赋值 P0 数据的数据

 INC

  R2

 ;R2 加一

 LCALL

 DELAY

 ;调用延时子程序

 DJNZ

 R5,MAIN

 ;R5 减一不为 0 跳转主程序 MAIN

 JMP

 START

  ;跳转 START RET DELAY:

  MOV R0,#5

 ;延时子程序

 DL2:

 MOV R7,#200

 DL1:

 MOV R6,#250

  DJNZ R6,$

  DJNZ R7,DL1

  DJNZ R0,DL2 TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,

 END

 (1)

 C 语言源程序 #include <reg52.h> #define uint unsigned int

 Uint table [ ]= (0xC0,0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E, 0xBF )

 Void

 delay (int z)

  {

 int x,y;

  for (x=z;x>0;x--)

  for (y=100;y>0;i++)

 } Void main ( ) {

  int i ;

  While (1) {

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

  P0=table [i];

 delay (1000)

  // 延时 }

  }

  }

 3. 点击普中下载软件,检查设置是否正确,然后下载到实验仪的单片机中。

 4. 运行程序看结果。反复修改和下载。

 八.实验结果及总结

  程序编译无误,生成 hex 文件通过普中下载软件,将程序下载到实验 仪 的 单 片 机 中 , 观 察 到 单 片 机 中 数 码 管 依 次 显 示1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。

 总结:本次实验首先应测试静态数码管是共阴极还是共阳极,要注意区分这两种不同类型,为了显示数字与字符,必须对数字或字符进行编码。