51单片机实验报告-上传
图1-2 New Project菜单
图1-3 文件窗口
3
选择所要的单片机,这里我们选择常用的Ateml公司的AT89C51。此时屏幕如图1-4所示。完成上面步骤后,就可以进行程序的编写了。
4
首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。点击图1-5中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New或快捷键CTRL+N来实现。
unsigned char code DIG_CODE[19]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0xc7,0x8c,};
XBYTE[0xb000]=A[n];
XBYTE[0xa000]=A[n];
以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。
安装好后,让我们一起来建立一个小程序项目吧。即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。
XBYTE[0XA000]=0XC0;
XBYTE[0X9000]=0XC0;
XBYTE[0X8000]=0XF9;
3.显示P232:
XBYTE[0XB000]=0XC8;
XBYTE[0XA000]=0XA4;
XBYTE[0X9000]=0XB0;
XBYTE[0X8000]=0XC8;
4.显示----:
{
Delay10ms();
XBYTE[0xC000]=0X07;
m=XBYTE[0xC000];
m=m&0x0f;
if(m!=0x0f)
{
if(m==0X0e)KeyValue=1;
if(m==0X0d)KeyValue=5;
if(m==0X0b) KeyValue=9;
if(m==0X07)KeyValue=12;
首先当然是运行KEIL51软件。运行几秒后,出现如图1-1的屏幕。
图1-1
2
点击工程菜单,选择弹出的下拉式菜单中的NewuVisionProject,如图1-2。接着弹出一个标准Windows文件对话窗口,如图1-3。在“文件名”中输入您的第一个C程序项目名称,“保存”文件。这是KEIL uVision4项目文件,以后我们可以直接点击此文件以打开先前做的项目。
{
XBYTE[0xB000]=DIG_CODE[16];
XBYTE[0xa000]=DIG_CODE[14];
XBYTE[0x9000]=DIG_CODE[17];
XBYTE[0x8000]=DIG_CODE[17];
}
}
学生实验心得
通过这次单片机实验,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
在这个窗口我们可以用c语言或者汇编语言编写程序。
5
可以用c语言或者汇编语言编写程序,编写好之后点击保存,并且文件后缀名是.c或者.ASM,并且在项目中添加写好的程序,如图所示,
保存好c文件后,双击源组1,找到c程序,点击添加即可。
此时再点击1键,选择Output,在Creat HEX File前面打勾,让程序
通过这次实验,我发现了自己的不足之处,比如动手能力还需加强,处理各种问题的能力还需加强,我将不断发展壮大自己,争取在以后的学习生活中有更好的表现。
非常感谢Z老师在本次实验中的精心指导!
学生(签名):
年 月 日
指导
教师
评语
成绩评定:
指导教师(签名):
年 月 日
当给74LS273芯片赋值为0x0d时,为检测键盘第三列,原理同第一列。
当给74LS273芯片赋值为0x0e时,为检测键盘第四列,原理同第一列。
四
void KeyDown(void)
{
char m=0,n=0;
XBYTE[0xC000]=0x00;
m=XBYTE[0xC000];
if(m!=0x0f)
void main()
{
unsigned charn;
P2=0x01;
while(1)
{
for(n=0;n<7;n++)
{P2=_crol_(P2,1);
Delay10ms(50);
}
for(n=0;n<7;n++)
{P2=_cror_(P2,1);
Delay10ms(50);
}
}
}
void Delay10ms(unsigned int a)
Delay10ms();
n++;
}}
五、键盘子程序的应用
开机显示HELL,按A显示P001,按数字键则左移,按字母键则返回HELL:
while(1)
{
KeyDown();
if(KeyValue==10)//按a的时候
{int w=0,x=0,y=0,z=0;
XBYTE[0xB000]=DIG_CODE[18];
三、
LED可分为共阳极或共阴极,各段码位和显示段码的对应关系如下图所示:a~dp依次对应D0~D7。
共阳极或共阴极的十六进制数及空白字符与P的显示段码如下图所示,分别对地址:8000H,9000H,A000H,B000H赋值可让LED显示出字符。
四
用一个数组DIG_CODE[19]数组来装显示段码,并且对地址赋值即可。
{unsigned charb,c;
for(;a>0;a--)
for(b=38;b>0;b--)
for(c=130;c>0;c--) ;
}
实验三
一、
二、
MCS-51单片机显示部分,外接4片74LS273芯片作为4位LED显示器的静态显示接口,并行输出端分别接LED显示器的各段对应的引脚上。在单片机应用系统中,显示器显示用静态显示显示。
XBYTE[0XB000]=0XBF;
XBYTE[0XB000]=0XBF
XBYTE[0XB000]=0XBF
XBYTE[0XB000]=0XBF
实验
一、键盘电路
二、键盘译码地址
MCS-51单片机键盘部分,外接1片74LS273芯片作为扫描的输出接口,地址为:0C000H,输入接口在74HC244对应的引脚上,地址为:0C000H。
三、键盘原理
当给74LS273芯片赋值为0x07时,为检测键盘第一列,若为K5按下,则74HC244的1A2口的值为0,1A1,1A3,1A4口值为1。故推出接受到的值为0x0d;反之,若74HC244接受的值为0x0d,则是K5键被按下。
当给74LS273芯片赋值为0x0b时,为检测键盘第二列,原理同第一列。
XBYTE[0xB000]=DIG_CODE[w];
XBYTE[0xa000]=DIG_CODE[x];
XBYTE[0x9000]=DIG_CODE[y];
XBYTE[0x8000]=DIG_CODE[z];
}
KeyValue=10;
f++;
Delay10ms(20);
}
KeyDown();
if(KeyValue>9)
XBYTE[0xa000]=DIG_CODE[0];
XBYTYTE[0x8000]=DIG_CODE[1];
Delay10ms(5);
while(f>0)
{KeyDown();
if(KeyValue>=11)
f=-1;
if(KeyValue<=9)
{
w=x;x=y;y=z; z=KeyValue;
m=XBYTE[0xC000];
m=m&0x0f;
if(m!=0x0f)
{
if(m==0X0e)KeyValue=3;
if(m==0X0d)KeyValue=7;
if(m==0X0b) KeyValue=10;
if(m==0X07)KeyValue=14;
}
XBYTE[0xC000]=0X0e;
m=XBYTE[0xC000];
编译生成用于芯片烧写的HEX文件。
设置好后,依次点击编译按钮,此时我们可以在最下面看到有无错误,有无警告,是否生成HEX文件。
6
选择好下载软件,用STC-ISP软件 ,界面如图所示:
其中单片机型号选择STC89C52RC系列,并且点击打开程序文件,找到我们保存的HEX文件,打开之后点击下载即可。
三
依照实验内容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则可以仿真测试或者下载到单片机进行实验。
四
#include<reg51.h>
sbit LED2=P2^2;
void main()
{
while(1)
{
P2=0x03;
}
}
实验二
一
1、熟悉单片机I/O口的特点
2、掌握单片机I/O口的编程
二
1、P1口流水灯灯程序编写(调试时连接JP3的8个跳线)
2、蜂鸣器发声程序