单片机应用实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青岛大学软件技术学院
单片机应用实训报告
姓名 xx
专业 xxxxxxx
班级 xxxxxxxxxxxxxxxxxxxx
指导教师 xxxxxxxxxxxxxxx
2014 年 1月16日
目录
1实训目的 (2)
2实训地点 (2)
3实训时间 (2)
4进度安排 (2)
5实训内容 (3)
6实训过程 (4)
6.1按键程序,在单片机开发板上设置K1、K2、K3、K4以及RST键相应功能 (4)
6.2设计数码管电子钟由59分钟计时到00 (8)
6.3 1602液晶显示器的使用 (12)
6.4实训问题及解决方法 (14)
7 实训体会 (14)
1 实训目的
本次实训的目的在于加深对MCS-51单片机的理解,初步掌握单片机应用系统的设计方法;掌握常用接口芯片的正确使用方法;强化单片机应用电路的设计与分析能力;提高我们在单片机应用方面的实践技能;培育学生综合运用理论知识解决问题的能力,实现理论结合实际,学以至用的原则。单片机专周实训是在学习完单片机应用技术课程之后开设的两周实训课程,在课程学习中,通过理论与实验相结合的学习,同学们已经掌握了单片机基本的使用方法,实训加强我们对单片机开发流程的认识,加深对单片机I/O口扩展与外围器件的使用,加强我们的实际动手能力与调试能力,从而实现从理论到实践的升华(1)掌握汇编语言程序的基本结构。
(3)了解汇编语言程序设计的基本方法和思路。
(4)学会利用C语言编写单片机应用程序,并结合单片机原理图,具体实现以下三个功能:
2 实训地点
xxxxxxxxx东院实验楼411
3 实训时间
时间为2014/1/13—2014/1/17
4进度安排
2014/1/13 按键程序,在单片机开发板上设置K1、K2、K3、K4以及RST键相应功能
2014/1/14 设计数码管电子钟由59分钟计时到00
2014/1/15 显示屏设计,设计显示屏滚动字,实现显示屏显示
2014/1/16-2014/1/17 实训结束,写实训报告并上交
5 实训内容
本次实训内容包括三部分,全部都是应用单片机来进行实现的,所以我们应该对单片机有所了解。主要是单片机的最小系统的连接和使用,Keil编程软件及STC烧写软件的使用。
其中第一部分是按键显示相应功能部分,注意每一个按键所对应的程序及显示方法;
第二部分是电子钟的设计,要注意其中的程序设计时应该让其能够自动计时,并在满60的时候进位,在计满到59分钟时,可以自动的跳转到00并重新开始计时。
第三部分设计屏幕字滚动效果,要求显示自己设计的文字并显示出来。
实训单片机的电路连接图:
6实训过程
6.1按键程序,在单片机开发板上设置K1、K2、K3、K4以及RST键相应功能
6.1.1打开软件,建立工程项目,新建文件,写入代码并保存。
软件如下图:
写入程序代码如下:
#include
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^2; //定义K1
sbit K2=P3^3; //定义K2
sbit K3=P3^4; //定义K3
sbit K4=P3^5; //定义K4
sbit P20=P2^0;
uchar code DispTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管显示0~F void Delay(uint m)//延时函数
{ uchar i;
for(;m>0;m--)
{for(i=0;i<125;i++)
}
}
……
main() //主函数
{ uchar keyValue;
uchar j;
P3=0xff;
P2=0xf0;
P0=0xc0;
for(;;)
{ keyValue=key();
switch(keyValue)
{case 0xfb:
{ j++;
if(j>15) j=0;P0=DispTab[j];
break; }
case 0xf7:P0=0xa4;break;
case 0xef:P0=0xb0;break;
case 0xdf:P0=0x99;break; }
}
}
6.1.2编译程序,生成文件并且烧写程序进入单片机,过程如下:
将单片机按照下图链接:
烧写软件如下图设置:
6.1.3程序烧写完毕后运行单片机:
令RST键实现复位功能;令K1-K4显示1111-4444
如下图显示:
6.2设计数码管电子钟由59分钟计时到00
6.2.1打开软件,建立工程项目,新建文件,写入代码并保存。
图像同上
程序编程如下:
#include
#include
unsigned char data dis_digit;
unsigned char key_s, key_v;
unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
unsigned char data dis_buf[8];
unsigned char data dis_index;
unsigned char hour,min,sec;
unsigned char sec100;
unsigned char x;
sbit K1 = P3^2;
sbit K2 = P3^3;
bit scan_key();
void proc_key();
void inc_sec();