智能仪表试验Word文件下载.docx

上传人:b****5 文档编号:17366445 上传时间:2022-12-01 格式:DOCX 页数:28 大小:20.09KB
下载 相关 举报
智能仪表试验Word文件下载.docx_第1页
第1页 / 共28页
智能仪表试验Word文件下载.docx_第2页
第2页 / 共28页
智能仪表试验Word文件下载.docx_第3页
第3页 / 共28页
智能仪表试验Word文件下载.docx_第4页
第4页 / 共28页
智能仪表试验Word文件下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

智能仪表试验Word文件下载.docx

《智能仪表试验Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能仪表试验Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。

智能仪表试验Word文件下载.docx

}

/*****************中断服务子程序声明与定义********************/

interruptvoidnothing()//哑中断子程序

return;

/**************************主程序*****************************/

voidmain(void)

{

sys_ini();

for(;

;

{

delay();

/*xf管脚置低*/

clrcxf"

/*xf管脚置高*/

setcxf"

}

/***************************结束******************************/

实验一2

/*******************函数、子程序声明与定义********************/

inti;

volatileunsignedint*room=(volatileunsignedint*)0x0060;

volatileunsignedint*room2=(volatileunsignedint*)0x006F;

/*将0xAAAA写入从数据空间的地址0x0060开始的8个单元中*/

for(i=0;

i<

8;

i++)

*room=0xAAAA;

room++;

}

/*从0x0060开始的8个空间读出数据依次写入从0x0068开始的8个单元中*/

{

*room2=*(room-1);

room--;

room2--;

程序3

ioportshortport8000;

//输入端口地址定义

ioportshortport8001;

//输出端口地址定义

/*************************************************************/

/*将io空间的8000地址的值赋予io空间的8001地址*/

port8001=port8000;

程序4

/********************全局变量定义与初始化*********************/

unsignedintnum=0;

unsignedintshow=0x00AA;

/*配置时钟锁相为4倍频CLKOUT=4*10=40M*/

*SCSR1=0x81FE;

/*清除所有中断标志,"

写1清0"

*/

*IFR=0xFFFF;

voidtimer1_ini()//定时器1初始化子程序

/*使能int2中断*/

*IMR=0x0002;

/*使能T1PINT中断*/

*EVAIMRA=0x0080;

/*清EVA中断标志*/

*EVAIFRA=0xFFFF;

/*约1ms产生一次中断*/

*T1PER=0x01CD;

/*计数器清零*/

*T1CNT=0x0000;

/*连续增计数模式,预分频为64,定时器计时使能,内部时钟,定时器1比较使能*/

*T1CON=0x164C;

/*开总中断*/

clrcINTM"

interruptvoidtimer1()//定时器1中断子程序

/*记中断次数1000次,产生1秒延时*/

if(num==1000)

num=0;

/*显示值取反*/

show=~show;

elsenum++;

/*计数器清零*/

/*清EVA中断标志*/

//**************************主程序*****************************/

timer1_ini();

/*将欲显示值赋予io空间的8000地址*/

port8001=show;

程序5

unsignedintshow=0x00aa;

//定义欲显示值

//*******************函数、子程序声明与定义********************/

voidxint2_ini()//外部中断2初始化子程序

/*使能int1中断*/

*IMR=0x0001;

/*使能xint2中断,上升沿有效,高优先级,清xint2中断标志*/

*XINT2CR=0x8005;

/*开总中断*/

interruptvoidxint2()//外部中断2中断子程序

/*使能xint2中断,上升沿有效,高优先级,清xint2中断标志*/

xint2_ini();

程序6

unsignedinti=0;

unsignedintpoint[256];

unsignedintpoint1[256];

/*配置时钟锁相为4倍频CLKOUT=4*10M=40M,使能ADC时钟*/

*SCSR1=0x0081;

/*io、ram、program都设为0等待读写*/

WSGR=0x0000;

/*使能cpu中断1*/

voidadc_ini()//ADC初始化子程序

/*仿真器挂起时,完成最后一次ad,连续运行模式

预定标最长,高优先级中断,双排序模式,禁用其他模式*/

*ADCTRL1=0x2CC0;

/*立即中断模式,清中断标志*/

*ADCTRL2=0x0602;

/*启用排序器1,最大转换数为2*/

*MAXCONV=0x0001;

/*选择模拟输入通道为4、5通道*/

*CHSELSEQ1=0x0054;

//开总中断

interruptvoidad()

point[i]=(*RESULT0>

>

6);

//读出ad结果

point1[i]=(*RESULT1>

i++;

if(i==256)

i=0;

*ADCTRL2|=0x0200;

//清除ad中断标志

adc_ini();

*ADCTRL2|=0x2000;

//软件启动ad转换

程序7

ioportunsignedport8008;

//定义AD7822的地址

unsignedintdata[256];

unsignedintj=0;

/*配置时钟锁相为4倍频CLKOUT=4*10M=40M*/

*SCSR1=0x0041;

/*io、ram、program都设为1等待读写*/

WSGR=0x0649;

}/*****************中断服务子程序声明与定义********************/

/*启动ad7822*/

/*等待转化完成*/

nop"

data[j]=port8008&

0x00FF;

//读取数据

j++;

if(j==255)

j=0;

程序8

/************************文件预处理***************************/

math.h"

#definepi3.1415926

unsignedintdata=0;

unsignedintcurve[128];

unsignedintcurve1[128];

unsignedintcurve2[128];

/*CLKIN=10M,CLKOUT=40M,使能spi外围模块*/

*SCSR1=0x0021;

/*使能spi引脚*/

*MCRB=0xFE3F;

voidspi_ini()//spi初始化子程序

/*复位spi*/

*SPICCR&

=0x007F;

/*CLOCKPOLARITY=0,16位数据格式*/

*SPICCR=0x000F;

/*禁止溢出中断,CLOCKPHASE=1,禁用spi中断,主模式,使能数据发送*/

*SPICTL=0x000E;

/*清除接收溢出中断标志*/

*SPISTS=0x0080;

/*波特率为40/4=10M*/

*SPIBRR=0x0000;

/*启动spi工作*/

*SPICCR|=0x0080;

voiddelay()//延时子程序

5;

voidmain()

inti,p,data;

spi_ini();

for(i=0;

i<

128;

/*产生128个点的正弦信号波形*/

data=(int)(127.5*(1+sin(2*pi*i/127)));

curve[i]=data;

/*将数据打包成“从移位寄存器到DACA数据寄存器*/

curve1[i]=data&

0x00ff|0x0100;

/*将数据打包成“从移位寄存器到DACB数据寄存器

且用数据寄存器同时更新A和B两个DA的值*/

curve2[i]=data&

0x00ff|0x2500;

for(p=0;

p<

p++)

/*将数据写入AD7303*/

*SPITXBUF=curve1[p];

*SPITXBUF=curve2[p];

程序9

//********************全局变量定义与初始化*********************/

unsignedintp;

charsend_buff=0x00;

charrece_buff=0x00;

unsignedintdata_buff=0x0000;

/*CLKIN=10M,CLKOUT=40M,使能evb外围模块*/

*SCSR1=0x0008;

/*将iope1,2,3配置为输出脚,且iope3初始值为0,iope1,iope2初始值为1*/

*PEDATDIR=0x0E06;

/*将iopf6配置为输出脚,且iopf6初始值为1*/

*PFDATDIR=0x4040;

voidpdpintb_ini()//int1中断初始化子程序

/*清除所有中断标志*/

/*使能中断1*/

/*清除pdpintb中断标志*/

*EVBIFRA=0xFFFF;

/*使能pdpintb中断*/

*EVBIMRA=0x0001;

voiddelay_8us()//延时8us子程序

unsignedinti;

2;

i++);

voiddelay_50us()//延时50us子程序

unsignedintj;

for(j=0;

j<

25;

j++);

voiddelay_25ms()//延时25ms子程序

12500;

voiddelay_long

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1