单片机最小系统实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; //定义变量
//****************子程序申明//////////////////