单片微机原理与接口技术实验指导.docx

上传人:b****5 文档编号:11919608 上传时间:2023-04-16 格式:DOCX 页数:51 大小:168.37KB
下载 相关 举报
单片微机原理与接口技术实验指导.docx_第1页
第1页 / 共51页
单片微机原理与接口技术实验指导.docx_第2页
第2页 / 共51页
单片微机原理与接口技术实验指导.docx_第3页
第3页 / 共51页
单片微机原理与接口技术实验指导.docx_第4页
第4页 / 共51页
单片微机原理与接口技术实验指导.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

单片微机原理与接口技术实验指导.docx

《单片微机原理与接口技术实验指导.docx》由会员分享,可在线阅读,更多相关《单片微机原理与接口技术实验指导.docx(51页珍藏版)》请在冰豆网上搜索。

单片微机原理与接口技术实验指导.docx

单片微机原理与接口技术实验指导

单片微机原理与接口技术实验指导

实验一用户程序的编辑、编译与仿真调试

1.实验目的

(1)学会给keilC集成开发环境添加STC系列单片机型号、头文件以及在线仿真驱动数据库。

(2)学会用keilC集成开发环境编辑、编译用户程序,并生成用户程序的机器代码。

(3)学会用keilC集成开发环境模拟仿真调试用户程序。

2.预习与思考

预习3.1节内容,并根据实验内容制定好实验步骤。

3.实验电路原理及硬件连线

本实验只需PC机和keilC集成开发环境工具,无须其它硬件电路。

2.4.实验内容

P1

(1)实验程序功能与参考程序本实验程序功能是一流水灯控制,控制信号从P1口输出,低电平驱动,轮流点亮控制的LED灯,时间间隔为1s,参考程序如下:

#include//STC15系列单片机头文件

#include

#include//I/O初始化文件,详见附录六

#defineucharunsignedchar

#defineuintunsignedint

ucharx=0xfe;

/*1000ms延时函数,从STC-ISP工具中获得*/

voidDelay1000ms()//@11.0592MHz

{

unsignedchari,j,k;

_nop_();

_nop_();

i=43;

j=6;

k=203;

dodo

{

while(--k);

}while(--j);

}while(--i);

}

/*主函数*/

voidmain(void)

{

GPIO();

while

(1)

{

P1=x;

Delay1000ms();

x=_crol_(x,1);

}

}

(2)用KeilVision2开发工具输入、编辑与编译上述实验程序,并生成该程序的机器代码。

(3)用KeilVision2开发工具的软件模拟仿真功能调试本实验程序。

5.程序调试及效果分析

(1)从项目文件夹中,查看生成的机器代码,默认情况下,其默认文件名取决于哪里。

(2)用KeilVision2开发工具的软件模拟仿真功能调试本实验程序的效果。

6.实验报告要求

(1)总结给KeilVision2开发工具添加STC系列单片机型号、头文件以及STC在线仿真驱动数据库的方法。

(2)总结应用KeilVision2开发工具编辑、编译用户程序,生成用户程序机器代码的操作步骤。

实验二用户程序的在线编程与在线仿真

1.实验目的

(1)理解STC单片机与PC机USB接口的通信线路及学会加载USB转串口的驱动程序。

(2)学会用STC-ISP在线编程工具给单片机加载用户程序与在系统调试。

(3)学会应用KeilVision4开发工具与STC15实验板进行用户程序的在线仿真调试。

2.预习与思考

(1)预习3.2节内容,理解STC单片机与PC机USB接口的通信线路,以及加载USB转串口驱动程序的方法。

(2)预习3.2节内容,掌握用STC_ISP在线编程工具下载用户程序的方法。

(3)预习3.2节内容,掌握STC单片机在线仿真的方法,包括如何设置仿真芯片以及KeilVision4开发工具在线硬件仿真的设置。

(4)分析demo.c的程序功能。

3.实验参考程序(demo.c)

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

/*1ms延时函数,从STC-ISP工具中获得*/

voidDelay1ms()//@11.0592MHz

{unsignedchari,j;

_nop_();

_nop_();

_nop_();

i=11;

j=190;

do

{

while(--j);

}while(--i);

}

/*xms延时函数*/

voiddelay(uintx)//@11.0592MHz

