实验2-石雅文-0129

作者: 石雅文0129 | 来源:发表于2018-05-19 21:26 被阅读60次

一、实验目的

根据在大开发板上独立按键的实验在小开发板实现,完成实验代码的移植。

二、实验器材

Keil 5软件、计算机、小开发板、烧录软件

三、实验原理

(一)大板数码管结构

图片.png

通过三八译码器实现三位信号来控制位选信号,故在代码中定义三个位选信号。

(二)小板数码管结构

图片.png

小板位选信号由P2.0,P2.1,P2.2,P2.3四口控制。

(三)异同点

(1)大板使用三八译码器连接位选信号,是用三位信号控制,小板没有使用三八译码器,直接由四口控制,故位选信号为4位。
(2)大板为共阴极电路,小板为共阳极电路,故小板的位选信号为高电平有效,段选信号为低电平有效。
(3)小板的位选信号为8位,分别是7个线加上1个点。分别是 a,b,c,d,e,f,g,dp 从上端开始逆时针转动,到中间横线再到点dp,习惯以“a”段对应字形码字节的最低位,故从最高位到最低位分别是dp,g,f,e,d,c,b,a,故可写出段选信号,对应字形码如下图:


#

四、代码实现

                  独立按键实验                                                 
实现现象:下载程序后按下K1按键可以对D1小灯状态取反。
注意事项:无                                                                                
***************************************************************************************/
#include <reg52.h>           //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;     //对数据类型进行声明定义
typedef unsigned char u8;
sbit LSA=P2^0;//为定义位选信号的端口
sbit LSB=P2^1;
sbit LSC=P2^2;
sbit LSD=P2^3;
sbit K3=P3^5;//定义按键

u8 code smgduan [17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};//
u8 number[4]={0,0,0,0};

/*******************************************************************************
* 函 数 名         : delay
* 函数功能         : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
    while(i--); 
}

/*******************************************************************************
* 函 数 名         : DigDisplay
* 函数功能         : 按键处理函数,判断位选信号
*******************************************************************************/
void DigDisplay()
{
 u8 i;
 for(i=0;i<4;i++)//依次显示每位数字
 {
 switch(i)
 {
 case(0):
  LSA=1;LSB=1;LSC=1;LSD=0;break;
    case(1):
  LSA=1;LSB=1;LSC=0;LSD=1;break;
    case(2):
  LSA=1;LSB=0;LSC=1;LSD=1;break;
    case(3):
  LSA=0;LSB=1;LSC=1;LSD=1;break;
 }
 P0=smgduan[number[i]];//显示第i位数字的字形码
 delay(100);
 P0=0xff;//消隐
 }
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能       : 主函数
* 输    入       : 无
* 输    出         : 无
*******************************************************************************/
void main()
{   
u16 n=0,m=0;
u8 i=0;
K3=1;
    while(1)
    {   
    if(K3==0)//当按键被按下时
    {
    while(K3==0); //等待按键按键抬起,确保按动一下,计数加1,防止所加过多
    n++;
    m=n;
    for(i=0;i<4;i++)
    {
    number[i]=m%10;
    m=m/10;
    }
    }   
    DigDisplay();
    }       
}

五、试验流程

1.分析大板和小板的原理结构图,找出区别。
2.根据区别,在Keil5中将大板代码改写为小板使用的代码,以便在小板内正常运行。
3.通过烧录软件运行编写程序。

六、实验结果

按键过程中部分照片展示


IMG20180519192831.jpg IMG20180519192836.jpg IMG20180519192840.jpg IMG20180519192847.jpg IMG20180519192852.jpg IMG20180519192859.jpg

七、实验总结

1.注意小板使用的是四个端口,不同于大板的三个端口。
2.延时和消隐功能不能忘记。
3.编写代码时要谨慎小心,以免出现运行检查不出来的错误。
4.小板字形码编写的原则比大板相对复杂,可列表写出。小板是共阳极,位选高电平有效,段选低电平有效,大板是共阴极,位选是低电平有效,段选是高电平有效。

相关文章

  • 实验2-石雅文-0129

    一、实验目的 根据在大开发板上独立按键的实验在小开发板实现,完成实验代码的移植。 二、实验器材 Keil 5软件、...

  • 体彩080期条件

    0129=01

  • 2020-01-30听力7

    复习0129image.png

  • 石岩磊/无空无雅

    无空无雅 文/石岩磊 点击这里听我的声音[https://www.lizhi.fm/16799317/283376...

  • 石岩磊/无空无雅

    无空无雅 文/石岩磊 点击这里听我的声音[https://www.lizhi.fm/16799317/283376...

  • 【五绝】雅林浣沙女 (二)

    【五绝】雅林浣沙女 (二)文/林海雅林晨景秀,雀鸟柳枝争。浣女溪边映,秋波水石明。 平水韵八庚 雅林:青田四都

  • 2018-01-29晨读《习惯的力量》第一章,习惯回路的3点分享

    0129,晨读《习惯的力量》第一章,习惯回路的3点分享: 本章节通过案例分析和实验研究,试图从科学的角度来说明,习...

  • 赏石赋

    石之所系, 心之所往, 雅石寓意, 皆为自赏, 偶有一得, 终有鉴赏, 玩石之人, 心系一方, 美哉美哉, 室雅石禅。

  • 雅文

  • 文/雅

    文/雅 你笑靥如花 你性格俊洒 你心细如发 你善良通达 你美丽大方 你沉稳端庄 你磅礴大气,仪态自若 你又如孩童般...

网友评论

本文标题:实验2-石雅文-0129

本文链接:https://www.haomeiwen.com/subject/zdeodftx.html