单片机原理与应用实验报告.docx

上传人:b****1 文档编号:2480044 上传时间:2022-10-30 格式:DOCX 页数:15 大小:17.25KB
下载 相关 举报
单片机原理与应用实验报告.docx_第1页
第1页 / 共15页
单片机原理与应用实验报告.docx_第2页
第2页 / 共15页
单片机原理与应用实验报告.docx_第3页
第3页 / 共15页
单片机原理与应用实验报告.docx_第4页
第4页 / 共15页
单片机原理与应用实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机原理与应用实验报告.docx

《单片机原理与应用实验报告.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

单片机原理与应用实验报告.docx

单片机原理与应用实验报告

 

《单片机原理与应用》课程

实验报告

 

北京理工大学机电学院

实验一P1口基本实验

一、实验目的

掌握如何建立项目,并用KeilC51软件调试程序。

二、实验内容

掌握P1口基本实验中的编程方法,调试程序。

三、实验程序

#include

unsignedcharL;

delay(unsignedintms){

unsignedcharj;

unsignedinti;

for(i=0;i

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

}

}

voiddisplay(){

P1=~L;

delay(1000);

}

main(){

unsignedchari;

L=0xFF;

display();

L=0x00;

display();

while

(1){

L=0x01;

display();

for(i=0;i<8;i++){

L=L<<1;

display();

}

L=0x80;

display();

for(i=0;i<8;i++){

L=L>>1;/*L右移1位*/

display();

}

}

}

由两边向中间亮:

#include

unsignedcharL;

delay(unsignedintms){

unsignedcharj;

unsignedinti;

for(i=0;i

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

}

}

voiddisplay(){

P1=~L;

delay(1000);

}

main(){

unsignedchari;

L=0xFF;

display();

L=0x00;

display();

while

(1)

{

L=0x01;

display();

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

{

L=L<<1;

display();

}

L=0x80;

display();

for(i=0;i<8;i++){

L=L>>1;

display();

}

}

}

实验二P1口扩展实验

一、实验目的

掌握EL-8051-III型单片机实验系统。

二、实验内容

掌握P1口扩展实验中的编程方法,调试程序。

三、实验程序

#include

delay(unsignedintms){

unsignedcharj;

unsignedinti;

for(i=0;i

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

}

}

main(){

unsignedcharK;

P1=0x00;

delay(1000);

P1=0xff;

delay(1000);

while

(1){

K=P1&0x03;

switch(K){

case0:

P1=0xff;break;

case1:

P1=0xf3;delay(1000);P1=0xff;delay(1000);break;

case2:

P1=0xcf;delay(1000);P1=0xff;delay(1000);break;

case3:

P1=0x03;delay(1000);P1=0xff;delay(1000);break;

default:

break;

}

}

}

实验三简单I/O口扩展实验

——交通灯控制实验

一、实验目的

学习在单片机系统中扩展简单I/O接口的方法。

二、实验内容

掌握交通灯控制的编程方法,调试程序。

三、实验程序

#include

unsignedcharxdata*codeL=0xCFA0;

delay(unsignedintms){

unsignedcharj;

unsignedinti;

for(i=0;i

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

}

}

main(){

unsignedchari;

*L=0xff;

while

(1){

*L=~0x81;

delay(3000);

for(i=0;i<=9;i++){

*L=~0x21;

delay(1000);

}

*L=~0x01;

delay(100);

for(i=0;i<=4;i++){

*L=~0x41;

delay(200);

*L=~0x01;

delay(200);

}

*L=~0x81;

delay(500);

for(i=0;i<=9;i++){

*L=~0x84;

delay(1000);

}

*L=~0x80;

delay(100);

for(i=0;i<=4;i++){

*L=~0x82;

delay(200);

*L=~0x80;

delay(200);

}

}

}

实验四中断实验

——有急救车的交通灯控制实验

一、实验目的

学习中断处理程序的编程方法。

二、实验内容

掌握急救车的交通灯控制的编程方法,调试程序。

三、实验程序

#include

unsignedcharxdata*codeL=0xCFB0;

sbitflag=P3^2;

delay(unsignedintms){

unsignedcharj;

unsignedinti;

for(i=0;i

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

}

}

voidsevice_int0()interrupt0using2{

unsignedchari=10;

flag=1;

while(i--){

*L=0x7e;

delay(1000);

}

}

main(){

unsignedchari;

IP=0x01;

IE=0x81;

*L=0xff;

while

(1){

for(i=0;i<3;i++){

*L=~0x81;

delay(1000);

}

for(i=0;i<=9;i++){

*L=~0x21;

delay(1000);

}

*L=~0x01;

delay(100);

for(i=0;i<=4;i++){

*L=~0x41;

delay(200);

*L=~0x01;

delay(200);

}

*L=~0x81;

delay(200);

for(i=0;i<=9;i++){

*L=~0x84;

delay(1000);

}

*L=~0x80;

delay(100);

for(i=0;i<=4;i++){

*L=~0x82;

delay(200);

*L=~0x80;

delay(200);

}

}

}

实验五内部定时器实验

一、实验目的

学习复合定时的编程方法。

二、实验内容

掌握复合定时的编程方法,调试程序。

三、实验程序

#include

sbitcontrol=P1^0;

sbitlight=P1^7;

timer0()interrupt1using1{

control=!

control;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

}

timer1()interrupt3using2{

light=!

light;

}

main(){

TMOD=0x61;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

TH1=256-5;

TL1=256-5;

IP=0x08;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

while

(1);

}

实验六内部定时器与中断实验

一、实验目的

学习内部定时器/计数器的使用和编程方法。

二、实验内容

掌握定时器与中断复合编程方法,调试程序。

三、实验程序

#include

unsignedinti=0,a=0;

unsignedintl[16]={0x18,0x3C,0x7E,0xFF,0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,0x7E,0x3C,0x18,0x00};

unsignedintb[16]={0x81,0x00};

delay(unsignedintms){

unsignedintj;

unsignedinti;

for(i=0;i

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

}

}

voidsevice_int0()interrupt0using2{

inti;

for(i=0;i<10;i++){

P1=~b[0];

delay(200);

P1=~b[1];

delay(200);

}

}

timer0()interrupt1using1{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

i++;

if(i>=5){

i=0;

if(a>15){

a=0;

}

P1=~l[a];

a++;

}

}

main(){

inta;

IP=0x01;

IE=0x83;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

while

(1);

}

 

实验七数码显示实验

一、实验目的

学习数码管显示数字的原理。

二、实验内容

掌握动态扫描键盘的方法,调试程序。

三、实验程序

#include

unsignedcharBUF=0;/*定时器每中断一次BUF加1*/

unsignedcharSBF0=0,SBF1=0,MBF0=0,MBF1=0;/*秒、分各位清零*/

unsignedcodetable[11]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};/*数码管真值表*/

unsignedxdata*L=0xcfa0;/*74LS273端口地址*/

delay(unsignedintms)/*延时子程序*/

{unsignedcharj;

unsignedin

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

当前位置:首页 > 求职职场 > 职业规划

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

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