{

uinti;

for(i=0;i

{

Delay1ms();

}

}

/*主函数*/

voidmain(void)

{

GPIO();

while

(1)

{

P17=0;

delay(1000);

P17=1;

P16=0;

delay(1000);

P16=1;

P47=0;

delay(1000);

P47=1;

P46=0;

delay(1000);

P46=1;

}

}

4.实验电路原理及硬件连线

本实验基于STC15开发板上实施,硬件线路包括STC单片机与PC机USB接口的通信线路,以及LED7、LED8、LED9、LED10等LED灯。

5.实验内容

(1)用KeilVision2开发工具编辑、编译demo.c程序,并生成机器代码。

(2)用STC_ISP在线编程工具给STC15单片机开发板下载用户程序,运行用户程序,验证程序功能是否符合程序要求。

(3)应用KeilVision2开发工具与STC15实验板进行用户程序的在线仿真调试,验证程序功能是否符合程序要求。

6.程序调试及效果分析

(1)在系统调试,分析程序运行效果。

(2)在线仿真调试,分析程序运行效果。

7.实验报告要求

1)总结STC单片机在线编程的操作步骤与在系统调试方法。

2)总结STC单片机在线仿真方法。

3)总结STC单片机在线仿真有什么优势?

实验三IAP15W4K58S4单片机外部中断的应用编程与调试

1.实验目的

(1)进一步掌握中断技术的原理。

(2)掌握外部中断触发方式的设置与应用编程。

2.预习与思考

预习7.1〜7.3节内容,分析INT01.ASM与intOl.c,根据程序功能制定程序调试方案。

3.实验参考程序

(1)INT01.ASM$include(stc15.inc)

ORG0000HLJMPMAINORG0003H

LJMPINT0_ISR

ORG0013H

LJMPINT1_ISR

MAIN:

LCALLGPIO

SETBIT0

SETBIT1

SETBEX0

SETBEX1

SETBEA

SJMP$

INT0_ISR:

CPLP1.7

RETI

;STC15新增特殊功能寄存器的定义文件,详见附录六

;调用初始化程序

INT1_ISR:

CPLP4.7

RETI

$include(gpio.inc)

END

;STC15I/O口的初始化文件

(2)int01.c

#include

#include

#include

#defineucharunsignedchar

//包含支持IAP15W4K58S4单片机的头文件

//I/O初始化文件

 

#defineuintunsignedint

voidex01_init()

{

IT0=1;

IT1=1;

EX0=1;

EX1=1;

EA=1;

}

voidmain()

{

GPIO();

ex01_init();

while

(1);

}

voidint0_isr()interrupt0

{

P17=~P17;

}

voidint1_isr()interrupt2

{

P47=~P47;

}

4.实验电路原理及硬件连线

基于STC15单片机开发板实施,采用LED7、LED9显示,采用SW17、SW18输入外部中断0和外部中断1中断请求信号。

5.实验内容

(1)完成INT01.ASM程序的编辑、编译与调试。

(2)完成int01.c程序的编辑、编译与调试。

6.程序调试及效果分析

(1)调试INT01.ASM程序,记录与分析程序运行效果。

(2)调试int01.c程序,记录与分析程序运行效果。

7.实验报告要求

(1)总结外部中断的触发方式设置与工作特点。

(2)总结按键输入外部中断请求信号存在的问题与解决方法。

实验四IAP15W4K58S4单片机定时器/计数器定时功能的应用编程

与调试

1.实验目的

(1)进一步掌握IAP15W4K58S4单片机定时器/计数器的电路结构与工作原理。

(2)掌握IAP15W4K58S4单片机定时器/计数器定时功能的应用编程。

2.预习与思考

(1)预习8.1〜8.3节内容,掌握IAP15W4K58S4单片机定时器/计数器TMOD、TCON的设置与应用编程。

(2)预习8.4节内容,分析参考程序FLASH.ASM与flash.c。

3.

实验参考程序

(1)FLASH.ASM

RETI

$include(gpio.inc)

END

;STC15I/O口的初始化文件

 

//包含支持IAP15W4K58S4单片机的头文件

(2)Flash.c

#include

#include

#include

#defineucharunsigned#defineuintunsigneduchari=0;

voidmain(void)

//I/O初始化文件charint

{

GPIO();//初始化函数

TMOD=0x00;

TH1=0x3c;

TL1=0xb0;

ET1=1;

EA=1;

TR1=1;

while

(1);

}

voidT1_isr()interrupt3

{

i++;

if(i==20)

{

i=0;

P16=~P16;//LED灯的驱动取反输出P17=~P17;

P46=~P46;

P47=~P47;

}

}

4.实验电路原理及硬件连线

基于STC15开发板,采用数码管显示秒表值。

5.实验内容

完成SECOND.ASM与second.c程序的编辑、编译与调试。

6.程序调试及效果分析

(1)调试SECOND.ASM程序,观察与记录程序运行结果。

(2)调试second.c程序,观察与记录程序运行结果。

7.实验报告要求

IAP15W4K58S4

(1)以IAP15W4K58S4单片机定时器/计数器方式0的电路结构,单片机定时器/计数器的工作原理。

(2)分析FLASH.ASM.ASM与flash.c的程序功能。

实验五IAP15W4K58S4单片机双机通信的应用编程与调试

1.实验目的

(1)巩固串行通信的基本概念与基本知识。

