键盘显示实验Word格式.docx
- 文档编号:18238100
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:12
- 大小:72.99KB
键盘显示实验Word格式.docx
《键盘显示实验Word格式.docx》由会员分享,可在线阅读,更多相关《键盘显示实验Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
此时敲P键可重新输入预置值。
⑤、E键:
程序退出。
四、编程2接线方法
1.用一根20芯扁平电缆将实验扩展板与实验台上扩展插头J7相连。
2.实验台上8253CLK0接1MHZ,GATE0和GATE1接+5V,OUT0接CLK1,OUT1接IRQ,CS接280H~287H。
五、程序原理图
六、流程图
七.程序
/***************************/
/*8279键盘显示控制器2*/
#include<
stdio.h>
conio.h>
#include"
ApiEx.h"
#pragmacomment(lib,"
ApiEx.lib"
)
#defineioport0x2b0//8279数据口
#defineioport10x2b1//8279控制口
#definetime0x280//8253定时器0口地址
#definetime10x281//8253定时器1口地址
#definetimec0x283//8253控制口地址
intbuf=0;
//计数单元
intsign=1;
//计数标志
intsec1=0,sec2=0;
//秒高/低位
intmin1=0,min2=0;
//分高/低位
inthour1=0,hour2=0;
//时高/低位
interr1=0;
//出错标志
inthms;
//预置时,分,秒标志
intled[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,
0x39,0x5E,0x79,0x71,0x67,0x37,0x73,0x31,0x3E,0x36,0x66,0x80,0x40};
//0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,g,m,P,r,w,x,y,.,-
intkeyin=0;
voidkey();
//键盘显示子程序
voiddisp();
//显示子程序
voidhigh();
//预置时、分、秒高位子程序
voidlow();
//预置时、分、秒低位子程序
voidint_proc();
//中断处理子程序
voiderror();
voidmain()
{
printf("
--------------------EXP29_21_SYB---------------------\n"
);
1.8253(CLK0)===TPC(1MHz)\n"
2.8253(GATE0,GATE1)===TPC(+5V)\n"
3.8253(OUT0)===8253(CLK1)\n"
4.8253(OUT1)===TPC(IRQ)\n"
5.I/O(280-287)===8253(CS)\n"
6.SYB===J7\n"
Pressanykeytobegin!
\n\n"
getch();
Presssmallkeybord:
\n"
C--CLEARTOZERO;
G--GOAHEAD\n"
D--STOPTHEDISPLY;
P--POSITIONTHEBEGINNINGTIME\n"
E--EXIT\n"
if(!
Startup())/*打开设备*/
{
printf("
ERROR:
OpenDeviceError!
return;
}
PortWriteByte(timec,0x36);
//8253初始化
PortWriteByte(time,1000%256);
PortWriteByte(time,1000/256);
PortWriteByte(timec,0x74);
PortWriteByte(time1,100%256);
//定时器1每0.1S中断1次
PortWriteByte(time1,100/256);
PortWriteByte(ioport1,0xd3);
//8279清零
PortWriteByte(ioport1,0x2a);
//置8279时钟命令
PortWriteByte(ioport1,0x40);
//读FIFO存储器命令
PortWriteByte(ioport1,0x00);
//置键盘显示模式
PortWriteByte(ioport1,0x80);
//写显示缓冲区命令
RegisterLocalISR(int_proc);
/*注册中断程序*/
EnableIntr();
/*开中断*/
do{
key();
//调键盘显示子程序
if((hour2==0x0a)|(keyin==0x0c))//是否'
C'
命令
{
sign=0;
hour2=0;
hour1=0;
min2=0;
min1=0;
sec2=0;
sec1=0;
}
if(keyin==0x10)//是否'
G'
命令
sign=0x01;
}elseif(keyin==0x0d)//是否'
D'
sign=0x00;
}elseif(keyin==0x12)//是否'
P'
//'
00'
为预置时标志
hms=0x00;
high();
if(err1!
=0x01)
{
low();
if(err1!
{
hms=0x11;
11'
为预置分标志
high();
if(err1!
{
low();
if(err1!
{
hms=0x22;
//'
22'
为预置秒标志
high();
if(err1!
{
low();
}
}
}
}
}
}while(!
(keyin==0x0e));
E'
命令,退出程序
DisableIntr();
/*关中断*/
Cleanup();
/*关闭设备*/
}
voidint_proc()
if(sign!
=0)//是否允许计数
buf++;
//计数单元加1
if(buf==10)
buf=0;
sec1++;
if(sec1==10)
sec1=0;
sec2++;
if(sec2==6)
sec2=0;
min1++;
if(min1==10)
min1=0;
min2++;
if(min2==6)
min2=0;
hour1++;
if((hour1==4)&
(hour2==2))
hour2=0;
hour1=0;
if(hour1==10)
hour2++;
voidkey()
BYTEdata;
PortWriteByte(ioport1,0xd1);
//清显示
Sleep(100);
disp();
//调显示子程序
PortReadByte(ioport1,&
data);
(data&
0x07));
PortReadByte(ioport,&
//读状态
keyin=data&
0x07;
data=data&
0x38;
data>
>
=3;
if(data==0)//是否第一行键按下
keyin=keyin+0x08;
//第一行,加8
elseif(data!
=1)//是否第二行键按下
keyin=keyin+0x10;
//第三行,加10H
voiddisp()
PortWriteByte(ioport1,0x90);
PortWriteByte(ioport,led[sec1]);
PortWriteByte(ioport,led[sec2]);
PortWriteByte(ioport,led[min1]);
PortWriteByte(ioport,led[min2]);
PortWriteByte(ioport,led[hour1]);
PortWriteByte(ioport,led[hour2]);
voidhigh()
key();
err1=00;
if(hms==0x00)//HMS是预置时、分、秒标志,00预置时
if(keyin<
=0x02)
hour2=keyin;
}else
error();
}elseif(hms==0x11)//11预置分
=0x05)
min2=keyin;
}elseif(keyin<
=0x05)//22预置秒
sec2=keyin;
}else
error();
voiderror()
err1=0x01;
hour2=0x0e;
hour1=0x18;
min2=0x18;
min1=0x18;
sec2=0x18;
sec1=0x18;
voidlow()
if(hms==0x00)//预置时、分、秒低位
if(((keyin<
=0x09)&
(hour2==0))|((keyin<
(hour2==1))|((keyin<
=0x03)&
(hour2==2)))
hour1=keyin;
=0x09)
min1=keyin;
=0x09)//22预置秒
sec1=keyin;
8、实验总结
通过本次实验,我初步掌握了keil软件的使用与调整方法。
掌握了单片机与8279接口电路的连接,键盘显示专用芯片8279的编程方法,对单片机应用系统有了一定的了解:
提高了实际动手能力与分析、解决问题的能力。
本次实验是第一次上机,还不熟悉软硬件的结合与调试程序。
本次实验的训练为以后的实验课打下了深厚的基础,起着指导性的作用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 键盘 显示 实验