单片机原理报告.docx

上传人:b****5 文档编号:3802474 上传时间:2022-11-25 格式:DOCX 页数:14 大小:119.17KB
下载 相关 举报
单片机原理报告.docx_第1页
第1页 / 共14页
单片机原理报告.docx_第2页
第2页 / 共14页
单片机原理报告.docx_第3页
第3页 / 共14页
单片机原理报告.docx_第4页
第4页 / 共14页
单片机原理报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机原理报告.docx

《单片机原理报告.docx》由会员分享,可在线阅读,更多相关《单片机原理报告.docx(14页珍藏版)》请在冰豆网上搜索。

单片机原理报告.docx

单片机原理报告

实验报告

(理工类)

课程名称:

单片机原理与应用

课程代码:

8426470

学生所在学院:

应用技术学院

年级/专业/班:

2010级机电一体化

学生姓名:

学号:

4120105802

实验总成绩:

任课教师:

开课学院:

机械工程与自动化学院

 

西华大学实验报告(理工类)

开课学院及实验室:

应用技术学院计算机中心实验时间:

2011年10月24日

学生姓名

学号

41201058020

成绩

学生所在学院

应用技术学院

年级/专业/班

2010级机电一体化

课程名称

单片机原理与应用

课程代码

8426470

实验项目名称

红黄绿灯控制

项目代码

指导教师

项目学分

1.实验目的

(1)学习Keilc51集成编译软件的使用和调试程序方法;

(2)学习将用户程序下载到应用系统的方法;

(3)掌握STC89C52单片机I/O端口的控制和使用方法。

2.实验设备

单片机实验板、PC机、Keil软件、STC-ISP.EXE程序下载软件。

3.实验内容

利用单片机的P1.1、P1.2、P1.3控制3个LED指示灯,模仿交通控制灯:

红灯亮4秒;黄灯亮2秒;黄灯、绿灯同时亮1秒;绿灯亮4秒,如此循环。

4.实验电路

实验电路原理图如下:

 

5.实验程序

实验程序流程图见下图:

 

 

实验程序如下:

#include

sbitLED1=P1^3;sbitLED2=P1^2;sbitLED3=P1^1;

voiddelayms(unsignedintx)

{unsignedcharj;

while(x--)

{for(j=0;j<123;j++){;}}}

voidmain(void)

{

while

(1)

{LED1=0;LED2=1;LED3=1;delayms(4000);LED1=1;LED2=0;LED3=1;delayms(2000);

LED1=1;LED2=0;LED3=0;delayms(1000);LED1=1;LED2=1;LED3=0;delayms(3000);}}

6.实验步骤

(1)根据实验原理图编写程序,用“KeiluVision4”编译软件编译,如未通过,修改程序,直至通过;

(2)用STC-ISP.EXE软件将所编程序的“HEX”码下载到实验板的STC89c52芯片中;

(3)运行程序,观察实验板左侧的三个LED(红黄绿)灯点亮的次序和时间是否按要求发生变换,如果不符合要求,改写程序,按步骤

(1)开始重新做实验,直至成功。

西华大学实验报告(理工类)

开课学院及实验室:

应用技术学院计算机中心实验时间:

2011年10月31日

学生姓名

学号

41201058020

成绩

学生所在学院

应用技术学院

年级/专业/班

2010级机电一体化

课程名称

单片机原理与应用

课程代码

8426470

实验项目名称

实验2键操作、LED数码管显示实验

项目代码

指导教师

项目学分

1.实验目的

掌握独立键盘、LED数码管的电路连接和编程方法。

2.实验设备

单片机实验板、PC机、Keil等编译软件、STC-ISP.EXE程序下载软件。

3.实验内容

(1)编写程序,按KEY1只有红灯亮;按KEY2只有黄灯亮;按KEY3只有绿灯亮。

(2)开始右LED数码管显示0,每按KEY1一次,数码管显示加1,至9后,再循环从0显示到9。

4.实验电路

实验电路原理图如下:

实验电路原理图

5.实验程序

实验流程图如图:

LED>9

→→

实验程序如下:

实验流程图

#include

sbitKEY1=P3^4;

sbitKEY2=P3^6;

sbitKEY3=P3^7;

sbitLED1=P1^0;

sbitLED2=P1^2;

sbitLED3=P1^7;

unsignedchardispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

voidmain(void)

{TMOD=0x06;TL0=0;TH0=0;TR0=1;

while

(1)

{if(TL0>9)TL0=0;

P2=dispcode[TL0];

if(KEY1==0){LED1=0;LED2=1;LED3=1;}

if(KEY2==0){LED1=1;LED2=0;LED3=1;}

if(KEY3==0){LED1=1;LED2=1;LED3=0;}}}

6.实验步骤

(1)根据实验原理图编写程序,用“KeiluVision4”编译软件编译,如未通过,修改程序,直至通过;

(2)用STC-ISP.EXE软件将所编程序的“HEX”码下载到实验板的STC89c52芯片中;

(3)运行程序,按实验板右下侧的KEY1,KEY2,KEY3,观察LED中的红黄绿灯否按要求点亮,

如果不符合要求,改写程序,按步骤

(1)开始重新做实验,直至成功。

(4)按同样的方法调试编写实验内容2的程序,直至调试成功。

7.思考题

段码与那些因素有关,写出本实验中LED数码管A、b、C、d、e、F、g的段码。

答:

利用各段发光二极管的“亮”、“暗”可以组成各段数字和符号,这种组合称为段码

显示字符

