ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:20.55KB ,
资源ID:13665654      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13665654.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验报告19371857Word格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验报告19371857Word格式.docx

1、二、实验实现的功能 5三、系统硬件设计 5四、系统软件设计 5五、实验过程中遇到的问题及解决方法 5实验一 流水灯实验1、实验目的1)简单IO引脚的输出2)掌握软件延时编程方法3)简单按键输入捕获判断二、实验实现的功能1) 开机是点亮12发光二极管,闪烁三下2) 按照顺时针循环依次点亮发光二极管3) 通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计 系统设计主要以51核心板为基础,使用资源主要有:D1D12三色LED显示灯,分别对应单片机P20P27,P32P35端口;二排三列矩阵键盘,由单片机P36,P37,P05P07端口控制。四、系统软件设计程序主要分为两大模块,按键扫描与LE

2、D显示,按键扫描部分放在key()函数内,返回键值。LED显示放在主函数main()中。通过for循环实现多次显示,延时函数来控制显示时间。 预期效果:开机后所有LED闪烁,接着顺时针流动,结束后,按下1键LED逆时针流动,按下2键所有LED闪烁。部分源代码:void DelayMS(uint xms) uint i,j; for(i=xms;i0;i-) for(j=300;jj-);unsigned char key() unsigned char k=0; P0|=0xe0; P3&=0x3f; if(P0&0xe0)!=0xe0) DelayMS(100); P0|=0xe0; if(

3、P0& P3|=0xc0; P3&=0x7f; switch(P0&0xe0) case 0xe0: break; case 0x60: k=6;break; case 0xa0: k=5; case 0xc0: k=4; P3|=0xc0;=0xbf; k=3; k=2; k=1; while(P0& P0&=0xe0 ; W1 = 0; W2=!W2; return k; main() P2=0Xfb; uchar i,k; for(i=4; P2=0X00; LED9 =0; LED10=0; LED11=0; LED12=0; DelayMS(300) ; P2=0XFF; LED9

4、=1; LED10=1; LED11=1; LED12=1; P2=0XFE; for(i=7; P2=_crol_(P2,1); if(k=2) for(i=4; P2=code70; LED9=0; LED10=1; LED11=0; LED12=1; DelayMS(300) ; P2=0XFF; LED9=1; LED11=1; P2=code71; LED10=0; LED12=0; 5、实验过程中遇到的问题及解决方法 按键扫描返回值错误,经仔细调试,发现未加按键释放检测语句; LED最初显示时间较短,亮度较暗,修改延时程序,增长延时时间得以解决。 调试过程中经常存在个别LED显示异

5、常,仔细检查程序发现是程序控制语句错误。经过修改,问题得以解决。 指导老师签字: 日期:实验二 定时器或实时时钟实验一、实验目的1) 数码管动态显示技术2) 定时器的应用3) 按键功能定义1) 通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。2) 实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。上述二个功能至少完成一种功能。 系统设计主要以51核心板为基础,利用板上已有资源进行开发设计。使用外部资源主要有:4位8段共阴数码管,位选由单片机P00P03端口控制,段选由P1端口控制。 使用的单片机内部资源主要有:定时器模块;中断模块

6、; 程序主要有:定时器配置与中断函数、数码管显示、按键扫描、LED显示四大模块。定时器采用T1定时器,工作方式为模式1。 按键指令的执行才用switch结构,相应的键值执行相应的指令。中断函数内更新时间值time,数码管显示指令放在main函数中。开机后数码管显示00;这时通过按键设置倒计时初值(最大值99),1键4键分别为+-10,2键5键分别为+1;设置好初值,按下确定键3,开始倒计时。计时结束,LED灯闪烁,并等待下一次计时。 定时器初始化、开始函数 void T1_init() TMOD |=0x01;定时器设置 10ms in 12M crystal,工作在模式1,16位定时 TH0

7、=0x0dc; TL0=0x00; EA=1; 开总中断 void T1_star() ET0=1;开定时器0中断 TR0=1; 打开定时开关主函数: T1_init(); P0=0xff; while(1) keyscan(); k = key(); switch(k) case KM: 无任何按键按下 默认为0 返回 Display1(); break; case 1: time+=10; 1键设置十位加 time=time%99; 最大值99 取余循环 实时显示 k=KM; 键值置位 避免重复执行 可否删去 待验证 case 4: time-=10; 4键设置十位减 if(time=0)

8、time=0; case 2: time+=1; 2键设置个位加 case 5: time-=1; 5键设置个位减 if(time time=time%99; case 3: 3键确定 开启定时器、中断 second = time; T1_star(); Display1(); k=KM; break; default:中断函数:void tim(void) interrupt 1 using 1 ET0=0; TR0=0; 关闭中断 保证程序顺利运行 重新赋值 count+; if (count=100) count=0; time-; second秒减1 if(time=0) second

9、 这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序 time=0; second减到0是重新赋值99 light(); if(time!=0) ET0=1;TR0=1; 定时时间未到 需要恢复中断五、实验过程中遇到的问题及解决方法 按键4和5的减功能不能实现,经调试发现,是按键扫描程序的问题,未加释放检测语句,修改后,问题解决。 数码管不能够显示,推测是延时较短所致,增加延时时间问题得以解决。倒计时结束后,LED显示不正常,并且不能够复位,过程只能执行一次,仔细检查程序,发现是由于中断程序内没有屏蔽中断响应,造成程序跑飞所致,经过修改,为题解决。实验三 双机通信实验UART 串行通信接口技术应用用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。串口收发模块;串口中断模块;程序主要有:定时器初始化模块,串口收发初始化模块,数码管显示模块;按键扫描模块;定时器采用T1定时器,工作方式为模式2,自动重装初值。 针对不同的键值发送相应的数值,采用switch结构。发送功能

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1