No.39644 作者:flora_qqq 邮件:wanqing_lui@163.com ID:109119 登陆:2次 文章数:2篇 最后登陆IP:222.91.21.121 最后登陆:2008/4/28 17:15:25 注册:2008/4/25 11:07:53 财富:108 发帖时间:2008/4/25 11:41:02 发贴者IP:222.91.10.229 标题:flora_qqq:8279的应用问题[求助] 摘要:No.396448279的应用问题[求助] 在用8279做一个键盘显示的东西,在调试中发现上电复位后,4位显示总是显示8,测试单片机的WR RD端总是输出高,按按键后8279的IRQ端没有输出,麻烦各位大侠,帮忙看看!程序如下: //8279键盘和显示程序 #include <at89x51.h> #include <absacc.h> #include <stdio.h> #define COM8279 XBYTE [0xF2FF] //定义8279控制口 #define DATA8279 XBYTE [0xF0FF] //定义8279数据口 #define uchar unsigned char #define uint unsigned int uint keyval; //定义键内码传递参数; uint time; //定义延时参数; void delay(uint time); void key(void); void main() { delay(1300); //开机延时 COM8279 = 0xD3; //清除RAM和FIFO delay(1); EA=1; EX1=1; //开总中断,开外部中断1; IT1=1; //外部中断1选用下降沿 COM8279=0x00; //8279键盘双键互锁,编码扫描,左端入口 COM8279=0x32; //时钟分频设置,分频数为18 COM8279=0x70; //设置读显示命令 COM8279=0x90; //设置写显示命令 while(1); } void delay (uint time) //传递参数为time { uchar j; while (time--) //用time-1来进行循环/ { for (j=100;j> 0;j--) //用j来进行125次循环,大约8us {;} } } void intsvr1(void) interrupt 2 using 1 { keyval=DATA8279; key(); } //按键确认程序 void key(void) { switch(keyval) { case 0xC3: //0号键赋值; { P0=0x3F; DATA8279=P0; break; } ......
>>返回讨论的主题
|