单片机最小系统实验报告

  • 格式:doc
  • 大小:153.00 KB
  • 文档页数:22

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机最小系统实验报告

长沙学院

电子工艺实习报告

姓名:潘舟

学号:2009044211

系别:电子与通信工程

时间:2011.11.14-2011.11.25

专业:电子信息工程

指导老师:龙英、刘辉、王新辉、刘亮、马凌云

目录

1、引言

2、目的

3、任务

4、要求

5、主要原理图

6、主要程序

7、程序实现的功能

8、系统调试

9、总结

目的:

通过对单片机最小系统的研究,掌握单片机各引脚功能,理解单片机工作过程及原理,以及与各种外部扩展器件的连接,能够自己运用单片机来解决实际问题。

任务:

1、单片机实验板的设计与制作

2、声光控延时开光的焊接与调试

要求:

1、(1)功能要求

单片机最小系统(晶振、复位电路);

按键输入部分,可以做简单按键输入实验;

键盘输入部分,可做矩阵式键盘扫描输入实验;

RS-232串行接口部分,可进行单片机与计算机通信实验;

LCD显示部分,可做LCD显示实验;

LED数码管显示器部分,可进行定时计数等数据显示实验;

喇叭发音部分,可做单片机发声实验;

LED发光二极管部分,可做基本输出功能实验;

稳压电源部分,可提供5V电源;

(2)设计要求

进行元器件及参数选择;画出电路原理图;PCB 图,焊接电路并调试。

(3)制作要求

自行装配和调试,并能发现问题和解决问题。

(4)程序调试要求

编写秒表程序和彩灯控制程序,利用自己制作的实验板进行程序调试。

2、(1)、能实现以下功能:

a、能够实现光控声控控制灯的点亮;

b、能够使灯包点亮后一段时间自动熄灭。

(2)设计要求

进行元器件及参数选择;画出电路原理图;PCB 图,焊接电路并调试。

(3)制作要求

自行装配和调试,并能发现问题和解决问题。主要原理图:

主要程序:

1)编写一程序,达到按键加减的功能。按一下+1键,显示加一,加到255时,显示归零按。按下-1键,显示减1,当减到零时,显示变为255。

程序:

#include

#include

#define uchar unsigned char

sbit k1=P3^0;

sbit k2=P3^1;

sbit A1=P2^0;

sbit A2=P2^1;

sbit A3=P2^2;

sbit A4=P2^3;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90};

void delay (uchar j)

{

uchar i;

for(i=0;i<100;i++)

{

_nop_();

j--;

}

}

void xianshi(uchar y)

{

uchar m,n,x,i;

m=y%10;

n=y/10%10;

x=y/100;

for (i=0;i<4;i++)

{

A1=0;

P0=table[m];

delay(1);

A1=1;

A2=0;

P0=table[n];

delay(1);

A2=1;

A3=0;

P0=table[x];

delay(1);

A3=1;

}

}

main()

{

char t;

P2=0;

P0=0x80;

while(1)

{

if(k1==0)

{

delay(10);

if(k1==0)

{

delay(10);

while(!k1);

t++;

if(t>255)

t=0;

xianshi(t);

}

}

if(k2==0)

{

delay(10);

if(k1==0)

{

delay(10);

while(!k1);

t--;

if(t<0)

t=255;

xianshi(t);

}

}

}

}

2)编写程序,实现跑秒功能。

程序:

#include

#define uchar unsigned char

//******************************特殊位定义*******************************

sbit p30=P3^0;

sbit p31=P3^1;

sbit p32=P3^2;

sbit p33=P3^3;

sbit sten=P3^4; //P3.4用来控制计时器的走与停(复

位清零)

sbit storeshow=P3^5; //p3.4用来存计数与读计数

sbit p37=P3^7;

//*****************存放点量数码管的码(0~9)**************************

uchar code tab1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0 x00,0x10}; //存放点量数码管的段选码(0~9)

uchar code tab2[4]={0x0fe,0x0fc,0x0fb,0x0f7};

//存放点量数码管的位选码(3~0位)

//********************************变量定义****************************

uchar

tab3[10][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0 },{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0} ,{0,0,0,0}}; //预存10个计时

uchar tab4[4]={0,0,0,0}; //用来放四位数即分、十秒、个秒、1/10秒//

uchar n,s,S1,m,k,a; //定义变量

//****************子程序申明//////////////////