单片机实训报告

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

单片机原理及应用

班级:应电14.2班

姓名:刘华利

学号:140302058

指导教师:向兵

摘要:

《单片机应用系统设计项目化教程》这本书根据教育部新的教学改革要求和企业岗位技能需求,以高技能应用型人才专业能力培养为目标,结合作者多年的教学经验与课程改革成果进行编写。全书通过6个典型项目任务,着重介绍单片机基本原理及应用系统的设计方法与技巧,包括流水灯控制系统设计、简易数字时钟设计、数字电压表设计、低频信号发生器设计、数据存储及回放系统设计和窗帘智能控制系统设计等。本书采用“理实一体、项目化教学”模式进行内容编排,将单片机原理及应用系统设计的相关知识点融入项目中进行讲解,易教易学,效果良好。

目录

摘要 (2)

目录 (2)

实训名称 (3)

实训地点 (3)

实训时间 (3)

实训目的 (3)

实训项目 (3)

项目1 (3)

项目2 (4)

项目3 (5)

项目4 (6)

实训总结 (7)

实训名称:单片机原理及应用

实训地点:行政楼523

实训时间:2016.6.27—6.30

实训目的:

1、掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本

思路和方法。

2、掌握C的基本概念和基础知识。

3、通过训练能够读懂较为复杂的C语言源程序并具备基本C语言程序设

计的能力。

4、熟练掌握各种常用类的定义继承文件的应用,为更好的理解面向对象

打下更好的基础。

5、掌握面向对象的基本原理,提高学生综合程序设计的能力。

6、培养自己独立解决问题,找资料的能力。同学之间相互帮助、相互交

流、相互合作的团队精神。

7、通过实训检查自己学习上的不足,达到熟练掌握C语言的基本知识和

技能。

实训项目:

项目1

点亮一个LED,每隔一定时间循环熄灭、点亮…

设计思路:端口送高电平,led熄灭,延时1s,端口送低电平,led点亮,延时1s,就这样一直循环。

程序

#include

typedef unsigned char UINT8; typedef unsigned int UINT16; void DelayMs( UINT16 Ms ) {

UINT8 i;

while (Ms--)

{

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

} }

void main (void)

{

while(1)

{

L2 = 1;

DelayMs(1000);

L2 = 0;

DelayMs(1000);

}

}

项目2

点亮一个LED,让它每隔一定时间循环左移(课使用delay函数进行延时)

设计思路:在项目1的的基础上,用dalay函数进行延时,用<<来表示左移,添加一个左移的函数。通俗一点的讲的话,就如天天天同一些人排队领东西,领完了返回队位继续排(当然一只是这几个人排)。

程序

#include

void delay(unsigned int z) {

unsigned int j,i;

for(i=0;i

for(j=0;j<1000;j++);

}

void main()

{

unsigned LED,i;

LED=0xfe;

while(1)

{

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

{

delay(100);

LED=(LED<<1)|0x01;

P3=LED;

}

}

}

项目3

将任务二中delay延时改用定时器延时,且延时一秒

设计思路:在项目2的的基础上,用定时器来进行延时,首先设置定时器工作方式也就是TMOD,在设置TH0/1,TL0/1的初值,也就是定时时间的设置,然后设置中断允许,并开中断。用中断来控制。

程序

#include

char j=0,i=0;

void main()

{

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

while(1);

}

void T0_time() interrupt 1 {

TH0=(65536-50000)/256;

TL0=(65536-50000)%256; j++;

if(j==5)

{

j=0;

P1=~(0x01<

if(++i==8)

i=0;

}

}

原理图

项目4

四位数码管并排显示,从左到右依次为分、秒十位、秒各位、0.1秒,相当于移动可计时9分59.9秒,使用一个按键,当按键第一次按下,启动秒表,第二次按下,停止,第三次按下,清零。(数码管可选共阴极、共阳极,至于对应数字的段选可参考教材)

设计思路:用delay函数来进行延时,用内部中断来控制T1,用外部中断来实现计数、暂停、清零这三个功能。

程序

#include

#define uint unsigned int

#define uchar unsigned char

sbit dp=P0^7;

uchar code Tab[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};

uchar xiao,miao,fen;

uchar t,swnum=0;

void delay(uint z)

{ uint x,y;

for(x=100;x>0;x--) for(y=z;y>0;y--); }

void dihplay()

{

P1=0xfd;

相关文档
最新文档