实验三LED数码管与点阵管实验_第1页
实验三LED数码管与点阵管实验_第2页
实验三LED数码管与点阵管实验_第3页
实验三LED数码管与点阵管实验_第4页
实验三LED数码管与点阵管实验_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、电子科技大学中山学院学生实验报告学院:机电工程专业:课程名称:单片机原理与接口技术实验班级:姓名学号:组别:实验名称:实验三LED数码管与点阵管实验实验时间:成绩:、实验目的和任务1、掌握LED数码管的动态显示原理、接口电路及程序限制方法.2、掌握LED点阵管的工作原理、接口电路及程序限制方法二、实验原理简介ZSC-1实验箱设有8位LED数码管和一个8*8点阵管,具体电路如图7-1所示.为有效利用单片机口线,采用动态结构,由单片机P0口直接驱动数码管的笔段以及点阵管的列线,P2口低3位经74HC138#码后产生8路输出低电平有效,再经两片74HC24阪相后,分别用作数码管和点阵管的位/行驱动信

2、号高电平有效.74HC138Vcc|2074HC240VccP2.3P2.2P2.1P2.0_Y00_Y2_-Y42落3,2C31221OMVEeeaaagP4.4P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.015141312111096811131517CS11|19Vcc20246811131517VCC1A01Y01A11Y11A21Y21A31Y32A02Y02A12Y12A22Y22A32Y31OE2OEGND74HC2403433VCC1A01Y01A11Y11A21Y21A31Y32A02Y02A12Y12A22Y22A32Y31OE2OEGNDhID-c>

3、;>t>>h>.',.:,."8C,-;,.,:,.5C-一“一4c.3Crr-1-1,1-I-1-I-2CQ-hQR户白.:TC12345678RRRRRRRR470Qx835363738398x8点阵管13416151com1com2com3com41110»t11口.Q口D.dpgfedcbacom1com2com3com4da-JJ-L-*110001MCl.o.u.o.dpgfedcba共阳极数码管29866893501247135012471图3-1LED数码管与点阵管电路图中P2.3、P4.4两个限制信号的作用为:当P2,3=1

4、时,数码管和点阵管均关闭显示,当P2.3=0,且P4.4=1或0时,数码管或点阵管开通显示.P4.4P4.6为STC12C5A60S新增I/O口,将P4SW字节地址BBH存放器中D*D6位设为1后可用.使用数码管时,可以不设P4SWP4.4引脚默认为弱上拉状态,可保证数码管对应的74HC24C使能有效.使用点阵管时,那么必须至少将P4SW勺D4位设为1并令P4.4输出0,以使点阵管对应的74HC24O能有效.三、实验内容H1、参考电路图3.1,在proteu啾件里搭建相关的仿真模型图3.1只是例如,例如里的模块与proteuS真块库里得对应模块外观和接口可能会不一样,以proteuS真块库里的

5、模型为主.接线方式也可以不一样2、编写程序,限制8位LED数码管以1s的间隔交替显示"12345678"和"87654321"./*详细程序参考见指导书.头文件声明*/*#include<reg51.h>数据类型定义*/typedefunsignedcharuint8;typedefcharint8;typedefunsignedintuint16;/*O口线分配*/#defineSEGCODEPORTP0/*#defineBITCODEPORTP2常量数组段他表声明*/uint8codeSegCodeTable"0xC0,0xF9

