数码管、按键综合应用.docx_第1页
数码管、按键综合应用.docx_第2页
数码管、按键综合应用.docx_第3页
数码管、按键综合应用.docx_第4页
数码管、按键综合应用.docx_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

重庆邮电大学微处理器与嵌入式系统设计课程实验报告 实验名称: 数码管、按键综合应用 学 期: 2014-2015学年第2学期 班 级: 学 号: 学生姓名: 任课教师: 实验教室: YF311 二一五年五月九日【实验名称】数码管、按键综合应用实验要求:1、按下K0键,LED灯D0亮,数码管12位开始计数(00-FF);2、按下K1键,LED灯D1亮,数码管34位开始计数(00-FF);3、按下K2键,LED灯D2亮,数码管56位开始计数(00-FF);4、按下K3键,LED灯D3亮,数码管78位开始计数(00-FF);5、按下K4键,D0-D7中奇数位亮(D0、D2、D4、D6);6、按下K5键,D0-D7中偶数位亮(D1、D3、D5、D7);7、按下K6键,D0-D7左移流水灯;8、按下K7键,D0-D7右移流水灯;9、拓展项目:按下K8键,停止计数器计数且计数器数值清零,数码管全灭。实验目的:1、熟悉4位共阴数码管的基本原理,熟悉4位共阴数码管的显示和编程方法;2、熟悉非编码键盘的工作原理和键盘的扫描方式,熟悉键盘的去抖方法和键盘应用程序的应用; 3、熟悉51单片机中断功能的基本使用方法,熟悉定时器引发中断的方法和中断应用程序的应用;实验方法:;1、 通过keil软件编写控制单片机并实现相应功能的程序,并生成相应的hex文件;2、 将keil生成的hex文件通过STC-ISP软件导入到单片机中;3、 观察相应的实验现象;4、 根据实现现象优化相应代码。实验步骤:1、 通过keil软件建立工程并添加文件;2、 编写控制单片机并实现相应功能的程序;3、 编译生成相应的hex文件;4、将生成的hex文件通过STC-ISP软件导入到单片机中;5、观察相应的实验现象;6、根据实现现象优化相应代码。实验效果:因数码管图片过多,故截取相应几张呈现实验效果实验代码:#include#include#define uint unsigned int#define uchar unsigned charsbit SLock=P13;void lflash(); /流水灯左移void rflash(); /流水灯右移void display0(uchar,uchar);/1、2位数码管显示void display1(uchar,uchar);/3、4位数码管显示void display2(uchar,uchar);/5、6位数码管显示void display3(uchar,uchar);/7、8位数码管显示void clear();/数码管不显示且显示的数字清零Uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar num=0,shi,ge,num0,key;uchar dox1,dox2;/左移、右移端口初始值void matrixkeyscan();/延时void delayms(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/1、2位数码管显示void display0(uchar shi,uchar ge)SLock=1;P2=tableshi;SLock=0;P0=0xfe;delayms(5);SLock=1;P2=tablege;SLock=0;P0=0xfd;delayms(5);/3、4位数码管显示void display1(uchar shi,uchar ge)SLock=1;P2=tableshi;SLock=0;P0=0xfb;delayms(5);SLock=1;P2=tablege;SLock=0;P0=0xf7;delayms(5);/5、6位数码管显示void display2(uchar shi,uchar ge)SLock=1;P2=tableshi;SLock=0;P0=0xef;delayms(5);SLock=1;P2=tablege;SLock=0;P0=0xdf;delayms(5);/7、8位数码管显示void display3(uchar shi,uchar ge)SLock=1;P2=tableshi;SLock=0;P0=0xbf;delayms(5);SLock=1;P2=tablege;SLock=0;P0=0x7f;delayms(5);void clear()P0=0xff;P2=0xff;num=0;void init()TMOD=0x01;TH0=(65535-50000)/256;TH0=(65535-50000)%256; EA=1;ET0=1;void T0_time(void) interrupt 1TH0=(65535-50000)/256;TH0=(65535-50000)%256;num0+;if(num0=5)num0=0;num+;if(num=255)num=0;shi=num/16;ge=num%16;void matrixkeyscan() uchar temp;P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0)delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=3;break; while(temp!=0xf0)temp=P3;temp=temp&0xf0;TR0=1;P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0)delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xed:key=4;break;case 0xdd:key=5;break;case 0xbd:key=6;break;case 0x7d:key=7;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0)delayms(10);temp=P3;temp=temp&0xf0;if(temp!=0xf0)temp=P3;switch(temp)case 0xeb:key=8;break;while(temp!=0xf0)temp=P3;temp=temp&0xf0;void main()init();dox1=0x7f; dox2=0x7f;while(1) matrixkeyscan();switch(key)case 0:display0(shi,ge);break;case 1:display1(shi,ge);break;case 2:display2(shi,ge);break;case 3:display3(shi,ge);break;case 4:P2=0xaa;break; case 5:P2=0x55;break;case 6:lflash();break;case 7:rflash();break;case 8:TR0=0;clear();break;/流水灯左移8位void lflash()P2=dox1;delayms(500);dox1=_crol_(dox1,1);/流水灯右移8位void rflash()P2=dox2;delayms(500);dox2=_cror_(dox2,1);心得体会:在实现实验要求时原本打算在矩阵键盘扫描查询使用switch语句的时候,在case

温馨提示

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

评论

0/150

提交评论