430学习经典笔记

发布 2021-05-13 04:42:28 阅读 3669

1.键盘硬件连接。

看一看实验板上键盘的接法,如下图所示,可以看到,它与51键盘接法也没有什么区别。

以下程序功能是实现k1~k4分别被按下时,在数码管上分别显示1~4。

2.程序实现。

void main( void )

uchar temp,keyval = 0;

wdtctl = wdtpw + wdthold; /关闭看门狗。

boardconfig(0x88); 打开数码管,关闭流水灯和电平转换。

p1dir = bit7; /设置p1.0~p.3为输入状态,p.7为输出。

p1out = 0;

p3dir |=bit4; /设置p3.4为输出状态。

p3out |=bit4; /p3.4输出1

p4dir = 0xff;

p5dir = 0xff;

p4out = 0x3f;

p5out = 0xf7;

while(1)

p4out = scandata[keyval]; 用一位数码管显示。

看来,键盘处理程序与其他单片机键盘处理程序也没有什么区别。主要就是来看一看设置。

3.一些符号的函义。

查找这个符号,可以看到在中有这样的定义:

#define p1dir_ (0x0022) /port 1 direction */

defc( p1dir , p1dir_)

再查找数据手册:

这样,第1行就不难理解了。定义p1dir_这个符号是0x0022,即其p1的方向控制寄存器地址。

第2行如何理解呢?查网络,见到这样一段例子。

#define me1_ (0x0004)

defc( me1 , me1_)

me1关联端口0x0004

defc的c是字节的意思,也就是me1 就是地址0004处的一个字节。

按此推导,p1dir是地址0x0022处的一个字节。是否因为msp430是16位系统,因此所有地址都是16位的,而p1dir是一个字节,因此需要这样转换一下。

bit7的定义同样在头文件中:

#define bit7 (0x0080)

按注释p1dir=0x0080相当于p1.7作为输出,而p1.0~p1.

6均作为输入。也就是p1dir相应位是0时,引脚作为输入使用,而p1dir相应位是1时,引脚作为输出使用。从下图可以看出。

按上图所示,当p1dir某位是0时,门1和门2关闭,门3打开,即该引脚作为输入使用(看图中的红色框)。

当p1dir某位是1时,门1和门2打开,门3关闭,即该引脚作为输出使用。

p1out相关定义如下:

#define p1out_ (0x0021) /port 1 output */

defc( p1out , p1out_)

即p1out是输出寄存器。

4.修改程序,实现自己的功能。

下面让我们对程序略作修改,实现我们自己的功能。

按键k1~k4被定义为分别点亮r、g、b三个发光管,这三个发光管分别接在p2.0,p2.1和p2.2引脚上。

void main( void )

uchar temp,keyval = 0;

wdtctl = wdtpw + wdthold; /关闭看门狗。

boardconfig(0xf0); 关闭数码管和电平转换,打开流水灯

p1dir = bit7; /设置p1.0~p.3为输入状态,p.7为输出。

p1out = 0;

p2dir = 0xff; /设置p2口方向为输出。

p2out = 0xff;

while(1)

p2out=keyval;

程序实现:修改好**,编译链接开始**。全速运行,按下k1,红灯亮,按下k2绿灯亮,按下k3,蓝灯亮。按下k4,3个灯全灭。

林学概论经典学习笔记

良种 指遗传品质和播种品质均优良的林木种子。遗传品质包括速生性 丰产性 优质性 抗逆性。一般把种子结实多的年份称为种子年 大年或丰年 中等年份为平年 结实量小的年份为小年或者歉年。林木结实的丰年和歉年经常交替出现,这种现象称为林木结实的周期性。关于抑花激素和成花激素,种子年时,林木种子含有大量的抑花...

CSharp入门经典学习笔记

特点 不限操作系统,不限应用程序类型,不限访问语言 通用类型系统,common style system cst 包含 库 net公共语言运行库 common language runtime clr 负责管理用。net 库开发的所有应用程序的运行 编译过程 c microsoft中间语言 micr...

VC 入门经典学习笔记

vc 入门经典学习笔记。一函数。这里是源码 a.函数是具有用途的自包含的 块。函数名既是函数的标识,用来在程序中调用函数。如果函数名不在名称空间中定义,它就是全局的,否则就要用名称空间的名称来限定他。b.函数的主要优点之一是根据需要可以在程序的不同位置执行任意次。如果不能将 块封装到函数中,则程序将...