本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx

上传人:b****3 文档编号:18022531 上传时间:2022-12-12 格式:DOCX 页数:37 大小:302.64KB
下载 相关 举报
本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx_第1页
第1页 / 共37页
本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx_第2页
第2页 / 共37页
本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx_第3页
第3页 / 共37页
本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx_第4页
第4页 / 共37页
本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx

《本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。

本科单片机c语言实验手册实验报告可编辑修改word版Word文档下载推荐.docx

综合性实验

实验七

定时器方波脉冲

实验八

计数器

实验九

数码管显示

实验十

键盘扫描

实验十一

串行通信

实验十二

液晶显示1602

实验十三

I2C串行总线

实验十四

A/D转换ADC0809

实验十五

D/A转换DAC0832

实验一单片机最小系统

班级、姓名、学号、指导教师

实验学时数、实验位置、实验日期年月日

一、实验目的

掌握51单片机工作的最基本电路,理解最小系统的硬件电路连接。

二、实验要求

用Proteus画出最小系统电路图。

三、实验仿真(画出实验电路)

四、总结

碰到问题可以借助网络来搜寻答案和对自己有帮助的问题,一定会有所收获。

五、评语

实验二点亮一盏灯

了解二极管的显示原理,掌握二极管显示的编程方法,理解二极管与单片机的硬件电路连接。

用proteus画出电路图,用keil软件编程,并生成HEX文件,在proteus上面仿真实现,

结果无误,在试验箱上下载验证。

四、实验程序

#include<

reg52.h>

#defineuintunsignedint

#defineucharunsignedcharsbitled=P2^7;

voidmain()

{

while

(1)

led=1;

}

五、总结:

单片机课是一门实践性很强的课程,仅有课堂上理论知识的学习,对运用好单片机是完全不够的,必须亲自做实验,从实验中吸取教训,总结经验,增加实战经验,加深对单片机的理解,更好的运用单片机。

六、评语

实验三流水灯

了解二极管的显示原理,掌握二极管流水显示的编程方法,理解二极管与单片机的硬件电路连接。

用proteus画出电路图,用keil软件编程,并生成HEX文件,在proteus上面仿真

实现,结果无误,在试验箱上下载验证。

#include<

intrins.h>

#defineucharunsignedcharvoiddelay(uint);

P2=0x01;

delay(500);

P2=_crol_(P2,1);

voiddelay(uintx)

uinti,j;

for(i=x;

i>

0;

i--)

for(j=110;

j>

j--);

单片机实验课让我将课堂上学到的理论知识运用到实验当中去,在实验中发现问题,解决问题,强化理论知识的运用。

实验四脉冲触发外部中断

了解中断的原理,掌握脉冲触发方式中断的编程方法,理解编写中断程序用到的寄存器。

用proteus画出电路图,用keil软件编程,并生成HEX文件,在proteus上面仿真实现,结果无误,在试验箱上下载验证。

EA=1;

EX0=1;

IT0=1;

P1=0x00;

voidINT0_tiaobian()interrupt0

uinti;

EA=0;

for(i=0;

i<

3;

i++)

P1=0xff;

delay(500);

P1=0x00;

}EA=1;

学习单片机没有捷径,不能指望两三天就学会,要坚持不懈,重在积累单片机是一门应用性和实践性很强的学科,要多动手,多做实验。

实验五电平触发外部中断

了解中断的原理,掌握电平触发方式中断的编程方法,理解编写中断程序用到的寄存器。

IT0=0;

//TCON=0x00;

voidINT0_didianping()interrupt0

俗话说“好的开始是成功的一半”。

说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目,其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。

最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

实验六定时器

掌握定时器的工作原理,编程实现定时器1s的精准延时。

#defineucharunsignedcharucharnum,temp,shi,ge;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c};

voidmiao(uchar,uchar);

voidmain()

TMOD=0X01;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1;

ET0=1;

TR0=1;

miao(shi,ge);

voidmiao(ucharshi,ucharge)

P0=table[shi];

P2=table[ge];

voidTO_jishi()interrupt1

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

num++;

if(num==18)

num=0;

temp++;

if(temp==100)temp=0;

shi=temp/10;

ge=temp%10;

在实验过程中,使我接触了许多我以前没接触过的元件,提高了自己的动手能力。

而且在编程时重新温习了刚学不久的51单片机,不仅让我学习了一些新的知识,而且对以前所学内容进行了巩固,让我懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是所学的理论知识得到验证,更能加深对理论知识的理解,让我受益匪浅。

实验七定时器方波脉冲

掌握定时器的工作原理,利用定时器T0和T1产生定时中断,在P1.0与P1.1端口分别输出500Hz和1000Hz的方波脉冲信号。

