实现定时亮灯.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实现定时亮灯

计算机科学与技术系 实 验 报 告 专业名称 计算机科学与技术专业 课程名称 单片机应用设计 项目名称 实现定时亮灯 班 级 学 号 姓 名 同组人员 无 实验日期 2016年5月13日 一、实验目的与要求 1、熟悉Keil C51集成环境软件的使用方法; 2、熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件; 3、熟悉畅学开发平台,掌握单片机最小系统及IO口的简单控制及不同组IO口的特点。 二、实验内容 2.1 实验完成内容 设计定时关灯实验,从键盘输入时间,按一下1键灯亮,时间每秒减一,减到0为止,灯熄灭,可以再次输入时间,启动定时过程。 2.2 芯片选型 Keil 51 2.3 电路原理图 2.4 关键资源说明(所应用单片机内部资源及外围接口芯片的核心说明) MCS-51单片机内部资源主要有并行I/O口、中断系统、定时器/计数器、以及串行接口。 2.5 程序流程图 开始 检测按键是否按下 如果按下按键检测按键值,启动定时 同时点亮LED灯,时间逐一相减 时间到0时,停止定时,同时灯灭 可再次按下按键,重新定时 实验程序 #include REG51.H #define U8 unsigned char #define key_port P1 bit run = 0; sbit Lamp = P3^7; code U8 kcode[]={0xb7,0xbe,0xde,0xee,0xbd,0xdd,0xed,0xbb,0xdb,0xeb,0xd7,0xe7}; //反转码对应键值 0 1 2 3 4 5 6 7 8 9 A B code U8 disp[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff}; U8 buf[4]={0,0,0,0}; U8 cnt=0; U8 scn[]={0x7f,0xbf,0xdf,0xef};// 先点亮左边一个数码管 void delay_ms(U8 ms) { U8 i,j; for(i=0;i100;i++) { for(j=0;jms;j++);}; } U8 key(void) { U8 a,r=0xff; delay_ms(20); // 延时20毫秒,消除按键抖动 if(key_port == 0xf0) goto rn; a = key_port; key_port = a | 0x0f; delay_ms(20); a = key_port; for (r = 0;r = 11;r++) { if(a == kcode[r]) break;}; if(r 11) r = 0xff; //0xff表示无效 rn: key_port = 0xf0; return r; } void main(void) { U8 k,i; TMOD = 0x01; // 设定时器0为模式1(16位) TH0 = 0xee; // 晶振11.0592MHz,5mS TL0 = 0; TR0 = 1; // 开始计数 EA = 1; // 允许中断 ET0 = 1; // 定时器0中断允许 key_port = 0xf0; Lamp = 1; // 清除加号标志 delay_ms(20); while(1) // 循环 { if (key_port != 0xf0) { k = key(); if (k 10) { if(run == 0) { for(i=1;i=3;i++) buf[i-1]=buf[i];// 数字左移一位 buf[3] = k;// 在个位显示刚按的数字 } } else { if(k == 10){ run = 1; Lamp = 0;} } while(key_port != 0xf0);// 等待按键抬起 delay_ms(20); while(key_port != 0xf0); } } } void timeint(void) interr

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档