- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 键盘及LED显示实验
一、实验内容
利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED显示器显示出来。
二、实验目的及要求
(一)实验目的
通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力三0xfc 0x60 0xda 0xf2 0x66 0xb6 0xbe 0xe0 0xfe 0xf6 0xee 0x3e 0x9c 0x7a 0x9e 0x8e
六、实验原理图
七、连线说明
F4区:CS、A0、A1 —— A3区:CS1、A0、A1 B6区:JP56(PA口) —— F4区:JP41(C) B6区:JP53(PB口) —— F4区:JP42(B) B6区:JP52(PC口) —— F4区:JP47(A) A3区:JP51 —— F4区:JP92(D) A3区:P1.6、P1.7 —— A3区:INT0、INT1 注:F4的D无法与INT0(P3.2)、INT1(P3.3)直接连接,所以使用P1口桥接。
八、实验参考流程图
1.主程序流程图
2.外中断服务程序流程图
外部中断0 外部中断1
定时器0中断程序,用于消抖动:
3.LED显示程序流程图
九、C51语言参考源程序
#include reg52.h
unsigned char KeyResult; //存放键值
unsigned char buffer[8]; //显示缓冲区
bit bKey; //是否有键按下
xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口
xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口
xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口
xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口
code unsigned char SEG_TAB[] = { //段码
0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0};
sbit bLine0 = P3^2;
sbit bLine1 = P3^3;
//延时1ms
void Delay1ms()
{
unsigned char i;
i = 0;
while (--i);
}
//显示
void Display()
{
unsigned char i = 0x7f;
unsigned char j;
for (j = 0; j 8; j++)
{
PA_8255 = i; //扫描
PB_8255 = SEG_TAB[buffer[j]]; //段数据
i = i / 2 + 0x80;
Delay1ms();
}
}
//更新显示缓冲区数据
void RefurbishData()
{
char i;
for (i = 7; i 0; i--)
buffer[i] = buffer[i-1];
buffer[0] = KeyResult;
}
void Int0Int() interrupt 0
{
unsigned char i = 0x80;
unsigned char KeyResult0 = 0x0;
EX0 = 0; //关外部中断0
P_8255 = 0x89; //PC口输入
bLine0 = 0; //P3.2作行输出
while (i)
{
if ((PC_8255 i) == 0)
break;
KeyResult0++;
i = 1;
}
P_8255 = 0x80; //8255的PA、PB、PC口全作输出口
PC_8255 = 0;
bLine0 = 1;
if (i)
{
TH0 = 60; //定时中断计数器初值
TL0 = 176; //定时50ms
TR0 = 1;
KeyResult = KeyResult0;
}
IE0
您可能关注的文档
- 2016二级建造师-建筑实务-高频考点讲义.doc
- 2016二级建造师-建筑实务-高频考点终极版666讲义.doc
- 2016福建省计算机二级C语言复习经典讲义.doc
- 2016届中考复习5:(一元一次不等式及应用)讲义.doc
- 2016考研国内时政讲义.doc
- 2016年安顺市初中毕业生学业、3讲义.doc
- 建筑构造图集讲义.doc
- 建筑机械安全技术交底卡讲义.doc
- 建筑节能分部工程质量验收表及目录讲义.doc
- 建筑结构实训2011姬少兴讲义.doc
- 2025年7月广东广州市华颖外国语学校编外聘用制专任教师招聘1人备考试题及答案解析.docx
- 2025年井冈山市碧溪镇人民政府面向 社会公开招聘工作人员笔试参考题库附答案解析.docx
- 2025年福建省厦门市华侨大学华文学院招聘直聘型项目制教师笔试参考题库附答案解析.docx
- 2025年河北唐山市丰南区事业单位招聘工作人员187人笔试参考题库附答案解析.docx
- 2025四川大学华西厦门医院招聘事业单位人员10人笔试参考题库附答案解析.docx
- 2025江西鹰潭月湖恒通村镇银行梅园金融服务站新员工笔试参考题库附答案解析.docx
- 2025年7月广东广州市天河区第一实验小学招聘编外聘用制专任教师2人笔试参考题库附答案解析.docx
- 2025河南洛阳城投地产发展有限公司部门副经理招聘1人笔试参考题库附答案解析.docx
- 2025年喀什地区高校毕业生“三支一扶”计划招募(446人)笔试参考题库附答案解析.docx
- 2025河南洛阳工业控股集团有限公司招聘所属公司高级管理人员2人笔试参考题库附答案解析.docx
文档评论(0)