#defineucharunsignedcharuinti;

sbita=P1^0;

sbitb=P1^1;

TMOD=0x11;

TH0=(65536-2000)/256;

TL0=(65536-2000)%256;

TH1=(65536-1000)/256;

TL1=(65536-1000)%256;

ET0=1;

ET1=1;

TR1=1;

while

(1);

voidt0_500()interrupt1

TH0=(65536-2000)/256;

a=~a;

voidt1_1000()interrupt3

TH1=(65536-1000)/256;

b=~b;

中断的精髓是在于使用,在电路设计中使用中断来控制单片机的工作,使之更好的达到所需目的。

实验八计数器

掌握定时器工作在计数器的工作原理,编程实现T0和T1引脚接受外部脉冲信号,T0引脚每收到3个上升沿脉冲信号,数码管显示值加1;

T1引脚每收到6个上升沿脉冲信号,数码管显示值加1。

#defineucharunsignedcharuintnum;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

TMOD=0x66;

TH0=0xff;

TL0=0xfd;

TH1=0xff;

TL1=0xfa;

ET1=1;

P0=table[num];

if(num>

9)

voidT0_jishu3()interrupt1

//Ö

Ø

×

°

³

õ

Ö

µ

voidT1_jishu6()interrupt3

TH1=0xff;

通过本次实验我更加熟练的掌握了中断的使用。

实验九数码管显示

了解数码管的动态显示和静态显示,掌握数码管的动态显示编程,理解数码管与单片机的硬件电路连接。

#defineucharunsignedcharucharnum;

voiddelay(uint);

P3=0xfe;

P2=table[1];

delay(5);

P3=0xfd;

P2=table[2];

P3=0xfb;

P2=table[3];

P3=0xf7;

P2=table[4];

P3=0xef;

P2=table[5];

P3=0xdf;

P2=table[6];

要注意细节。

细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。

因此我们不仅仅要有整体意识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。

实验十键盘扫描

了解键盘扫描原理,掌握键盘的延时去抖、识别方法,理解键盘与单片机的硬件电路连接,掌握键盘的编程方法。

用proteus画出电路图,用keil软件编程,并生成HEX文件,在proteus上面仿真实

现,结果无误,在试验箱上下载验证。

三、实验仿真(画出电路图)

#defineuintunsignedint#defineucharunsignedcharucharnum;

uchartemp;

P3=0x0f;

if(P3==0x0e)

delay(10);

if(P3==0x0e)

{P3=0xf0;

temp=P3;

switch(temp)

case0xe0:

P2=table[0];

break;

case0xd0:

break;

case0xb0:

P2=table[2];

case0x70:

if(P3==0x0d)

if(P3==0x0d)

case0xb0:

case0x70:

P2=table[7];

if(P3==0x0b)

if(P3==0x0b)

P2=table[8];

P2=table[9];

P2=table[10];

P2=table[11];

if(P3==0x07)

P2=table[12];

P2=table[13];

P2=table[14];

P2=table[15];

做事要多动脑,选出最好的方法。

一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。

实验十一串行通信

了解串行通信工作原理,掌握工作方式1下的编程方法。

#defineuintunsignedint#defineucharunsignedcharucharflag,a,i;

ucharcodetable[]="

Iget"

;

voidinit()

TMOD=0x20;

TL1=0xf1;

TR1=1;

REN=1;

SM0=0;

SM1=1;

ES=1;

}voidmain()

init();

while

(1)

if(flag==1)

ES=0;

6;

SBUF=table[i];

while(!

TI);

TI=0;

}SBUF=a;

while(!

flag=0;

voidser()interrupt4

RI=0;

a=SBUF;

flag=1;

要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程能力。

实验十二液晶显示1602

掌握液晶显示的工作原理,理解1602液晶模块与单片机的硬件电路连接,掌握液晶显示的编程方法。

用proteus画出电路图,用keil软件编程,并生成HEX文件,在proteus上面仿真实现,结

果无误,在试验箱上下载验证。

#defineuintunsignedint#defineucharunsignedchar

Hellodanpianji"

ucharcodetable1[]="

XCU--wulianwang"

sbitlcden=P1^6;

sbitlcdrs=P1^7;

ucharnum;

for(j=50;

voidwrite_com(ucharcom)

lcdrs=0;

P3=com;

delay

(1);

lcden=1;

lcden=0;

voidwrite_data(uchardate)

lcdrs=1;

P3=date;

lcden=1;

voidinit()

lcden=0;

write_com

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

当前位置:首页 > 人文社科 > 文学研究

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

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