单片机谷云龙1模板Word文档下载推荐.docx
《单片机谷云龙1模板Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机谷云龙1模板Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
无极性电容:
CAP极性电容:
CAP-ELEC单片机:
AT89C51
晶体振荡器:
CRYSTAL电阻:
RES按键:
BUTTON
发光二极管:
红色LED-RED绿色LED-GREEN蓝色LED-BLUE黄色LED-YELLOW
2.在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件;
参考程序如下:
C语言程序:
#include<
reg51.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
voiddelay()
{
uchari,j;
for(i=255;
i>
0;
i--)
for(j=0;
j<
255;
j++);
}
voidmain()
P2=0xfe;
while
(1)
delay();
P2=_crol_(P2,1);
}
将以上程序补充完整,流水时间间隔为50ms。
3.将.HEX文件导入仿真图,运行并观察结果;
4.利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结果。
三、主要实验设备
实验室电脑及配套实验箱LED发光二极管、按键电路。
四、实验内容
1.将以上汇编语言程序补充完整;
2.改变流水灯的时间间隔;
3.编写出对应的C51程序。
五、实验总结
用C语言写的程序需要转换为相应的hex文件,然后下载的单片机中。
对于单片机而言,发光二极管是非常重要的一部分,而其本质为半导体器件,在实验使用的时候要注意其极性和参数。
所有的细节都可能导致程序不能正常运行,所以在做实验的时候要非常的小心,对我来说在实验的过程中也出现了许多的问题,有许多的细节没有注意到导致实验的失败。
六、预习及思考
1.如何让改变流水方向?
答:
可以通过改变端口高低电平的顺序改变流水灯方向,可以将语句“P2=_crol_(P2,1);
”改为“P2=_cror_(P2,1);
”来实现。
2.若将R3至R10上拉电阻省略,8支LED还能正常发光吗?
将上拉电阻去掉后,LED不能正常发光,在仿真软件中它们的亮度普遍偏亮,在实际过程中可能已被击穿烧毁。
3.如果将LED接到P0口与接到P2口硬件设计时应注意什么问题?
将LED接到P0口与接到P2口时需要外接上拉电阻。
实验二键盘扫描显示实验
利用端口外接矩阵式按键,掌握按键程序设计的方法。
1.在Proteus环境下建立如下仿真原理图,并保存为文件;
2.在Keil环境下建立源程序并保存为.ASM文件
查阅资料或参考教材有关章节编写按键扫描和显示子程序,仿真调试。
//
unsignedcharkeyno=0xff;
unsignedchartable[]={
0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90,
0x88,0x83,0xC6,0xA1,0x86,0x8E};
//定义数组
voiddelay()//延时
unsignedchari,j;
for(i=0;
i<
20;
i++)
for(j=0;
250;
voiddisplay(unsignedchari)//显示子函数
P0=table[i];
voidkeyscan()//键盘扫描子函数
P0=0xf0;
delay();
if(P0==0xf0)
keyno=0xff;
return;
Switch(P0)
case0xe0:
keyno=0;
break;
case0xd0:
case0xb0:
case0x70:
default:
P0=0xff;
delay();
switch(P0)
case0x0e:
keyno+=0;
display(keyno);
case0x0d:
keyno+=4;
case0x0b:
keyno+=8;
case0x07:
keyno+=12;
voidmain()//主函数
while
(1)
{
keyscan();
}
实验室电脑及配套实验箱LED数码管、脉冲发生电路和按键电路。
1.利用线反转法或行扫描法编写按键扫描子程序;
2.编写图中共阳型7段LED数码管显示子程序循环显示0~F字符;
3.编写主程序实现当K0~KF按键中任一一个按下时,数码管显示相应的键值;
4.编写相应的C51程序。
矩阵式按键键值的确定主要分为有线反转法和扫描法两种方法。
,线反转法相应的效率较高,而线反转法利用两次扫描,能够方便的确定键盘键值。
第一次先令列有效,然后利用行选,两者结合,得出相应的键值。
而扫描法实现起来比较容易,这种方法比较常规,容易想到,但是工程量较大。
本实验中用到7段数码管(共阳),数码管的使用需要注意数码管的相应代码。
共阳和共阴的数码管代码刚好互为相反数。
但是在实际的应用中还是略有不同。
1.参考教材按键扫描原理和数码管显示原理相关章节编写对应的子程序。
2.矩阵按键如何确定键值?
此处矩阵按键是通过行扫描的方式来进行确定键值得。
单片机不断的对端口进行扫描,先确定行值,然后确定列值,最终确定是哪个按键按下。
由于事先已经将相应的键对应的晶体管的显示数据存储在数组内,因此可以实现数据的显示。
3.共阳型数码管和共阴型数码管的显示代码之间什么关系?
共阳极的数码管低电平有效,而共阴型数码管高电平有效,并且其所用的数据线相同。
因此,共阳型与共阴型显示代码互为补数。
同一显示数据的代码数据之和为255。
4.如何软件去除抖动?
在按键按下时,先不要去执行相应的执行程序,而是调用延时程序进行相应的延时,然后再去判断是否有按键按下,如果是抖动,则能很好的进行消除。
在进行软件去抖动时一定要注意延时时长的设置。
实验三定时计数器中断实验
利用单片机的定时计数器和外部中断,实现LED流水灯轮流发光,流水时间以定时器的方式来控制,利用计数器进行计数改变流水灯的状态,输入外部脉冲产生外部中断改变流水灯的状态。
原理图中常用库元件的名称:
无极性电容:
2.在Keil环境下建立源程序并保存为.ASM文件,生成.HEX文件;
参考程序如下:
ucharm=0xfe;
voiddelay(uinta)
uinti;
while(--a!
=0)
120;
i++);
voidint0()interrupt0
ucharj=10;
m=_cror_(m,1);
EA=0;
while(j--)
P1=m;
delay(100);
P1=0xff;
EA=1;
voidmain()
IT0=1;
EX0=1;
P1=_crol_(m,1);
将以上程序补充完整,流水时间间隔,闪烁时间间隔为250ms。
3.将.HEX文件导入仿真图,运行并观察结果;
4.利用Keil软件将程序下载至实验箱,进行硬件仿真,观察实验结果。
实验室电脑及配套实验箱LED发光二极管、脉冲发生电路和按键电路。
1.将以上程序中软件延时改为利用定时器T0实现;
2.P3.4引脚外接脉冲源进行计数实现对流水灯状态的改变;
3.写出对应的C51程序,并进行仿真调试。
本次试验利用到了单片机的中断资源。
利用中断,能够高效的利用单片机的CPU资源。
在没有请求时,CPU能够去处理其他相关的工作。
整体效率得到了提高。
1.若把边沿触发改为电平触发,有何不同?
边沿触发型,CPU在响应中断后由硬件自动清除其中断标志位IE0或IE1,无需其他措施。
电平触发型,CPU在响应中断后硬件不会自动清除其中断标志位IE0或IE1,也不能用软件清除。
在中断响应后,要立即撤销输入引脚上的低电平。
2.如何让流水灯保持原来的状态继续流水?
按下复位键,重新启动计数器,流水灯便可以继续流水。
3.软件延时和定时器定时的区别?
软件延时就是让单片机反复值行一段程序,以实现延时的目的。
软件延不精确,占用CPU时间;
延时期间cpu不能做别的,定时器延时精确(不同晶振可做一致调整);
不占用cpu资源。
4.定时方式和计数方式的区别?
单片机有P3.4,P3.5两个信号引脚,外部脉冲在负跳变沿时有效,进行计数器加1,在计数方式下,单片机在每个周期的S5P2拍对外部计数脉冲进行采样,在下一机器周期的S3P1进行计数。
而定时功能也是通过计数器来实现的,但是此时的计数脉冲来自单片机的内部,即每一个机器周期产生一个计数脉冲。
实验四串行通信实验
利用单片机的串行口输出数据,掌握单片机串行通信的特点。
查阅74164芯片资料和共阳型数码管的显示原理或参考教材有关章节编写循环显示0~F显示子程序。
uchartable[]={
0xc0,0xfa,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x84};
voidmain()
uchari;
SCON=0x00;
TI=0;
for(i=0;
16;
A=table[i];
SBUF=A;
While
(1)
;
实验室电脑及配套实验箱LED数码管、74164串并转换芯片。
利用串行口工作方式0同步移位寄存器方式,利用74164作为驱动芯片,编程循环显示0~F。
本次试验的内容是串行通信,串行通信和并行通信是传输信息的两种方式。
串行通信主要用于长距离里的通信,并行通信主要用于短距离的通讯。
并行通讯速度较快,对硬件的要求比较高。
串行通信的代价较小,但是速度较慢。
1.串行接口和并行接口的特点各是什么?
并行接口是在多根数据线上,数据以字节或字为单位与输入/输出设备或控制对象传送信息的。
与此相对的串行接口是在一根数据线上以1位数据位为单位与I/O设备或通信设备传送信息。
实际应用中,凡是在CPU与外设之间同时需要两位以上信息传送时,主要采用并行接口,并行接口适用于近距离、高速度的场合。
并行传送的信息不要求固定的格式,串行传送的信息有数据格式的要求。
2.方式0时,串口数据的输出和时钟的输出引脚分别是什么?
方式0时,串口数据的输出和时钟的输出引脚分别是RXD和TXD。
3.方式0数据传输的波特率?
方式0数据传输的波特率是fosc/12。
4.方式0字符(帧)的格式是多少位?
方式0是同步移位寄存器模式,字符(帧)的格式是8位传送数据。