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