最小系统实验报告
课程名称:制作一个最小系统板并移植按键程序
学 院:信息工程学院
专 业:
班 级:
学 号:
姓 名:
一、实验目的
1、通过制作一个430的最小系统板对430外部电路及内部I/O口有初步的认识。
2、了解74LS48及数码管等芯片的功能。
3、学习并掌握Altium Designer使用方法。
4、运用Altium Designer制作原理图及PCB制图。
5、掌握制作系统板的一般步骤及焊接过程中的注意事项。
6、帮助学生养成良好实验习惯。
二、实验仪器
1、板子,电源芯片,430G2553芯片,74LS48,数码管,电阻电容等元件
2、Altium Designer
三、实验内容
通过Altium Designer设计430最小系统板,在此基础上对按键控制数码管程序进行移植,自己布线制作PCB,然后制版焊接调试。
四、实验说明
通过完成原理图设计,PCB制图,打印图纸,焊接元件等步骤实现最小系统板的制作并将程序移植而且能够成功显示。
五、实验收获和心得体会
作为一个准大三生,再有了数模电以及单片机的理论学习基础下参加本次实验室培训,比起毫无基础的学弟学妹们实验做起来也是得心应手,但是过程中还是出了不少错误。
首先Altium Designer这个软件也和大多数人一样从来没有接触过,在观看相关视屏以及同学的帮助下,逐渐熟悉如何建库,封装,制图以及在这过程中深刻体会到掌握一些快捷键的使用是很有必要的。
调试过程中发现在电路无问题以及相同程序下,我的数码管出现乱码,在检查原理图发现是因为自己疏忽将数码管选成了共阳极而实验室提供共阴极数码管,在同学的帮助下最后解决了这个问题。
通过这次实验,掌握了Altium Designer软件的应用,在自己实验完成的情况下帮助了学弟学妹们,看着他们迷茫而又坚持的眼神,作为学姐我也要好好的努力在接下来的实验中 。
六、源程序
#include <msp430g2553.h>
unsigned char keyvalue; //存储键值
unsigned char checkkey(void) //检查是否有按键按下
{
unsigned char x=0x00;
P1OUT &=~(BIT0+BIT1+BIT2+BIT3);
x=~(P1IN)&(BIT4+BIT5+BIT6+BIT7);
return (x);
}
unsigned char getkeyvalue(void) //获取键值
{
unsigned char x=0;
P1OUT =~BIT0;
if (~P1IN&BIT4)
x=1;
else if (~P1IN&BIT5)
x=2;
else if (~P1IN&BIT6)
x=3;
else if (~P1IN&BIT7)
x=10;
P1OUT =~BIT1;
if (~P1IN&BIT4)
x=4;
else if (~P1IN&BIT5)
x=5;
else if (~P1IN&BIT6)
x=6;
else if (~P1IN&BIT7)
x=11;
P1OUT =~BIT2;
if (~P1IN&BIT4)
x=7;
else if (~P1IN&BIT5)
x=8;
else if (~P1IN&BIT6)
x=9;
else if (~P1IN&BIT7)
x=12;
P1OUT =~BIT3;
if (~P1IN&BIT4)
x=14;
else if (~P1IN&BIT5)
x=0;
else if (~P1IN&BIT6)
x=15;
else if (~P1IN&BIT7)
x=13;
return(x);
}
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR=0x0f;
P1REN=0xf0;
P2DIR=0xFF;
P2OUT=0x0;
while(1)
{
__delay_cycles(2000); //延时消抖
if(checkkey())
{
__delay_cycles(1000);
if(checkkey())
{
keyvalue=getkeyvalue();
P2OUT=keyvalue; //数码管显示
while(checkkey());
}
}
}
}
七、实物图例