共阳极时引脚连接对应关系

g

f

e

d

c

b

a

0

0

1

1

1

1

1

1

1

0

1

1

0

0

0

0

2

1

0

1

1

0

1

1

3

1

0

0

1

1

1

1

4

1

1

0

0

1

1

0

5

1

1

0

1

1

0

1

6

1

1

1

1

1

0

1

7

0

0

0

0

1

1

1

8

1

1

1

1

1

1

1

9

1

1

0

1

1

1

1

 

西华大学实验报告(理工类)

开课学院及实验室:

应用技术学院计算机中心实验时间:

2011年11月7日

学生姓名

学号

41201058020

成绩

学生所在学院

应用技术学院

年级/专业/班

课程名称

单片机原理与应用

课程代码

8426470

实验项目名称

实验3掌握MCS51定时器的使用方法

项目代码

指导教师

项目学分

1.实验目的

掌握MCS51定时器的使用方法。

2.实验设备

单片机实验板、PC机、Keil等编译软件、STC-ISP.EXE程序下载软件。

3.实验内容

(1)利用定时器中断方式,做一个显示0~9的秒钟。

(2)利用定时器中断方式,做一个显示00~99的秒钟,每1秒增加1。

4.实验电路

实验电路原理图如下:

实验电路原理图

5.实验程序

调试成功的程序如下:

显示0~9秒的程序:

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

ucharnum;

uchartimecounter=100;

voidmain(void)

{TMOD=0x01;TL0=0xff;TH0=0xd8;EA=1;ET0=1;TR0=1;

while

(1)

{P2=dispcode[num%10];}}

voidtime0(void)interrupt1

{TL0=0xff;TH0=0xd8;

timecounter--;

if(timecounter==0)

{timecounter=100;

num++;

if(num>9)num=0;}}

显示00~99秒的程序:

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitLED1=P2^2;sbitLED2=P2^7;

ucharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

ucharnum;

uchartimecounter=100;

voiddelayms(uintx)

{ucharj;

while(x--)

{for(j=0;j<123;j++){;}}}

voidmain(void)

{TMOD=0x01;TL0=0xff;TH0=0xd8;EA=1;ET0=1;TR0=1;

while

(1)

{P0=0xff;P0=dispcode[num/10];LED1=1;LED2=0;delayms(5);

P0=0xff;P0=dispcode[num%10];LED1=0;LED2=1;delayms(5);}}

voidtime0(void)interrupt1

{TL0=0xff;TH0=0xd8;

timecounter--;

if(timecounter==0)

{timecounter=100;

num++;

if(num>99)num=0;}}

6.实验步骤

(1)根据实验原理图编写程序,用“KeiluVision4”编译软件编译,如未通过,修改程序,直至通过;

(2)用STC-ISP.EXE软件将所编程序的“HEX”码下载到实验板的STC89c52芯片中;

(3)运行程序,观察LED数码管是否每隔1秒出现“0”-“9”,的变化。

如果不符合要求,改写程序,按步骤

(1)开始重新做实验,直至成功。

(4)按同样的方法调试编写实验内容中

(2)的程序,直至调试成功。

7.思考题

谈一下用定时器中断编程的体会。

答:

定时器/中断器计算机中能大大提高计算机的处事能力,提高起工作效率,作为一个大学生有必要熟悉的运用定时器/中断器

 

西华大学实验报告(理工类)

开课学院及实验室:

应用技术学院计算机中心实验时间:

2011年11月14日

学生姓名

学号

412010580

成绩

学生所在学院

应用技术学院

年级/专业/班

课程名称

单片机原理与应用

课程代码

8426470

实验项目名称

实验4计数器实验

项目代码

指导教师

项目学分

1.实验目的

掌握计数器的使用方法。

2.实验设备

单片机实验板、PC机、Keil等编译软件、Proteus软件。

3.实验内容

利用计数器,记录按按钮的次数,并用LCD1602显示出来。

4.实验程序

实验实验的程序框图如下:

 

←←←

计时器/LCD初始化

↑↑↑↑

按动按钮一次,计数器加一

 

LCD显示

实验实验的程序框图

→→→

计数TL0>999

实验的程序如下:

#include

#include"LCD1602.h"

#defineuintunsignedint

#defineucharunsignedchar

voidmain(void)

{TMOD=0x06;

TL0=0;TH0=0;TR0=1;

while

(1)

{ucharDispBuffer[4];

uchari=TL0;

LCD_Initial();

LCD_Prints(1,0,"THENUMBERIS");

if(TL0>999)TL0=0;

DispBuffer[0]=TL0/100+0X30;

DispBuffer[1]=TL0%100/10+0X30;

DispBuffer[2]=TL0%100%10+0X30;

DispBuffer[3]='\0';

LCD_Prints(6,1,DispBuffer);}}

5.实验电路

实验电路原理图如下:

 

实验电路原理图

7.实验步骤

(1)根据实验原理图编写程序,用“Keil”编译软件进行编译,如未通过修改程序,直至通过;

(2)用Proteus软件将所编程序的“HEX”码下载到At89c51芯片中;

(3)运行程序,观察LCD数码管是否出现计数值的变化,如果不符合要求,改写程序,按步骤

(1)开始重新做实验,直至成功。

8.思考题

为了简化编程,本实验提供的子程序只能将计数器方式2,如果采用方式1。

如何将计数值全部显示出来?

答:

计数器方式1与计时器方式2相比增大了计数次数,要把计数全部显示出来可以改成多位数码管或LCD模块。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1