西电 计组实验 2Word文档下载推荐.docx

上传人:b****4 文档编号:6415718 上传时间:2023-05-06 格式:DOCX 页数:12 大小:137.90KB
下载 相关 举报
西电 计组实验 2Word文档下载推荐.docx_第1页
第1页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第2页
第2页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第3页
第3页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第4页
第4页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第5页
第5页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第6页
第6页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第7页
第7页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第8页
第8页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第9页
第9页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第10页
第10页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第11页
第11页 / 共12页
西电 计组实验 2Word文档下载推荐.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

西电 计组实验 2Word文档下载推荐.docx

《西电 计组实验 2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《西电 计组实验 2Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。

西电 计组实验 2Word文档下载推荐.docx

{

inti,j;

for(i=0;

i<

del;

i++)

for(j=0;

j<

5000;

j++);

}

voidLED_LM()

LED_1=~LED_1;

LED_2=~LED_2;

voidmain()

LED_1=1;

LED_2=0;

while

(1)

{

delay(100);

LED_LM();

}

将写好的程序加载到开发板中

五实验仿真与测试

按下复位键,led灯开始有规律的闪烁。

六实验结果分析

实验中LED灯交替闪烁,因为将两个输出一个为0,一个为1,所以输出时两个是不同步的。

七实验小结

本次实验开始了微机部分,经过本次实验,我学会了如何将程序加载到开发板中。

学会了开发板的使用。

 

实验二键盘扫描

键盘扫描

使用查询方式进行键盘扫描码判断(数码管输出)。

reg52.h>

unsignedcharcodeDIG_CODE[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

voidDelay10ms(unsignedintc)//误差0us

unsignedchara,b;

//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//

for(;

c>

0;

c--)

for(b=38;

b>

b--)

{

for(a=130;

a>

a--);

}

}

chara=0;

P0=~DIG_CODE[0];

P2=0x0F;

if(0x0F!

=P2)//读取按键是否按下

Delay10ms

(1);

//延时10ms进行消抖

if(0x0F!

=P2)//再次检测键盘是否按下

{

//测试列

P2=0X0F;

switch(P2)

case(0X07):

a=0;

break;

case(0X0b):

a=4;

case(0X0d):

a=8;

case(0X0e):

a=12;

}

//测试行

P2=0XF0;

case(0X70):

break;

case(0Xb0):

a=a+1;

case(0Xd0):

a=a+2;

case(0Xe0):

a=a+3;

break;

while(0xf0!

=P2)//检测按键松手检测

Delay10ms

(1);

P0=~DIG_CODE[a];

}

写入板子中

按下数字键,屏幕显示相应的数字。

仿真结果符合情况,说明实验成功。

通过本次实验,我发现FPGA板功能非常强大。

通过对FPGA的学习,我更加深刻的理解了开发板的使用规则。

实验三中断系统和定时/计数器

中断系统和定时/计数器

使用定时器中断控制发光二极管每隔一段时间闪烁一次。

intnum=0;

P0=0XFF;

TMOD=0X01;

TH0=(65536-45872)/256;

TL0=(65536-45872)/256;

EA=1;

ET0=1;

TR0=1;

;

voidT0_timer()interrupt1

num++;

if(num==20)

P0=~P0;

num=0;

加载程序后

每一秒灯闪烁一次。

程序开始计时,每50毫秒中断一次,20次中断是可以使得灯闪烁一次。

通过本次实验,我了解了中断系统的定时与计时功能。

学会了利用FPGA设计有关中断系统的实验。

实验四FPGA中串口设计

FPGA中串口设计

实验要求完成较为复杂的串口通信工作

unsignedcharbuffer;

for(i=1;

for(j=1;

100;

j++)

{

;

TMOD=0x20;

//设置定时器1为工作方式2

TH1=0xd9;

//波特率为2400

TR1=1;

//开定时器1

REN=1;

//开启接收

SM0=0;

//工作方式1

SM1=1;

//CPU中断允许位

ES=1;

//串行口中断允许位

while

(1)//查询方式

/*if(RI==1)

RI=0;

LED_1=~LED_1;

buffer=SBUF;

P1=buffer;

//SBUF=buffer;

while(!

TI);

TI=0;

}*/

voidser()interrupt4

RI=0;

ES=0;

//关串口中断

delay(500);

P1=buffer-96;

SBUF=buffer;

//将数据buffer发送出去

TI=0;

//开中断

程序加载后

实现串口通信,输入1,显示为3,输入a,显示为63

我们的结果是在输入的16进制的基础上减去96,所以输入a,输出的为1,输入的b,输出2。

本次实验因为相对比较复杂,所以在实验过程中表现的很是吃力,最终还是完成了实验。

通过本次实验,我更加深刻的理解了串口通信的原理,学会了串口通信的实现机制。

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2