开发工具:
文件大小: 4kb
下载次数: 0
上传时间: 2009-05-18
详细说明: //------------------------------------------------------------------------------------ // Includes //------------------------------------------------------------------------------------ #include /*SFR定义*/ #include //------------------------------------------------------------------------------------ // Global CONSTANTS //------------------------------------------------------------------------------------ #define PORTA 0x8000 /*8255端口A*/ #define PORTB 0x8001 /*8255端口B*/ #define PORTC 0x8002 /*8255端口C*/ #define PORTCON 0x8003 /*8255控制口*/ sbit BUZ = P3^5; //------------------------------------------------------------------------------------ // Function PROTOTYPES //------------------------------------------------------------------------------------ void PORT_Init (void); /*************************************************************************************** 函数名称: void sleep_ms(WORD count) 功能描述: 延时 输入: WORD count(所要延时的长度) 输出: 无 全局变量: 无 调用模块: _nop_() ***************************************************************************************/ void sleep_ms(unsigned int count) { unsigned char ii,jj; for(ii=0;ii=0x04) ScanData=0x00; switch(ScanData) { case 0x00: *Pointm=0xfe; /*扫描第一列*/ break; case 0x01: *Pointm=0xfd; /*扫描第二列*/ break; case 0x02: *Pointm=0xfb; /*扫描第三列*/ break; case 0x03: *Pointm=0xf7; /*扫描第四列*/ break; default: *Pointm=0xff; } sleep_ms(100); Pointm=PORTA; temp=*Pointm; /*读是否有键按下*/ k=temp; }while(temp==0xff); BUZ=0; /*有键按下*/ sleep_ms(200); BUZ=1; temp = temp & 0xf0; if(temp==0x00) temp = temp | 0xf0; /*PA4~PA7没加上啦*/ if(temp==0xf0){ /*0~F按下*/ /*换算成数字键值*/ k=~k; k=k&0x0f; k=k/2; if(k>=4) k=3; k=k*4; temp=ScanData; temp=temp+k; _nop_(); } else{ /*F1~F4按下*/ switch(temp) { case 0xe0: temp = 0xf1; /*F1键按下*/ break; case 0xd0: temp = 0xf2; /*F2键按下*/ break; case 0xb0: temp = 0xf3; /*F3键按下*/ break; case 0x70: temp = 0xf4; /*F4键按下*/ break; default: temp = 0x00; } _nop_(); } } } /*************************************************************************************** 函数名称: void PORT_Init(void) 功能描述: 初始化I/O 输入: 无 输出: 无 全局变量: XBR2,P74OUT,EMI0CF,EMI0TC,P3MDOUT 调用模块: _nop_() ***************************************************************************************/ void PORT_Init (void) { XBR2 = 0x40; /*使能交叉开关和弱上拉*/ P74OUT |= 0xff; /*使能P6,P7推挽输出*/ EMI0CF |= 0x2c; /*EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉宽占1个SYSCLK周期*/ EMI0TC |= 0x6c; /*地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期*/ P3MDOUT |= 0xdf; /*使能P3.5推挽输出*/ } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.