单片机学生实验资料资料Word文档下载推荐.docx
《单片机学生实验资料资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机学生实验资料资料Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
电阻;
③CRYSTAL:
晶振;
④CAP、CAP-ELEC:
电容、电解电容;
⑤LED-GREEN:
绿色发光二级管;
⑥SWITCH:
开关。
模拟开关灯的电路原理图
3、程序设计内容
1开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只有高电平和低电平两种,当拨动开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。
单片机可以采用if(K1==1)或者if(K1==0)指令来完成对开关状态的检测。
2输出控制
当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二级管L1熄灭;
当P1.0端口输出低电平,即P1.0=0时,发光二级管L1亮。
(预习内容)
模拟开关灯的程序流程图
4、程序清单(预习内容)
㈡广告灯(利用查表方式)的Protues仿真及程序设计
利用查表的方法,使端口P1作单一灯的变化;
左移2次,右移2次,闪烁2次(延时的时间0.2s)。
④CAP、CAP-ELEC:
绿色发光二级管。
广告灯的电路原理图
3、程序设计内容(预习内容)
查表法是单片机程序设计中常用
的一种方法,它多用于一些较复杂的控
制场合,如判断键盘按键的键值、利用
I/O口控制外部设备作一些预先设定好
的复杂动作(本题是其简单的示意)、
输出正余弦、三角、梯形或更复杂的波
形,甚至可以利用查表法实现一些复杂
的算法。
C语言步骤如下:
1定义一维数组TABLE[](复杂
情况也可以用二维数组,另外,为节省
单片机的RAM资源,数组一般放在代
码段中);
2把控制码按顺序放入数组
TABLE[]中;
3定义变量i,改变i的值,就可以
取出数组中对应的控制码。
广告灯的程序流程图
四、实验结果分析:
(1)模拟开关实验结果:
(2)广告灯实验结果:
五、思考题:
1、模拟开关灯实验:
编程实现2个开关控制1个灯的亮、灭,并通过Protues仿真。
答:
仿真结果:
程序:
2、简述P1口的特点和工作过程。
P31
指导教师批阅及成绩
指导教师签名:
年月日
中断实验同组人:
(l)学习外部中断0和1的应用。
中断系统设置,中断允许IE、中断优先级IP、中断触发方式TCON的初始化。
(2)熟悉Proteus软件电路设计和Keil软件程序调试方法。
外部中断0和1的工作方式
(l)AT89S51中断系统的设置,相关SFR使用方法,外部中断触发方式的区别。
三、实验内容
㈠外部中断在不同触发方式下的Protues仿真及C语言程序设计。
分别采用外部中断0和1通过不同触发方式控制发光二极管的亮灭,编制相应程序并且仿真。
⑤SWITCH:
开关SW1、SW2;
⑥LED-GREEN:
⑦LED-YELLOW:
黄色发光二级管。
外部中断的电路原理图
是低电平触发方式。
所以在SW1不断开的情况下,
一直是低电平,LED1一直点亮;
是边沿触发方式(下降沿),所以在SW2不断开的情况下,
一直是低电平,由于没有电平变化,因此不能持续产生中断,LED2不会一直点亮。
4、程序清单(预习内容)
㈡两位计数数码管的Protues仿真及C语言程序设计
采用外部中断0和1,控制两位数码管进行00~99的计数,其中外部中断0控制进行加1计数,外部中断1控制进行减1计数。
⑤BUTTON:
按钮K1和K2;
⑥7SEG-MPX2-CA:
两位共阴极数码管;
⑦74LS244:
8路数据缓冲器。
两位计数数码管电路原理图
3、程序设计内容(预习内容)
两位计数数码管的程序流程图
首次运行时,LED的显示初始值为00,此时如果按
进行减计数,仍然显示为00,按
进行加计数,若加到99时,再按
加计数,仍然显示为99,数值不为00时,按
可进行减计数,数值不为99时,按
可进行加计数。
4、程序清单(预习内容)
4、实验结果分析:
1、外部中断在不同触发方式下的Protues仿真结果及分析
(1)低电平触发
(2)下降沿触发
结果分析:
(1)开关SW1接到单片机的外部中断请求0(P3.2口),作为中断请求的输入信号,选择外部中断请求0为电平触发方式。
当接通SW1时,外部中断请求0响应并允许,红色发光二级管(LED-GREEN)亮并维持在低电平直到断开SW1,中断结束。
应用了单片机的外部中断请求0功能。
(2)开关SW2接到单片机的外部中断请求1(P3.3口),作为中断请求的输入信号,选择外部中断请求1为跳沿触发方式。
当接通SW2瞬间,外部中断请求1响应并允许,黄色发光二级管(LED-YELLOW)亮一下,由于是边沿触发,黄色发光二级管马上熄灭,中断结束。
应用了单片机的外部中断请求1功能。
2、两位计数数码管的Protues仿真及分析
加1减1加1到99并保持减1到0后不变
先将0-9的字符存放到数组tab[]中,
1、外部中断0和1的中断入口地址:
、。
2、中断响应需要满足哪些条件?
定时器实验同组人:
(l)学习定时控制的方法:
软件延时、硬件延时。
相关中断系统设置,定时器的初始化。
定时器的初始化、工作方式
(l)AT89S51定时计数器的4种工作方式,TMOD、TCON、THx、TLx的使用方法,GATE门控位的作用。
㈠利用定时器产生脉冲的Proteus仿真及C语言程序设计。
使用AT89C52,晶振频率f=12MHz,在P1.2引脚上输出一个脉冲信号,周期为2s,站空比为20%。
(1)AT89C52:
单片机
(2)RES:
(3)CRYSTAL:
(4)CAP,CAP-ELEC:
电容,电解电容。
电路原理图
计数器计数周期=机器周期=12/12MHz=1us2s=2000000us,即需要计数200万次,其中高电平占40万次,低电平占160万次。
即可以采取每次10ms定时,高电平定时40次,低电平定时160次。
10ms=10000us,所以计数器初值为65536-10000=55536=oxD8F0。
㈡简易车辆里程表的Proteus仿真及C语言程序设计
假设某家摩托车厂生产的摩托车,车轮直径为43cm,那么,该车行走1km需要车轮运转740圈。
在车体上找一个能够检测车轮转动的适当位置,安装一个磁敏感传感器或者光电传感器。
在与磁敏感传感器位置相对的摩托车转动部件上,安装一块小磁铁。
这样车轮转动时会形成磁敏感传感器与小磁铁之间的相对位移,从而产生一系列的电脉冲信号。
将该信号作为单片机内部可编程计数器的计数脉冲信号,供单片机记数。
请利用AT89C52中的定时器、计数器来模拟这个简易车辆里程表,电脉冲信号可以由按键按下和弹起来来模拟,里程表中里程显示可以用8个LED灯来实现。
为了方便,这里假设每产生5个周期的脉冲信号就相当于摩托车辆行驶1km,而且行驶的距离的数值用8个灯来显示,用8个LED灯来表示8位二进制数,灯亮表示1;
否则表示0.单位是km。
⑴AT89C52:
(2)RES:
(4)CAP,CAP-ELEC:
电容、电解电容;
(5)LED-RED:
红色发光二极管;
(6)BUTTON:
按键K1。
可以使用定时器/计数器0,使其作为计数器使用,工作在方式2.用人工控制开关产生的脉冲信号来模拟此敏感传感器产生的脉冲信号,这个信号通过P3.4引脚输入到单片机,作为计数的脉冲源。
仿真效果:
每当按键连续按下5次时,用LED表示的8位二进制会自动加1.当然,这个仿真只是在模拟简易车辆里程表,所计路程的最大值为255km。
4、程序清单(预习内容)
(1)利用定时器产生脉冲的Proteus仿真结果及分析
(2)简易车辆里程表的Proteus仿真结果及分析
1、AT89S51中定时器工作方式和计数器工作方式的区别是什么?
2、简述看门狗的作用和工作原理。
3、一个定时器的定时时间有限,如何用两个定时器实现较长时间的定时?
8255A可编程并行接口实验同组人:
(l)学习外部并行接口芯片的应用。
熟悉8255A的3种工作方式,端口地址分配,初始化命令字和PC口置位复位控制字的使用方法。
8255A的3种工作方式
(l)AT89S51扩展外部接口须注意的方面,8255A的3种工作方式。
AT89C52通过8255A并行扩展,模拟交通灯控制并在Proteus中仿真。
车流量基本均衡的两条路交于一十字路口,设为南北路和东西路,有两组红(R)、绿(G)、黄(Y)灯指挥着车辆和行人通行。
假设交通灯亮的顺序是:
南北绿灯亮、东西红灯亮→南北黄灯闪3下、东西红灯亮→东西绿灯亮、南北红灯亮→东西黄灯闪3下、南北红灯亮→南北绿灯亮、东西红灯亮。
①AT89C52:
②RES:
③CRYSTAL:
⑤74LS373:
锁存器;
⑥8255A:
并行接口芯片;
⑦74LS07:
驱动器;
⑧LED-RED、LED-GREEN、LED-YELLOW:
红、绿、黄色LED。
8255A的端口A控制两组共12个LED的亮和灭,8255A的端口A为基本输入/输出方式的输出。
8255A在方式0下数据输出具有锁存功能。
8255A的两条地址线A1、A0与锁存器74LS373的输出Q1、Q0相连,片选CS与P2.7相连,单片机的其他13条地址线与8255A无关,故取1。
本实验中,如果用81C55代替8255A,系统是否可以工作?
说明原因(画出电路图)。
电路图
串行口实验同组人:
(l)学习单片机串行口的应用。
串行口4种工作方式的区别,波特率设置,串行口初始化。
串行口4种工作方式的区别应用
(l)AT89S51串行口的基本原理,方式0的扩展应用,单片机与PC机的通信方式。
㈠串入并出芯片74164的Proteus仿真及C语言程序设计。
利用AT89C52单片机的串行口工作在方式0,AT89C52的RXD和TXD接74164,使8个发光二极管循环依次点亮。
电阻③CRYSTAL:
电容。
电解电容;
⑤LED-RED:
⑥74164.IEC:
串入并出接口芯片。
3、程序清单(预习内容)
㈡单片机与PC机串行通信的Proteus仿真及C语言程序设计
单片机通过串行口不停地向PC机发送字符串“WelcometoBeijing”。
①AT89C52:
②CONN-D9F:
9针插口;
③MAX232:
串行通信接口芯片;
④RES:
⑤CRYSTAL:
⑥CAP、CAP-ELEC:
电容、电解电容。
3、程序清单(预习内容)
1、AT89S51单片机的串行口有几种工作方式,有几种帧格式?
各种工作方式的波特率如何确定?
2、简述利用串行口进行多机通信的原理。
3、若AT89S51单片机串行口工作在方式0,RXD、TXD如何作用?
D/A转换、A/D转换实验同组人:
(l)学习外部接口的应用。
ADC0809、DAC0832的工作方式,输入/输出方式的应用。
ADC0809、DAC0832的工作方式
(l)AT89S51与ADC、DAC接口的连接,ADC0809、DAC0832的基本原理。
㈠ADC0809电压模/数转换
以AT89C52单片机为核心设计ADC0809模数转换仿真电路,模拟电压输入由可变电位器提供。
输入电压范围0~4.99V,经ADC0809转换成对应的0~255并通过数码管显示。
12MHz晶振;
⑤7SEG-MPX4-CC:
4位七段共阴极数码管;
⑥74LS02、74LS04、74LS74、74LS373︰或非门、反相位、D触发器、地址锁存器;
⑦POT-LIN:
变阻器;
⑧ADC0809:
8位A/D转换器。
将单片机的P0.0、P0.1和P0.2通过74LS373地质锁存器与ADC0809的ADDA、ADDB和ADDC相连接,选择ADC0809的采集通道IN0。
ADC0809的地址由P0口和P2口提供,即P0口作为地址/数据复用口,提供低8位地址;
P2口提供高8位地址。
由于从可变电阻器上引出的电压是从IN0口输入ADC0809的,所以要求P0:
0、P0.1和P0.2初始状态为低点
而P2.7控制ADC0809的ALE和OE端口,要求初始状态为低电平,因此ADC0809的地址可以定位ox7FF8。
㈡利用DAC0832转换器输出三角波
以DAC0832转换器和AT89C52单片机设计仿真电路,该电路能在虚拟示波器上显示出三角波,并能用虚拟电压表显示输出电压值,要求三角波的电压范围为0~15V且周期约为510ms。
②RES、RX8:
电阻、8排阻;
⑤DAC0832:
D/A转换器;
⑥LM358N:
运算放大器。
程序设计首先考虑DAC0832转换芯片的入口地址,地址的设置与接口电路的连接方式有关。
P2.7端口与DAC0832的CS片选端相连,要选通DAC0832,要求CS引脚为低电平,则DAC0832的入口地址为0x7FFFH。
1、DAC转换器的主要性能指标有哪些?
目前常用的DAC转换器主要有哪几种类型?
各有什么特点?
2、ADC转换器的主要性能指标有哪些?
目前常用的ADC转换器主要有哪几种类型?