8×8LED 扫描输出实验.doc_第1页
8×8LED 扫描输出实验.doc_第2页
8×8LED 扫描输出实验.doc_第3页
8×8LED 扫描输出实验.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

88LED 扫描输出实验 一 实验目的 使用户学会利用单片机的 IO 口进行LED 点阵的扫描显示。 二 实验设备及器件 IBM PC 机 一台 DP-51PRO 单片机综合仿真实验仪 一台 三 实验原理1 8*8led点阵有64个led,需要8个行控制和8个列控制,要点亮某个led,需要对应的行和列同时工作。在本试验箱的led点阵中,是类似PNP三极管的原理,行,列控制分别对应基极和集电极,需要两者同时设置低电平,才能导通电流,点亮对应的led。2.本实验中,用P1口的8位做行控制,分别控制8行,dispbit数组作为行扫描数据,有8个数组元素, 每个数组元素是8位的,都是只有某一位是0,别的是1,对应于每次只打开某一行led,别的行关闭。0的位置从低位到高位,对应于从第1行开始扫描最后到第8行。3.用P3口作为列扫描数据的输出端口,但是经过164串并转换芯片做了串并转换,至于串并转换的原理见81页的实验7,里面有164芯片的电路图和真值表。164芯片把从P3口每次送来的8位串行数据做了串并转换以后,得到8位并行输出数据,8位并行数据从低位到高位的排列顺序是和接收到的串行数据的时间先后顺序一致的。然后用跳线连接到led点阵的列扫描端口,作为列控制信号。4. 8*8led点阵的扫描顺序是从第1行开始到第8行,每次送一个行扫描数据,就是dispbit的元素,然后送这一行对应的列扫描数据,就是dispdata的元素,这个列数组总共8个元素,其中每个元素是8位的,其中0的位对应的列打开,1的位对应的列关闭。5. 列扫描调用了void sendto(unsigned char dat)函数,dat是列数组dispdata中的某一个元素,这个函数是实现P3口串行输出数据到164芯片的功能,调用一次发一个列数据,共调用8次发完8个列数据。每次调用,从最低位开始发数据,每次发1位,发完1位以后,高位往低位移动1位,继续发最低位数据,循环8次以后发完8位数据。这个过程中,需要在时钟位CLK构建时钟,即是程序控制输出1,0,1,0,1.信号,每个时钟发1位数据。6.修改列扫描数据,使能显示别的图形或者字符,例如一个圆,需要先在图纸上画出一个8*8的64个小格子点阵,然后把图形描进去,然后找出对应的每行的列数据,描有实点的地方填0,否则填1,因为led是低电平点亮的,就可以得到对应8行的8个二进制列数据,然后把二进制转换成16进制,填写到程序中,替换原有的数据。行数据不用改变,因为扫描都是依次从第1行顺序扫描到第8行,所得的行数据是固定不变的。 实验内容 1. 编写一段程序,用 P1 口控制扫描,用C5 区的 74HC164 控制显示输出,使 C3 区的88LED 点阵显示一个“”。四 实验要求 学会使用单片机对LED 点阵进行扫描显示。 五 实验步骤 1. 使用导线把A2 区的J61 接口与C3 区的 J46 接口从 P10P17 到LD_1 LD_8 对应相连。 2. 使用导线把 C5 区的J97 接口与 C3 区的 J47 接口从 Q0Q7 到 LD_A LD_H 对应相连。 3. 使用导线把 A2 区的J58 接口和 C5 区的 J43 接口从 INT0 到 CLK、从INT1 到 DINA、从T0 到 DINB、从T1 到 CLR 对应相连,另外再短接 C5 区JP10 和 C3 区JP2。 4. 参考实验七编写一段从 74HC164 输出八位数据的程序。 5. 再编写一个完整的 LED 点阵扫描程序,显示“”。 ,理解硬件结构,还可以先把程序编好,然后在 Keil C51 环境下进行软件仿真。六.实验程序框图 七 实验参考程序 CLK EQU P3.2 DINA EQU P3.3 DINB EQU P3.4 CLEAR EQU P3.5 ORG 8000h AJMP main ORG 8100h main: MOV SP,#70h ;设置堆栈指针 MOV 50H,#07EH ;设置发送的列数据 MOV 51H,#0BDH MOV 52H,#0DBH MOV 53H,#0E7H MOV 54H,#0E7H MOV 55H,#0DBH MOV 56H,#0BDH MOV 57H,#07EH CLR CLEAR ;初始化 IO 口 SETB CLK SETB DINA SETB DINB SETB CLEAR mainloop: MOV R6,#8h ;设置扫描次数 MOV DPTR,#09000h ;读取扫描端口数据 MOV R1,#50H ;指定列数据指针 flashcy: MOV A,R1 ;读取列数据 MOV R0,A INC R1 ;列数据指针加 1 CLR A MOVC A,a+ DPTR ;读取扫描端口数据 MOV P1,0FFH LCALL sendto ;发送列数据 MOV P1,a INC DPTR LCALL DELAY DJNZ R6, flashcy SJMP mainloop sendto: ;发送数据程序 PUSH ACC CLR CLK SENDTIME: MOV R7,#08H MOV A,R0 CLR C SENDCY: RRC A MOV DINA,C SETB CLK CLR CLK DJNZ R7,SENDCY POP ACC RET DELAY: ;延时程序 MOV R7,#01 DELAY0: MOV R4,#17 DEL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论