收藏 分享(赏)

七段数码显示器显示实验报告.doc

上传人:HR专家 文档编号:11428687 上传时间:2020-04-21 格式:DOC 页数:7 大小:4.23MB
下载 相关 举报
七段数码显示器显示实验报告.doc_第1页
第1页 / 共7页
七段数码显示器显示实验报告.doc_第2页
第2页 / 共7页
七段数码显示器显示实验报告.doc_第3页
第3页 / 共7页
七段数码显示器显示实验报告.doc_第4页
第4页 / 共7页
七段数码显示器显示实验报告.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、单片机原理及接口技术实验报告实验项目: 姓 名: 专 业: 班 级: 学 号: 6一、实验名称七段数码显示器显示实验(SPI通信方式)二、实验设备 PC机1台,CEPARK畅学系列实验装置1套 三、实验目的1.熟悉I/O口作为数字量输出的初始化;2.熟悉共阳极与共阴极两种数码管的工作原理;3.学会软硬件的设计和调试方法;4.根据七段数码管的特性,对应出每个数字引脚输出的16进制码,然后编写程序。四、实验要求1.将0-9这十个数字按顺序依次在数码管上显示出来,时间间隔为0.5S;2.熟悉延时函数的使用(可用for循环自己写一个延时函数);3.掌握PIC16F877A芯片及电子元件的使用方法;4.

2、实现单片机软件与硬件的结合,将理论知识应用于实践。五、理论原理1.LED七段数码显示器由8个发光二极管组成显示字段,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种(原理图如下图1所示)。(实验板采用的LED为共阳极的连接方式)图1.单个共阳极数码管原理图2.接口说明:接口编号为JP44,需要一个8位端口(AG、DP)去控制,因此提供给LED的字形码也是8位的。数码管各段编号如下图2所示:图2.数码管各段编号3.LED七段数码显示器各字段与控制端口位的对应关系如下表1所示:表1. 七段数码显示器各字段与控制端口位的对应关系控制端口位D7D6D5D4D3D2D1D0字段名dpgfed

3、cba4.共阳极LED七段数码显示器字形代码如下表2所示:表2. 共阳极LED七段数码显示器字形代码表字形显示编码字形显示编码0C0H990H1F9HA88H2A4Hb83H3B0HCC6H499HdA1H592HE86H682HF8EH7F8H.(小数点)7FH880H-(负号)BFH六、实验内容步骤1.接线说明核心板RD口接底板JP15,具体为:RD0-A,RD1-B,RD2-C,RD3-D,RD4-E,RD5-F,RD6-G,RD7-DP2.创建项目打开MPLAB IDE v8.90 选择Project,进入Project Wizard,进入下面的界面,单击下一步。Device选择PIC

4、16F877A,单击下一步。如果是编写C源代码,Active Toolsuite选择HI-TECH Universal ToolSuite,Toolsuite Contents选择HI-TECH ANSI C Compiler,其他保持默认,单击下一步。如果编写汇编源代码,Active Toolsuite选择Microchip MPASM Toolsuite,Toolsuite Contents选择MPASM Assembler mpasmwin.exe v5.49,其他保持默认,单击下一步。然后选择存放项目的文件路径,单击Browse.这里选择了桌面上的PICC文件夹(空的),并给项目起名为

5、demo,单击保存 下一步 完成。因为提前并没有写好代码,没有代码可用,所以保持默认,单击下一步。最后,单击完成,环境配置完成,后面的工作就是写代码,然后运行测试了。至此,一个空项目创建完成。3.连接硬件和软件依次选择菜单栏Programmer Select Programmer PICkit 3连接成功后,Output窗口给出提示。4.编译,下载运行首先,单击快捷菜单New File。然后,添加任意内容后,按下Ctrl+S或者单击保存按钮,保存文件名为test.c保存路径选择一开始在桌面创建的PICC文件夹。然后,将刚刚保存的文件添加到项目中。右击工作空间视窗中demo项目下的Source

6、Files,选择Add Files接下来选择test.c文件并打开。单击编译,后出现如下画面。下载程序到芯片,如果程序正确,将看到相应的现象。七、实验程序#define _XTAL_FREQ 4000000 #include lian_pic.h_CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);/HS振荡,禁止看门狗,低压编程关闭,启动延时定时器 const uchar smg=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x00,; / 0 1 2 3 4 5 6 7 8 9 allconst uchar smg_bit

7、=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,; uchar c; uchar d; /*函数定义* uchar spi_write_read(uchar dd);/* 主程序 *void main(void) SSPM3=0; SSPM2=0; SSPM1=0; SSPM0=0; /spi主控模式,时钟为Fosc/4 CKP=0; /空闲为低电平 STAT_CKE=1; /SDO前沿采样 STAT_SMP=0; /在数据输出时间的中间采样输入数据 TRISD=0; /RD4/SDI为输出(不使用SDI引脚时,可设置为输出,作普通io用) SSPE

8、N=1; /使能MSSP模块,启用spi或iic _delay_ms(10); PORTD=0x00; /产生锁存时钟 spi_write_read(0x00); spi_write_read(0x00); PORTD=0xff; _delay_ms(500); while(1) for(c=0;c10;c+) spi_write_read(smgc);/控制显示的数字 _delay_ms(500); /*spi总线发送接收数据*uchar spi_write_read(uchar dd) SSPBUF=dd; PORTD=SSPBUF; return (PORTD); /返回接收到的数据八、实验结果使用端口D作为输出,SPI作为缓冲,向单个数码显示器以此送字形码0-9十个数字。九、分析总结1.实验过程遇到的问题拘泥于单个位的传送,导致无法对程序理解。串行和并行传递数据有些混乱。2.思考及解决方法串行传递数据是累计把八个二进制数字全部传递完成后,缓冲寄存器存满,开始发送数据。如果使用单个数码管进行显示,则可以一次向寄存器中送八个二进制数字,而不需要每次都检查标志位。根据这个思路,直接对SSPBUF送数0xc0等数据即可,问题得到解决。3.本次实验的心得体会对底层原理的思考可以帮助解决问题。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报