历史上的今天
返回首页

历史上的今天

今天是:2025年04月10日(星期四)

正在发生

2019年04月10日 | 实验三:MSP430输入输出接口实验(2学时)

2019-04-10 来源:eefocus

1.实验目的


    学会对P口的使用。


2.实验要求


    利用板上的按键,控制LED显示。


3.实验内容


(1)编写键盘扫描程序。


(2)编写LED闪烁(时间间隔1秒,软件延时)显示程序。


(3)编写用每一个键控制两个LED灯发光的程序,按键可以随时切换。


4.参考资料


#include

#include "Config.h"

#include "1602.c"

 

uchar key;

 

//*************************************************************************

// 初始化按键IO口子程序

//*************************************************************************

void KeyPort_init()

{

 

  P1SEL = 0x00;                   //P1普通IO功能

  P1DIR = 0xF0;                   //P10~P13输入模式,外部电路已接上拉电阻

  P6SEL = 0x00;                   //P6口普通IO功能

  P6DIR = 0xFF;                   //P6口输出模式

}

 

//**********************************************************************

// 键盘扫描子程序,采用逐键扫描的方式

//**********************************************************************

 

uchar Key_Scan(void) 

{

  uchar key_check;

  uchar key_checkin;

  key_checkin=KeyPort;          //读取IO口状态,判断是否有键按下

  key_checkin&= 0x0F;          //读取IO口状态,判断是否有键按下

  if(key_checkin!=0x0F)            //IO口值发生变化则表示有键按下

    {

      delay_ms(20);                  //键盘消抖,延时20MS

      key_checkin=KeyPort;

      if(key_checkin!=0x1F)

        {  

          key_check=KeyPort;

          switch (key_check & 0x0F)

            {

              case 0x0E:key=1;break;

              case 0x0D:key=2;break;

              case 0x0B:key=3;break;

              case 0x07:key=4;break;

            }

          

        }

      

   }

  else

   {

     key=0xFF;        

   }

  return key;

 

//***********************************************************************

//     键值显示程序

//***********************************************************************

void LCD_DisplayKey(uchar keynum)

{    

  LCD_write_char(0x0e,1,0x30+keynum);

}

 

//*************************************************************************

// 主程序

//*************************************************************************

 

void main(void)

{     

  WDT_Init();                         //看门狗设置

  Clock_Init();                       //系统时钟设置

  Port_init();                        //系统初始化,设置IO口属性

  delay_ms(100);                      //延时100ms

  LCD_init();                         //液晶参数初始化设置

  LCD_clear();                        //清屏

  LCD_Desk();

  KeyPort_init();                     //按键IO口初始化,设置IO口属性

  delay_ms(100);                      //延时100ms

  while(1)

    {

      Key_Scan();                     //键盘扫描,看是否有按键按下

      if(key!=0xff)                   //如果有按键按下,则显示该按键键值1~4

        {

  {

            switch(key)

              {

        case 1: LED8 = 0xFC;LCD_DisplayKey(1);break;     //给不同的键赋键值,键值1,亮2个LED灯

                case 2: LED8 = 0xF3;LCD_DisplayKey(2);break;     //给不同的键赋键值,键值2,亮2个LED灯

                case 3: LED8 = 0xCF;LCD_DisplayKey(3);break; //给不同的键赋键值,键值3,亮2个LED灯

                case 4: LED8 = 0x3F;LCD_DisplayKey(4);break; //给不同的键赋键值,键值4,亮2个LED灯

              }

 

          }


       }

     else

      {

        //LED=key;              //没有按键的时候显示上次的键值

      }

    }

 

}

推荐阅读

史海拾趣

DFI公司的发展小趣事

随着市场竞争的加剧,DFI意识到单一产品的竞争力有限。因此,公司开始寻求垂直整合的机会,与罗升等公司合作,共同开发智能制造的全面性解决方案。这一举措不仅使DFI能够提供更完整的产品线,还增强了其在行业中的竞争力。通过与合作伙伴的紧密合作,DFI成功推出了一系列具有竞争力的智能制造解决方案,赢得了市场的广泛认可。

Design Gateway公司的发展小趣事

1985年,泰德·维特(Ted Waitt)和Mike Hammond两位年轻人决定辍学创业。他们利用维特祖母的15,000美元存款作为担保,从银行获得了10,000美元贷款,租用了一台计算机,并准备了一份三页的经营计划。在维特父亲位于爱荷华州苏城的牧场里,他们创办了TIPC Network公司(Gateway的前身)。公司起步时,主要向得克萨斯电脑器械公司销售零配件,并开展计算机邮购业务。得益于直销商业模式,Gateway在短短四个月内就实现了10万美元的销售额。

AC Interface Inc公司的发展小趣事

随着全球环保意识的增强,ABC Electronics Inc. 敏锐地捕捉到了绿色电子产品的市场潜力。公司开始研发和生产符合环保标准的产品,如低能耗的LED照明产品、可循环利用的电池等。同时,公司还优化了生产工艺,减少了生产过程中的环境污染。这些环保举措不仅赢得了消费者的青睐,也提升了公司的社会形象。

Free2Move公司的发展小趣事

ABC Electronics Inc. 深知人才是企业发展的核心动力。因此,公司高度重视人才培养和引进工作。一方面,公司建立了完善的人才培养机制,通过内部培训、轮岗锻炼等方式提升员工的技能和素质;另一方面,公司积极引进具有创新精神和国际视野的高端人才,为公司的技术创新和市场拓展提供了有力支撑。这些人才战略的实施,为公司的长远发展奠定了坚实基础。

这些故事虽然是以虚构的ABC Electronics Inc.为例,但其中的情节和策略在电子行业中是普遍存在的。如果AC Interface Inc是一个真实存在的公司,它的发展轨迹可能也会涉及这些方面。当然,具体的故事还需要根据公司的实际情况来创作。

HellermannTyton公司的发展小趣事

在20世纪90年代初,Heimann Optoelectronics Gmbh作为一家初创企业,在光电传感器领域崭露头角。公司创始人汉斯·海曼(Hans Heimann,虚构人物)敏锐地洞察到市场对高精度、低功耗光电传感器的迫切需求。他带领团队历经数年研发,成功推出了首款基于先进光电转换技术的红外传感器,该产品在工业自动化、医疗设备等领域迅速获得认可,为公司赢得了第一批重要客户,奠定了市场地位。

Blue Giga公司的发展小趣事

Blue Giga的创立可以追溯到芬兰埃斯波的一个科技孵化器。创始人看到了物联网和短距离无线连接技术的巨大潜力,决定成立一家公司专注于这一领域。初期,Blue Giga面临着资金紧张、市场认知度低等诸多挑战,但凭借其卓越的技术和不懈的努力,逐渐在行业中崭露头角。

问答坊 | AI 解惑

通过TM320F28xx DSC 设计模拟接口的概述

通过TM320F28xx DSC 设计模拟接口的概述…

查看全部问答>

烧写eboot.nb0后系统仍从之前的xip.nb0启动

最近发现一个很奇怪的问题:在使用DNW烧写系统时,先将xip.nb0烧写进去,然后烧写eboot.nb0.但此时系统会自动重启并且加载的还是之前的xip.nb0 初步分析发现eboot下的BootloaderMain();函数根本就没被执行 如下是异常时和成功时的串口信息: 1. ...…

查看全部问答>

关于EVC程序下载到NK内核 下载目标板 无法运行

Windows CE.NET的应用为MyApp.exe 1.将MyApp.exe复制到E:\\PROJECTS\\MyWinCE\\RelDir\\CEPC_X86Release目录下; 2.创建快捷方式文件MyApp.lnk(文本文件),文件内容如下: 10#\\Windows\\MyApp.exe MyApp.lnk文件也放入E:\\PROJECTS\\MyWinC ...…

查看全部问答>

ftp—628步进电机

哪位做过FTP_628打印机的程序,步进电机时序是怎么样写的,我老写不对…

查看全部问答>

在WINCE设备上,用VS2003开发的程序连接数据库出错,请教高手

在WINCE设备上,用VS2003开发的程序连接WINCE数据库出错,请教高手 SqlCeConnection conn = new SqlCeConnection(\"Data Source = Test.sdf\"); conn.open(); open这里提示出错,但在WINCE设备上只能看到错误号为:-2147467259,就是不知道什么错误. ...…

查看全部问答>

I2C通信,设备地址的确定

I2C通信,设备的地址问题 I2C通信,设备的地址问题 在OV9650的初始化  通过I2C对寄存器进行读写的时候#define CAMERA_I2C_ADDR 0x30#define I2C_SLAVE 0x0703 if(ioctl(fd, I2C_SLAVE, CAMERA_I2C_ADDR)<0) {  printf(\"fail ...…

查看全部问答>

出YC2440裸板

收了tq2440,这块yc2440的板子就用不到了,这块板子收来就上电看了一下,除POWER灯外D1-D4全亮,片刻后D3熄灭,D4常亮,D1和D2按一定的规律闪烁.此时按K1后D1-D4全灭,再按一下恢复原来来的状态此板子需要折腾一下,主要就是串口没有,需要转接板。有能 ...…

查看全部问答>

不是精品不上传(单片机C语言程序设计实验指导书)

replyreload += \',\' + 1311171;(单片机C语言程序设计实验指导书)Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

求指导

本人在做一个基于单片机的开关电源的毕业设计,思路是这样的,键盘预置电压,控制单片机进行脉宽调制,使输出电压在大范围内可调,输入220V,输出为3~30V线性可调,不知电路方面该如何设计,请论坛的各位指导指导,由衷感谢!!!…

查看全部问答>