实验四 单片机设计实验.docx

上传人:b****7 文档编号:25927760 上传时间:2023-06-16 格式:DOCX 页数:11 大小:171.44KB
下载 相关 举报
实验四 单片机设计实验.docx_第1页
第1页 / 共11页
实验四 单片机设计实验.docx_第2页
第2页 / 共11页
实验四 单片机设计实验.docx_第3页
第3页 / 共11页
实验四 单片机设计实验.docx_第4页
第4页 / 共11页
实验四 单片机设计实验.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

实验四 单片机设计实验.docx

《实验四 单片机设计实验.docx》由会员分享,可在线阅读,更多相关《实验四 单片机设计实验.docx(11页珍藏版)》请在冰豆网上搜索。

实验四 单片机设计实验.docx

实验四单片机设计实验

 

课程名称:

单片机实验

题目:

实验四单片机设计实验

学生姓名:

专业:

班级:

学号:

指导教师:

日期:

年月日

 

实验四单片机设计实验

一、实验目的

1、掌握单片机定时器、中断、键盘扫描、动态显示及数值计算的综合运用能力;

2、掌握编程的运用能力;

3、设计一只简易的16键计算器。

二、实验内容

图5-1

编程实现图5-1的简易16键4位十进制整数计算器的功能。

要求:

1.设计4*4的键盘,其中10个数字键0~9,其余6个为“+”“-”“*”“/”“=”和“C”

2.设计4位LED接口电路或LCD显示电路

3.实现2位数的简单运算

编程提示:

1、定时显示

开辟一显示缓冲区,显示中断程序定时读取缓冲区显示各位数字,每位显示2.5ms,显

示4位需要10ms,也就是显示的刷新频率是100Hz。

这样既保证亮度又不闪烁,同时CPU还

有足够时间做其他事情。

2、键盘中断扫描

利用键盘中断扫描程序,读出按键的键码,存入键盘缓冲区,供主程序读取。

3、计算器的主程序读取键盘缓冲区的键码,驱动计算器的运行。

4、计算中需要十进制与十六进制(或二进制)转化。

图5-2简易16键计算器主程序框图

 

三、系统硬件设计电路图

 

四、软件设计

#include

#include//循环位移头文件

#defineucharunsignedchar//宏定义

#defineuintunsignedint

sbitP1_4=P1^4;//I/O端口定义(矩阵扫描后4位端口)

sbitP1_5=P1^5;

sbitP1_6=P1^6;

sbitP1_7=P1^7;

uchari,nums;

ucharwei,wei2,ss,ss1,ss2,str[]={0,0,0,0,0,0,0};

longtemp,temp1,str[]={10,10,10,10,10,10,10};

ucharcodedutable[]={//段位编码

0xc0,0xf9,0xa4,0xb0,0x99,0x92,

0x82,0xf8,0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};

ucharcodewetable[]={

0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

voidinit();//函数声明

voidpanduan();

voiddisplay();

voiddelay(uintz);

voidshaomiao();

voidmain()//主函数

{

init();//调用变量初始化函数

while

(1)//大循环

{

shaomiao();//调用矩阵扫描加处理函数

diaplay();//调用显示函数

}

}

voidinit()

{

ss2=0;

wei2=1;

temp1=0;

ss=0;

ss1=0;

temp=0;

wei=0;

num=0;

}

voiddelay(uintz)//延时函数(单位ms)

{

uchari;

uintj;

for(j=z;j>0;j--)

for(i=114;i>0;i--);

}

voidshaomiao()//扫描加处理函数

{

for(i=0,s=0xfe;i<4;i++)//低四位端口依次赋值1

{

P1=s;//对P1口赋值

panduan();//调用判断处理函数

s=_crol_(s,1);//s循环位左移

s=sl0xf0;//进行位或运算(使高4位复原)

}

}

voidpanduan()

{

ucharn;

if(P1_4==0||P1_5==0||P1_6==0||P1_7==0)

{

delay(10);

P1=sl0xf0;

if(P1_4==0||P1_5==0||P1_6==0||P1_7==0)

{

if(P1_4==0)

{n=1;num=i*4+n-1;}

elseif(P1_5==0)

{n=2;num=i*4+n-1;}

elseif(P1_6==0)

{n=3;num=i*4+n-1;}

elseif(P1_7==0)

{n=4;num=i*4+n-1;}

if(num<10&&wei!

=7)

{

wei++;

if(ss1==1)

{

temp=0;

str[6]=str[5]=str[4]=str[3]=str[2]=str[1]=10;

str1[6]=str1[5]=str1[4]=str1[3]=str1[2]=str1[1]=0;

ss1=0;

}

str[wei]=num;

if(str[1]!

=10)temp=str[1];

if(str[2]!

=10)temp=str[1]*10+str[2];

if(str[3]!

=10)temp=str[1]*100+str[2]*10+str[3];

if(str[4]!

=10)temp=str[1]*1000+str[2]*100+str[3]*10+str[4];

if(str[5]!

=10)temp=str[1]*10000+str[2]*1000+str[3]*100+str[4]*10+str[5];

if(str[6]!

=10)temp=str[1]*100000+str[2]*10000+str[3]*1000+str[4]*100+str[5]*10+str[6];

}

if(num>=10)

{

wei=0;

if(num==10)

{

temp=0;

l[1]=0;

wei=0;

temp1=0;

ss=0;

wei2=1;

}

if(ss1==0&&num==11||(ss1==0&&ss2!

=0&&num>>11&&num<16))

{

if(num==11)

ss2=0;

switch(ss)

{

case0:

break;

case1:

temp=temp1;break;

case2:

temp=temp1-temp;break;

case3:

temp=temp*temp1;break;

case4:

temp=temp1/temp;break;

}

if(temp>999999)

temp=0;

ss1=1;

}

if(num==12)

{

temp1=temp;

ss=1;ss1=1;ss2=1;

}

if(num==13)

{

temp1=temp;

ss=2;ss1=1;ss2=1;

}

if(num==14)

{

temp1=temp;

ss=3;ss1=1;ss2=1;

}

if(num==15)

{

ss=4;ss1=1;ss2=1;

}

}

}

str1[6]=temp/100000;

str1[5]=temp%100000/10000;

str1[4]=temp%10000/1000;

str1[3]=temp%1000/100;

str1[2]=temp%100/10;

str1[1]=temp%10/1;

if(str1[1]!

=0)

wei2=1;

if(str1[2]!

=0)

wei2=2;

if(str1[3]!

=0)

wei2=3;

if(str1[4]!

=0)

wei2=4;

if(str1[5]!

=0)

wei2=5;

if(str1[6]!

=0)

wei2=6;

}

while(P1_4==0||P1_5==0||P1_6==0||P1_7==0);

}

voiddisplay()

{

chari1;

for(i1=1;i1

{

P2=wetable[0];

P3=dutable[14];

}

else

{

P2=wetable[i1-1];

P3=dutable[str1[i1]];

delay(10);

P3=0xff;

}

}

五、实验感想与体会

这一次的单片机设计实验我花了五天时间去完成,第一天我通过在网上和去图书馆找资料了解了这一方面的知识,第二,三天我在电脑上进行硬件电路的设计,第四,五天我进行了软件的设计并且进行了最后的仿真调试。

在这次单片机设计过程中我锻炼了自己的思考能力和动手能力,本次单片机设计实验加强了我思考问题的完整性和实际生活联系的可行性,在设计实验过程中,我培养起了综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识,还锻炼了个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力,并且熟练掌握了有关器件的性能及测试方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1