(2)掌握IAP15W4K58S4单片机串行口1工作方式的设置与应用编程。

2.预习与思考

(1)预习9.1节内容,掌握串行通信的基本知识。

(2)预习9.2节内容,掌握IAP15W4K58S4单片机串行口1的工作方式与应用编程。

(3)分析例参考程序UART.ASM与uart.c,根据程序功能制定程序的调试方案。

3.实验电路原理及硬件连线

(1)UART.ASM

$include(stc15.inc);STC15新增特殊功能寄存器的定义文件,详见附录六

ORG0000H

LJMPMAIN

ORG0023H

LJMPS_ISR

MAIN:

LCALLGPIO

LCALLUARTINIT

SETBES

SETBEA

ORLP3,#00001100B

LOOP:

MOVA,P3

ANLA,#00001100B

MOVSBUF,A

JNBTI,$

CLRTI

LCALLDELAY100MS;设置发送间隔

SJMPLOOP

S_ISR:

PUSHACC

JNBRI,S_QUIT

CLRRI

MOVA,SBUF

ANLA,#00001100B

CJNEA,#00H,NEXT1

CLRP1.7

SETBP1.6

SETBP4.7

SETBP4.6

SJMPS_QUIT

NEXT1:

CJNEA,#04H,NEXT2

SETBP1.7

CLRP1.6

SETBP4.7

SETBP4.6

SJMPS_QUIT

NEXT2:

CJNEA,#08H,NEXT3

SETBP1.7

SETBP1.6

CLRP4.7

SETBP4.6

SJMPS_QUIT

NEXT3:

SETBP1.7

SETBP1.6

SETBP4.7

CLRP4.6

S_QUIT:

POPACC

RETI

UARTINIT:

;9600bps@11.0592MHz,从STC-ISP工具中获得

MOVSCON,#50H

ORLAUXR,#40H

ANLAUXR,#0FEH

ANLTMOD,#0FH

MOVTL1,#0E0H

MOVTH1,#0FEH

CLRET1

SETBTR1

RET

;8位数据,可变波特率

淀时器1时钟为Fosc,即1T

;串口1选择定时器1为波特率发生器;设定定时器1为16位自动重装方式;设定定时初值;设定定时初值

;禁止定时器1中断;启动定时器1

DELAY100MS:

NOP

NOP

NOP

PUSH30H

PUSH31H

PUSH32H

MOV30H,#4

MOV31H,#93

MOV32H,#152

NEXT:

DJNZ32H,NEXT

DJNZ31H,NEXT

DJNZ30H,NEXT

POP32H

POP31H

POP30H

RET

$include(gpio.inc)

END

(2)uart.c

#include

#include

#include

#defineucharunsignedchar#defineuintunsignedintuchartemp;

;@11.0592MHz,从STC-ISP工具中获得

;STC15I/O口的初始化文件

//包含支持IAP15W4K58S4单片机的头文件

//I/O初始化文件

uchartemp1;

voidDelay100ms()//@11.0592MHz