6、,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90/*;函数原型声明*/voidLed7segLoad1();voidLed7segLoad2();voidLed7segRefresh();voidDelay(intms);/*uint8Led7SegDispBuff8;sbitcs1=P3A6;/*voidmain()(uint8i;cs1=0;全局变量声明主函数*/*/while(1)(Led7segLoad1();/加载(更新)显示内容for(i=0;i<1;i+)/刷新屡次(Delay(12);Led7segRefresh();)Led7segLoa

7、d2();/for(i=0;i<1;i+)/(Delay(12);Led7segRefresh();)/*加载更新显示内容刷新屡次显示内容加载函数1mmlvoidLed7segLoad1()(Led7SegDispBuff0=1;Led7SegDispBuff1=2;Led7SegDispBuff2=3;Led7SegDispBuff3=4;Led7SegDispBuff4=5;Led7SegDispBuff5=6;Led7SegDispBuff6=7;Led7SegDispBuff7=8;/*显示内容加载函数*/voidLed7segLoad2()(Led7SegDispBuff0=8

8、;Led7SegDispBuff1=7;Led7SegDispBuff2=6;Led7SegDispBuff3=5;Led7SegDispBuff4=4;Led7SegDispBuff5=3;Led7SegDispBuff6=2;Led7SegDispBuff7=1;/*voidLed7segRefresh()(uint8i;for(i=0;i<8;i+)/数码管显示刷新函数*/共刷新8位(SEGCODEPORT=SegCodeTableLed7SegDispBuffi;/输出第i位的段码BIT_CODE_PORT=0xF0+i;/第i位通电显示Delay(100);/显示1msBIT_

9、CODE_PORT=0xF8;/所有位包括第i位熄灭/*软件延时函数*/voidDelay(intms)uint16i;doi=790;while(-i);/延时1ms(STC12C5A60S2,11.0592MHz,C51码优化级另1J设为5)while(-ms);/*程序结束*/3、编写程序,限制LED点阵管从9到0倒计时显示减到0后熄灭.详细程序参考见指导书./*头文件声明*/#include<reg51.h>sbitcs2=P3A7;/*数据类型定义*/typedefunsignedcharuint8;typedefcharint8;typedefunsignedintui

10、nt16;/*I/O口线分配*/#defineCOLPORTP0#defineROWPORTP2/*常量数组字模表声明*/uint8codeDotTable8=/以下为0到9的8*8字模0x00,0x18,0x24,0x24,0x24,0x24,0x18,0x00,0x00,0x08,0x18,0x08,0x08,0x08,0x1C,0x00,0x00,0x18,0x24,0x04,0x08,0x10,0x3C,0x00,0x00,0x3C,0x08,0x10,0x08,0x04,0x24,0x18,0x00,0x08,0x18,0x28,0x28,0x3E,0x08,0x08,0x00,0x

11、3C,0x20,0x38,0x04,0x24,0x18,0x00,0x00,0x18,0x20,0x38,0x24,0x24,0x18,0x00,0x00,0x3C,0x04,0x08,0x10,0x10,0x10,0x00,0x00,0x18,0x24,0x24,0x18,0x24,0x24,0x18,0x00,0x18,0x24,0x24,0x1C,0x04,0x24,0x18;/*函数原型声明*/voidLedDotRefresh();voidDelay(intms);/*全局变量声明*/uint8LedDotDispBuff;/*主供数*voidmain()uint8i;cs2=0;/

12、选通点阵管从9减到0for(LedDotDispBuff=9;LedDotDispBuff!=0xff;LedDotDispBuff-)/for(i=0;i<1000/8;i+)/刷新125次,每次8ms,共用时1sLedDotRefresh();while(1);/空循环不再执行刷新操作,显示熄灭/*for(i=0;i<8;i+)/共刷新8行COL_PORT=DotTableLedDotDispBuffi;/输出第i行的字模ROW_PORT=0xF0+i;/第i行通电显示Delay(1);/显示1msROW_PORT=0xF8;/所有行包括第i行熄灭点阵管显示刷新函数*/void

13、LedDotRefresh()uint8i;/*while(-i);/软件延时函数*/voidDelay(intms)uint16i;doi=114;延时1ms(STC12C5A60S2,11.0592MHz,C51码优化级另1J设为5)while(-ms);/*程序结束*/四、发挥与提升1、对参考程序1进行改良,实现简易电子钟功能./*头文件声明*/#include<reg51.h>数据类型定义*/*typedefunsignedcharuint8;typedefcharint8;typedefunsignedintuint16;/*I/O口线分配*/#defineSEGCODE

14、PORTP0#defineBITCODEPORTP2/*常量数组段他表声明*/uint8codeSegCodeTable=(/*0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90);函数原型声明*/voidvoidvoidLed7segLoad1();Led7segRefresh();Delay(intms);/*全局变量声明*/uint8Led7SegDispBuff8;intms=0,s=0,m=0,h=0;sbitcs1=P3A6;主函数*/*voidmain()(cs1=0;while(1)(Delay(1);ms+;if(ms=100)

15、(ms=0;s+;if(s=60)(s=0;m+;if(m=60)m=0;h+;if(h=24)h=0;Led7segLoad1();Led7segRefresh();/*voidLed7segLoad1()Led7SegDispBuff0=h/10;Led7SegDispBuff1=h%10;Led7SegDispBuff2=m/10;Led7SegDispBuff3=m%10;Led7SegDispBuff4=s/10;Led7SegDispBuff5=s%10;Led7SegDispBuff6=ms/10;显示内容加载函数1*/数他管显示刷新函数*/Led7SegDispBuff7=ms

16、%10;/*voidLed7segRefresh()uint8i;共刷新8位for(i=0;i<8;i+)/SEG_CODE_PORT=SegCodeTableLed7SegDispBuffi;/BIT_CODE_PORT=0xF0+i;Delay(1);BIT_CODE_PORT=0xF8;/输出第i位的段码第i位通电显示显示1ms所有位包括第i位熄/*软件延时函数*/voidDelay(intms)uint16i;doi=140;延时1ms(STC12C5A60S2,11.0592MHz,C项码优化级另I设为5)while(-i);/while(-ms);2、对参考程序2进行改良,显

17、示一个跳动的心形图案/*程序结束*/*头文件声明*/#include<reg51.h>sbitcs2=P3A7;数据类型定义*/*typedefunsignedcharuint8;typedefcharint8;typedefunsignedintuint16;/*I/O#defineCOLPORTP0口线分配*/#defineROW_PORTP2/*常量数组字模表声明*/uint8codeDotTable18=0x00,0x6c,0x92,0x82,0x44,0x28,0x30,0x20);/*函数原型声明*/voidLedDotRefresh();voidDelay(intms

18、);/*全局变量声明*/uint8LedDotDispBuff;/*主函数*/voidmain()uint8i;cs2=0;while(1)/选通点阵管点阵管显示刷新函数*/for(i=0;i<1000/8;i+)/LedDotRefresh();Delay(1000);)/*刷新125次,每次8ms,共用时1svoidLedDotRefresh()/共刷新8行uint8i;for(i=0;i<8;i+)COL_PORT=DotTableLedDotDispBuffi;/输出第i行的字模ROW_PORT=0xF0+i;Delay(1);/ROW_PORT=0xF8;/*/第i行通电显示显示1ms/所有行包括第i行熄

温馨提示

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

评论

0/150

提交评论