单片机原理报告Word文档下载推荐.docx
- 文档编号:16708735
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:14
- 大小:119.17KB
单片机原理报告Word文档下载推荐.docx
《单片机原理报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机原理报告Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
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<
reg52.h>
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;
delayms(2000);
LED3=0;
delayms(1000);
delayms(3000);
}}
6.实验步骤
(1)根据实验原理图编写程序,用“KeiluVision4”编译软件编译,如未通过,修改程序,直至通过;
(2)用STC-ISP.EXE软件将所编程序的“HEX”码下载到实验板的STC89c52芯片中;
(3)运行程序,观察实验板左侧的三个LED(红黄绿)灯点亮的次序和时间是否按要求发生变换,如果不符合要求,改写程序,按步骤
(1)开始重新做实验,直至成功。
西华大学实验报告(理工类)
应用技术学院计算机中心实验时间:
2011年10月31日
8426470
实验2键操作、LED数码管显示实验
掌握独立键盘、LED数码管的电路连接和编程方法。
2.实验设备
单片机实验板、PC机、Keil等编译软件、STC-ISP.EXE程序下载软件。
(1)编写程序,按KEY1只有红灯亮;
按KEY2只有黄灯亮;
按KEY3只有绿灯亮。
(2)开始右LED数码管显示0,每按KEY1一次,数码管显示加1,至9后,再循环从0显示到9。
实验电路原理图
实验流程图如图:
LED>
9
→→
实验流程图
sbitKEY1=P3^4;
sbitKEY2=P3^6;
sbitKEY3=P3^7;
sbitLED1=P1^0;
sbitLED3=P1^7;
unsignedchardispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
{TMOD=0x06;
TL0=0;
TH0=0;
TR0=1;
{if(TL0>
9)TL0=0;
P2=dispcode[TL0];
if(KEY1==0){LED1=0;
}
if(KEY2==0){LED1=1;
if(KEY3==0){LED1=1;
(3)运行程序,按实验板右下侧的KEY1,KEY2,KEY3,观察LED中的红黄绿灯否按要求点亮,
如果不符合要求,改写程序,按步骤
(1)开始重新做实验,直至成功。
(4)按同样的方法调试编写实验内容2的程序,直至调试成功。
7.思考题
段码与那些因素有关,写出本实验中LED数码管A、b、C、d、e、F、g的段码。
答:
利用各段发光二极管的“亮”、“暗”可以组成各段数字和符号,这种组合称为段码
显示字符
共阳极时引脚连接对应关系
g
f
e
d
c
b
a
1
2
3
4
5
6
7
8
2011年11月7日
实验3掌握MCS51定时器的使用方法
掌握MCS51定时器的使用方法。
(1)利用定时器中断方式,做一个显示0~9的秒钟。
(2)利用定时器中断方式,做一个显示00~99的秒钟,每1秒增加1。
调试成功的程序如下:
显示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;
{P2=dispcode[num%10];
voidtime0(void)interrupt1
{TL0=0xff;
timecounter--;
if(timecounter==0)
{timecounter=100;
num++;
if(num>
9)num=0;
}}
显示00~99秒的程序:
sbitLED1=P2^2;
sbitLED2=P2^7;
voiddelayms(uintx)
{ucharj;
{P0=0xff;
P0=dispcode[num/10];
LED1=1;
delayms(5);
P0=0xff;
P0=dispcode[num%10];
LED1=0;
voidtime0(void)interrupt1
99)num=0;
(3)运行程序,观察LED数码管是否每隔1秒出现“0”-“9”,的变化。
(4)按同样的方法调试编写实验内容中
(2)的程序,直至调试成功。
谈一下用定时器中断编程的体会。
定时器/中断器计算机中能大大提高计算机的处事能力,提高起工作效率,作为一个大学生有必要熟悉的运用定时器/中断器
2011年11月14日
412010580
实验4计数器实验
掌握计数器的使用方法。
单片机实验板、PC机、Keil等编译软件、Proteus软件。
利用计数器,记录按按钮的次数,并用LCD1602显示出来。
4.实验程序
实验实验的程序框图如下:
←←←
计时器/LCD初始化
↑
↑↑↑↑
↓
按动按钮一次,计数器加一
LCD显示
实验实验的程序框图
→→→
计数TL0>
999
实验的程序如下:
#include"
LCD1602.h"
TL0=0;
{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模块。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 报告