{

unsignedchari,j,k;

_nop_();_nop_();

i=5;

j=52;

k=195;

do

//8位数据,可变波特率

//定时器1时钟为Fosc,即1T

//串口1选择定时器1为波特率发生器//设定定时器1为16位自动重装方式

TL1=0xE0;//设定定时初值

TH1=0xFE;//设定定时初值

ET1=0;//禁止定时器1中断

TR1=1;//启动定时器1

voidmain()

{

GPIO();

UartInit();

ES=1;

EA=1;

while

(1)

{

temp=P3;

temp=temp&0x0c;

SBUF=temp;

while(TI==0);

TI=0;

Delay100ms();

}

}

voiduart_isr()interrupt4

{

if(RI==1)

{

RI=0;temp1=SBUF;

switch(temp1&0x0c)

{

case0x00:

P17=0;P16=1;P47=1;P46=1;break;

case0x04:

P17=1;P16=0;P47=1;P46=1;break;

case0x08:

P17=1;P16=1;P47=0;P46=1;break;default:

P17=1;P16=1;P47=1;P46=0;break;

}

}

}

4.实验电路原理及硬件连线

基于STC15单片机开发板实施,采用LED7~LED10采用,采用SW17、SW18输入控制信号。

甲机的P3.0与乙机的P3.1相连,甲机的P3.1与乙机的P3.0相连,甲机的地线与乙机的地线相连。

5.实验内容

(1)完成UART.ASM程序的编辑、编译与调试。

(2)完成uart.c程序的编辑、编译与调试。

(3)改用串行口2实现双机通信,试编写程序并调试。

6.程序调试及效果分析

(1)调试UART.ASM程序,改变甲机SW17、SW18的输入状态,观察乙机LED7~LED10的状态,并记录与分析;反之,改变乙机SW17、SW18的输入状态,观察甲机LED7~LED10的状态,并记录与分析。

(2)调试uart.c程序,改变甲机SW17、SW18的输入状态,观察乙机LED7~LED10的状态,并记录与分析;反之,改变乙机SW17、SW18的输入状态,观察甲机LED7~LED10的状态,并记录与分析。

(3)调试用串行口2实现双机通信的程序。

7.实验报告要求

(1)总结串行口1的工作方式与工作特性。

(2)双机通信的调试结果与分析。

(3)用串行口2实现双机通信,画出用串行口实现双机通信的电路图,列出实验程序与调试记录,分析调试结果。

实验六IAP15W4K58S4单片机AD转换模块的应用编程与调试

1.实验目的

(1)掌握IAP15W4K58S4单片机AD转换模块的编程应用。

(2)通过实验理解IAP15W4K58S4单片机AD转换模块如何进行数据采集,如何实现模拟量到数字量的转换。

(3)了解IAP15W4K58S4单片机AD转换模块在各种领域的应用。

2.预习与思考

(1)复习IAP15W4K58S4单片机AD转换模块的结构以及寄存器的控制使用。

(2)复习IAP15W4K58S4单片机8位或10位AD转换结果在两种不同存储格式下分别的计算方法。

(3)复习IAP15W4K58S4单片机AD转换模块的应用编程要点与思路,分析ad.c程序

的功能。

3.实验参考程序(ad.c)

#include//包含支持IAP15W4K58S4单片机的头文件

#include

#include//I/O初始化文件

#defineucharunsignedchar

#defineuintunsignedint

#include<595hc.h>

uintadc_value;voidmain(void){

uinti;

//定义无符号字符型变量adc_value用于保存ADC值//主程序

//定义整型变量i用于适当延时

 

ADC_CONTR|=0x80;for(i=0;i<1000;i++);

P1ASF=0x02;

CLK_DIV|=0x20;

ADC_CONTR=0x89;

//打开A/D转换电源

//适当延时

//设置ADC1(P1.1)为模拟量输入功能

//ADRJ=1,设置A/D转换结果的存储格式

//选择选择输入通道ADC1(P1.1)并启动A/D转换

EADC=1;

EA=1;

//打开ADC中断

//打开CPU总中断

while

(1)

{

//秒值送显示缓冲区

//秒值送显示缓冲区

Dis_buf[7]=adc_value%10;

Dis_buf[6]=adc_value/10%10;

Dis_buf[7]=adc_value/100%10;

Dis_buf[6]=adc_value/1000%10;display();//调显示函数

}

}

voidADC_int(void)interrupt5//ADC中断服务子程序

{

ADC_CONTR=0x81;//将ADC_FLAG清0

adc_value=ADC_RES*256+ADC_RESL;//保存10位A/D转换结果,范围为0~1023

ADC_CONTR=0x89;//重新启动A/D转换

}

4.实验电路原理及硬件连线

将STC15实验板W1电位器的中间抽头(P5.5)接AD转换的输入端P1.1,转换后结果送数码管显示(0〜1023)。

5.实验内容

(1)完成ad.c程序的编辑、编译与调试。

(2)如果AD模块采用查询方式进行转换,编写程序并验证效果。

(3)如果AD模块采用定时方式进行转换,编写程序并验证效果。

6.程序调试及效果分析

(1)通过编译软件keil编写源程序代码,编译通过没有错误,生成十六进制目标文件。

(2)通过STC单片机下载软件STC-ISP将十六进制目标文件下载到STC学习板的单片机芯片IAP15W4K58S4,验证实验效果。

(3)调节W1,观察数码管的显示值并记录。

7.实验报告要求

(1)总结IAP15W4K58S4单片机AD转换模块的软、硬件设计原理与方法;

(2)写出所作实验程序的源代码,给每行语句加上详细的注释,在预习报告的基础上完善程序流程图;

(3)叙述程序调试过程中遇到的问题以及解决方法,写出本次实验的收获和心得体会。

实验七键盘与数码LED显示接口的应用编程与调试

1.实验目的

(1)掌握独立按键的编程应用。

(2)掌握数码管的编程应用。

2.预习与思考

(1)预习13.2.1内容。

(2)预习13.2.1、13.2.3内容。

(4)画出独立按键电路原理图。

(5)画出串行数据动态扫描数码管显示电路原理图。

(6)分析595hc.h头文件(见附录)和key-display.c的程序功能。

3.实验参考程序(key-display.c)#include"stc15.h"//包含单片机头文件

#include"GPIO.h"//包含初始化I/O端口头文件

#include

#defineucharunsignedchar

#include"595hc.h"//包含数码管显示头文件

sbitSW17=P3A2;//定义按键-

sbitSW18=P3A3;//定义按键+

voidDelay(unsignedintv)

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

当前位置:首页 > 解决方案 > 商业计划

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

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