实验二 I/O口实验
一 实验目的
1、通过对P1口的输入输出控制,掌握MCS-51系列单片机I/O口的使用,掌握I/O口的基本功能和控制方法;
2、掌握I2C接口的键盘和LED数码管的应用及C51函数使用方法;
3、进一步熟悉C51的集成开发环境,进一步掌握C51程序设计方法。
二、实验内容
1、用P1口,选1根口线()接按键输入,另1根口线()接LED输出,每次按键时,LED亮、灭交替变化。
2、,(低电平表示有键按下),调试给出的实验程序,理解ZLG7290对4x4键盘和8个LED数码管控制的方法,掌握数码管显示和读按键值的C51函数使用方法,编程实现按16个不同的键时分别在两个数码管上显示01至16。
3、在掌握按键识别和数码管显示方法的基础上,实现万以内数的计算器功能。
三 实验步骤
1、关闭电源,、、LED1,检查无误后打开电源。
2、打开KeilC51软件,建立工程文件,编写程序并添加到工程中,编译无误后运行,检查程序结果,K1每次按键时,LED1亮、灭交替变化。(注意检测按键时,为了去掉抖动,若检测到有键按下,延时10ms左右之后再判断一次,若仍为低电平,则确认键按下,否则不操作。另外注意判断键是否按下为读引脚,可以先写1再读。)
3、关闭电源,用导线分别连接A2区INT1、T0、T1到D5区INT_KEY、SDA、SCL,(+5V)到D5区的RST_L,检查无误后打开电源。从ftp://“LED显示和键盘”示例程序,编译运行程序,检查程序结果,按下D5区的S1—S16时八个数码管显示1—G。
4、阅读ZLG7290芯片资料,理解ZLG7290访问和控制方法,理解I2C总线控制协议原理,仔细分析示例程序,掌握ZLG7290_GetKey()、ZLG7290_SendCmd(Data1, Data2)等函数的用法,编程实现按S1—S16时在两个数码管上显示01—16。(用专用芯片ZLG7290完成按键识别和显示,不用再考虑去抖动,只需掌握C51实现的2C接口函数使用方法)
5、参照普通计算器功能,编程实现万以内数的计算器。十六个键功能自己定义。需要实现BCD至二进制和二进制至BCD之间的转换。为了实现本项功能,务必预习,提前编程并用模拟调试排除程序错误。
四 注意事项
1、接线或拔线之前请先断电,检查无误后再加电;
2、可以先只考虑整数计算和显示,功能正确后可以进一步实现浮点数计算和显示。
3、键盘和显示是人机交互的基本方法,在后面的实验中还要用到,务必掌握。
五实验源程序
程序一:
#include<>
#define uchar unsigned char
sbit P11=P1^1;
sbit P10=P1^0;
delay(uchar i)
{
uchar j,k;
for(k=0;k<i;k++)
for(j=0;j<200;j++);
}
void main(void)
{
P11=1;
P10=1;
while(1)
{ if(P
实验二IO口实验 来自淘豆网m.daumloan.com转载请标明出处.