版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1、具有人机对话功能。实现人对应用系统的状态干预和数据输入以及应用系统向人报告运行和运行结果。2、(1)判断键盘上是否有键闭合(2)去除键的机械抖动,再次判断键盘是否有键闭合。(3)键盘扫描取得闭合键的行列值,通常采用扫描法。(4)求取闭合键的键号(5)判断闭合键是否释放,如未释放继续等待。(6)将闭合键键号保存,同时转去执行该闭合键的功能。3、#include<reg51.h>#define uchar unsigned charuchar code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0
2、x7c,0x39,0x5e,0x79,0x71,0x40;uchar code keytab=0x28,0x14,0x24,0x44,0x12,0x22,0x42,0x11,0x21,0x41,0x81,0x82,0x84,0x88,0x48,0x18;uchar code disbit=0x40,0x80;uchar disbuf=0,0;void delay5ms();bit Keytest();void display(uchar x) ;uchar GetKeyNum();void main() uchar Keynum=0;TMOD=0X10;TR1=1;P2=0;while(1)
3、if( Keytest() Keynum=GetKeyNum(); display(Keynum);void delay5ms() TH1=(65536-5000)/256;TL1=(65536-5000)%256;while(!TF1);TF1=0;void display(uchar x) /显示 uchar ii; if(x=16) disbuf0=dispcodex; disbuf1=dispcodex; else disbuf0=dispcodex/10;disbuf1=dispcodex%10; for(ii=0;ii<2;ii+) P0=0x0; if(disbufii=0
4、x3f)&&(ii<1) P0=0x0;else P0=disbufii;P2=disbitii;delay5ms();P2=0; bit Keytest()、/判断是否 有键按下、 uchar temp;P1=0xf0;temp=P1;temp&=0xf0;if(temp=0xf0)return 0;else return 1 ; uchar GetKeyNum() /扫描法求键号 uchar i,j=1,k;if(Keytest() delay5ms(); if(Keytest() j=0x01; /行线送扫描初始值 for(i=0;i<4;i+) P1
5、=j; /扫描值送P1口 k=P1; /读P1口状态k=k&0xf0; /K中保留高四位低四位清零if(k!=0) break;/如果K!=0则列线有输入,退出循环 j=j<<1; k=k+j; while(Keytest() ; /按键释放 for(i=0;i<16;i+) if(keytabi=k)break; 搜索/搜索编码,获得键号 return(i) ;/返回键号4、静态:一个数码管需要8条I/O口线,N个数码管就需要8N条I/O口线。当单片机的I/O口数据线足够用时、对数码管的亮度要求较高时选用。 动态:一个数码管位选需要1条I/O口线,段选需要8条I/O
6、口线。N个数码管需要(N+8)条I/O口线。利用发光管的余辉和人眼视觉暂留作用,使人感觉好像各位数码管同时都在显示。当单片机的I/O口数据线不够用时、对电路成本要求低、对数码管亮度要求不高时选用。5、#include<reg51.h>#define uchar unsigned charuchar code dispcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xb7,0xbfuchar code disbit=0x0e,0x0d,0x0b,0x07;sbit K13=P24;sbit K14=P25;sbit K1
7、5=P26;sbit K16=P27;uchar keycnt1=0,keycnt2=0,keycnt3=0,keycnt4=0;void main() while(1) if(!K13) keycnt1+; if(keycnt1=10) keycnt1=0;while(!K13);P0=dispcodekeycnt1;P2=disbit0;if(!K14) keycnt2+; if(keycnt2=10) keycnt2=0; while(!K14); P0=dispcodekeycnt2;P2=disbit1; if(!K15) keycnt3+; if(keycnt3=10) keycn
8、t3=0; while(!K15); P0=dispcodekeycnt3;P2=disbit2; if(!K16) keycnt4+; if(keycnt4=10) keycnt4=0; while(!K16); P0=dispcodekeycnt4;P2=disbit3; 6、#include<reg51.h> #define uchar unsigned char sbit LED=P16; void main() TMOD=0X10; LED=1; while(1) TH1=0XCO; TL1=0X63; TR1=1; while(!TF1); TF1=0; LED=LED;7、中断向量入口地址,外部中断0为0003H,定时器0为000BH,外部中断1为0013H,定时器1为001BH,串行端口为0023H。8、电平触发:判断n个周期的采样是否都为同一个值,且这个值是你的设定触发电平,则执行指令。边沿触发:判断相邻2个周期的采样是否不同,假设有高低电平A,B,如果你设定A->B执行指令,则称为下降沿触发;否
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度呈现合集员工管理篇
- 单位管理制度呈现大合集人员管理篇
- 工作转正自我鉴定4篇
- 3D打印在计算机维修中的创新应用
- 《用色彩画心情》课件
- 第3单元+中国特色社会主义道路
- 物流行业顾问工作总结
- 乒乓球比赛的作文汇编10篇
- 输液室护士的职责概述
- 游乐园前台服务感悟
- 三年级《稻草人》阅读测试试题附答案
- 心理健康与职业生涯(第一章)课件
- DB-T 29-202-2022 天津市建筑基坑工程技术规程
- 粤教版三年级劳动与技术全册教案教学设计
- 越努力越幸运商务红色工作汇报PPT模板
- (完整版)外科学名词解释【完整版】
- 永磁同步电机控制系统设计与仿真毕业论文
- 传感器与检测技术课后习题和答案(陈杰)
- 藏历新年ppt模版课件
- 基于PLC的自动门控制系统
- 沪教牛津版小学四年英语上册全册教案
评论
0/150
提交评论