单片机实验指导书Word格式.docx
《单片机实验指导书Word格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
![单片机实验指导书Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/16/c96ee788-da16-41de-968d-fa0ac8a6db5b/c96ee788-da16-41de-968d-fa0ac8a6db5b1.gif)
运行KeilC软件,选择建立工程,编写源程序,并添加到工程中,然后进行编译。
3、进行实验
运行AVRstudio软件,点击工具栏选择芯片AT89S52,在FLASH操作框中选择欲加载的.HEX文件,点击program,将程序写入到单片机中,当写入完成后即自动运行。
4、观察并记录实验结果。
如现象不正确,返回第2步。
实验电路板图
(一)
实验电路图
实验一、读程序存储器及简单I/O实验
一、实验要求:
1、P1口作输出口,接8只发光二极管,程序存储器的0500H~0509H单元依次存放着数字0~9的ASCII码,编程将其依次读出写入到内部RAM的30H~39H单元,并同时送P1口输出显示。
2、P1口作输出口,接8只发光二极管,编写程序,使发光二极管循环点亮。
二、实验目的
1、熟悉实验系统的使用及调试方法。
2、学习80C51汇编语言程序编写。
3、学习P1口的使用方法。
4、学习延时子程序的编写和使用。
三、实验电路及连线
P1.0-P1.7接LED1-LED8
四、实验说明
1、发光二极管当输入为0时点亮,1时熄灭。
2、为了使发光二极管显示的ASCII码(实验1)以及循环点亮(实验2)明确看清,可采用多重循环的软件延时。
五、实验报告要求
1、列出实验的汇编程序,画出实验连线图。
2、列出实验步骤,记录实验结果。
3、分析结果,得出结论。
实验二、定时器实验
由AT89S52内部定时器0,按方式1工作,即作为16位定时器使用每0.05秒T1溢出中断一次。
P1口的P1.0~P1.8分别接8个发光二极管。
要求编写程序模拟一时序控制装置。
开机后第一秒钟L4,L5亮,第二秒钟L3,L6亮,第三秒钟L2,L7亮,第四秒L1,L8亮,第五秒L2,L7亮,第六秒L3,L6亮,第七秒L4,L5亮,第八秒L1,L2,L3,L4亮,第九秒L5,L6,L7,L8亮,第十秒全亮,第十一秒全灭。
然后再从头循环。
1、学习80C51内部定时器的使用和编程方法。
2、学习中断处理程序的编程方法。
三、实验电路及连线
同实验一,P1.0-P1.7接LED1-LED8
1.关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。
2.内部计数器用作定时器时,是对机器周期计数。
因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方法计算:
机器周期=12÷
11.0592MHz=1.0857μS
(65536-定时常数)*1.0857μS=50mS
定时常数=4C00H
3.在中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
1、画出实验电路原理图。
2、画汇编程序流程图,并记录实验的汇编程序。
3、列出实验步骤,记录实验结果。
六、参考程序流程
主程序:
1、设置初始常数
2、开中断
3、等待中断
中断服务程序
1、保护现场
2、置计数常数
3、判断是否到1秒。
是,步骤4;
否,步骤7。
4、查表
5、显示数据
6、调整表格指针
7、恢复现场
8、中断返回
实验三、外部中断实验
由键盘生成外部中断信号,当任意键按下时,为外部中断请求信号,此时L2,L4,L6,L8亮,持续时间为5秒。
1、进一步熟悉80C51内部定时器的使用和编程方法。
2、学习外部中断的使用和编程方法。
3、学习中断嵌套程序的编写方法。
P1.0-P1.7接LED1-LED8,P0.0-P0.3接S4-S7,INT0接P3.2。
1.S4-S7为键盘提供输入信号,为了实现任意键按下时,INT0引脚输出低电平,S4-S7输入应为全0。
2.外部中断0(高级)与定时器0(低级)形成两级中断嵌套。
3.外部中断时的5秒延时可以采用软件延时或使用定时器1。
1、设置T0,T1初始常数
2、设置中断优先级
3、开中断
4、启动T0计数
5、等待中断
T0中断服务程序
4、查表,显示数据
5、调整表格指针
6、恢复现场
7、中断返回
INT0中断服务程序
2、显示数据
3、停止T0
4、置T1计数常数,启动T1计数注:
T1采用查询方式,也可采用中断嵌套
5、判断是否到5秒。
是,步骤5;
否,等待。
6、停止T1计数注:
步骤4-6可由软件延时代替
7、启动T0计数,恢复现场
实验四、扫描键盘及LED显示实验
一、实验要求
利用P1口与行列式键盘接口,分别定义8个按键,每个按键对应一个发光二极管,编写键盘扫描程序,当按键按下时,对应的二极管点亮;
当没有定义的其它按键按下时,二极管全灭。
二、实验目的
1.学习在单片机系统中扩展行列式键盘的方法。
2.学习扫描键盘的实现方法。
键盘:
P1.0~P1.7分别接键盘S0~S7,中断式:
P3.2接INT0,扫描式不接P3.2
P0.0-P0.7接LED1-LED8。
1.首先画出实验用电气原理图(键盘和LED接口电路图);
2.根据电气原理图连线,分别编写中断式及扫描式键盘扫描程序;
3.根据设计的电气原理图,连线
4.下载程序,运行
五、实验报告
1.画出电气原理图;
2.附上完整的程序代码;
3.画出程序流程;
4.具体说明中断式及扫描式键盘扫描的实现方法;
实验五单片机与PC机串行通信实验
AT89S52串行通信口工作在方式1,8位UART方式,允许接收,9600bps。
在PC机上运行串口调试软件。
编程实现,
1)单片机接收PC机发送的数据并回送给PC机显示,可同时送LED显示;
2)AT89S52内部定时器1,按方式1工作,每1秒钟内部RAM30H单元内容加1,并通过串行通信口送PC机显示。
1、学习80C51串行通信口的编程方法。
三、实验线路
用RS-232接口通信线连接实验系统与PC机。
1、本次实验为两个程序。
2、在PC机上运行串口调试软件,设置波特率为9600bps,无奇偶校验位。
3、正确连线,编写并下载运行AT89S52串行通信程序。
4、观察并验证实验结果。
实验六I2C串行总线存储器读写实验
由AT89S52内部定时器1,按方式1工作,每1秒钟24LC32的0001H单元内容加1,以键盘作为外部中断输入信号,有键按下时,读取0001H单元内容并送LED显示。
1、进一步掌握定时器和外部中断的使用方法。
2、学习80C51与I2C串行总线器件的接口方法。
3、学习80C51模拟I2C总线的编程方法。
P0.0-P0.7接LED1-LED8,P1.0-P1.3接S4-S7,INT0接P3.2。
SDA接P1.7,SCL接P1.6,A0、A1、A2接地
1、以内部数据存储器30H单元作为缓存,暂存定时信息,即1秒钟加1,然后再写入到24LC32中。
2、器件地址为0,采用字节写及读随意地址,读写地址均为0001H。
3、参考教材中程序例子,编写模拟I2C总线的子程序。
4、外部中断程序中,读24LC32送LED显示。
2、画程序流程图,说明24LC32读写方法。
3、记录实验的汇编程序。
4、列出实验步骤,记录实验结果。
主程序略,参考实验三。
T1中断服务程序
否,步骤6。
4、30H内容加2
5、调用写24LC32子程序
2、停止T1计数
3、调用读24LC32子程序
4、读出的数据(在累加器A中)送LED显示
5、启动T1计数
注:
调用读24LC32子程序会引起T1定时误差,此处忽略不计。
写24LC32子程序
1、发送起始位
2、发送写控制字节10100000B
3、发送应答位
4、发送两个地址字节,中间需发送应答位
5、发送30H内容
6、发送应答位
7、发送停止位
8、返回
读24LC32随意地址子程序
5、发送应答位
6、发送起始位
7、发送读控制字节10100001B
8、发送应答位
9、读一个字节到ACC
10、发送非应答位
11、发送停止位
12、返回
实验七、扫描键盘及液晶显示实验
利用P1口与行列式键盘接口,编写键盘扫描程序,把按键输入的键码,显示在LCD液晶显示器上。
3.学习液晶显示的接口及程序设计方法。
P2.0-P2.7接LCD数据脚DB0-DB7,P3.4接LCDRS脚,
P3.5接LCDRW脚,P3.6接LCDE脚,P3.7接LCDPSB脚
四、