微机与单片机1137.docx

上传人:b****4 文档编号:6205576 上传时间:2023-05-09 格式:DOCX 页数:13 大小:135.33KB
下载 相关 举报
微机与单片机1137.docx_第1页
第1页 / 共13页
微机与单片机1137.docx_第2页
第2页 / 共13页
微机与单片机1137.docx_第3页
第3页 / 共13页
微机与单片机1137.docx_第4页
第4页 / 共13页
微机与单片机1137.docx_第5页
第5页 / 共13页
微机与单片机1137.docx_第6页
第6页 / 共13页
微机与单片机1137.docx_第7页
第7页 / 共13页
微机与单片机1137.docx_第8页
第8页 / 共13页
微机与单片机1137.docx_第9页
第9页 / 共13页
微机与单片机1137.docx_第10页
第10页 / 共13页
微机与单片机1137.docx_第11页
第11页 / 共13页
微机与单片机1137.docx_第12页
第12页 / 共13页
微机与单片机1137.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机与单片机1137.docx

《微机与单片机1137.docx》由会员分享,可在线阅读,更多相关《微机与单片机1137.docx(13页珍藏版)》请在冰点文库上搜索。

微机与单片机1137.docx

微机与单片机1137

微机与单片机设计

 

班级:

测控三班

姓名:

戴维

学号:

20121137

一、数据采集系统综合设计实验:

设计任务:

1.采用定时/计数器8253产生1秒钟的定时脉冲,并作为中断控制器8259的中断请求信号。

2.CPU响应8259的中断请求后,启动ADC0809对实验仪上的电位器引入的模拟电压进行A/D转换。

3.变换后的结果送8279显示两位十六进制数,同时经并行接口8255的PB口送8位发光二极管显示二进制数。

最终的结果:

当调节电位器旋钮时,数码管和8位发光二极管会同时显示与模拟输入电压相应的数字量值。

(1)8253的原理图:

 

8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。

每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。

每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。

每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。

输出锁存器的值是通过程序设置的。

输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。

顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。

(2)8259:

8259芯片采用的是最新的CMOS图像传感器APS技术(Active-Pixel-Sensor,主动像素传感器),使图像品质得到了大幅提升。

与上一代PPS技术(Passive-PixelStructure,被动像素结构)的产品比,有很大的提升。

研发团队对该芯片投入了大量的时间研发优化,调整色彩还原度,使颜色极为逼真艳丽。

优化了清晰度彩色清晰度达到700电视线,黑白清晰度超过700电视电。

保证清晰度的前提下优化了低照度,夜视噪点小,亮度高效果好;采用特殊设计,保证了产品的热稳定性,在业内处于领先地位。

设计1程序:

#include"conio.h"

#defineM8254_A0x6c0

#defineM8254_B0x6c2

#defineM8254_C0x6c4

#defineM8254_CON0x6c6

#defineRdata(port)inportb(port)

#defineWdata(port,x)outportb(port,x)

#defineStart(outportb(0x640,0x00))//启动AD

#defineRead(inportb(0x640))

typedefunsignedintuint;

typedefunsignedcharuchar;//读AD采样结果

voidinterruptmir7(void);

voiddelay(uintcount)

{

uinti;

for(i=0;i

}

//显示多个字符

voiddispm(uchar*src,ucharlen)

{

uchari;

for(i=0;i

{

_AL=*src;

_asm{

movAH,01h

int10h

}

src++;

}

}

//显示单个字符

voiddisps(ucharval)

{

_AL=val;

_asm{

movah,01h

int10h

}

}

//Hex转换为ASC码,转换低4位

ucharHex2AscL(ucharval)

{

//uchartemp;

val&=0x0f;

if(val>9)

val+=0x37;

else

val+=0x30;

returnval;

}

//Hex转换为ASC码,转换高4位

ucharHex2AscH(ucharval)

{

//uchartemp;

val=(val&0xf0)>>4;

if(val>9)

val+=0x37;

else

val+=0x30;

returnval;

}

staticucharflag[]="DAC0809IN0:

";

staticucharkg[]="";

voidmain(void)

{

_asm{

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETmir7//取中断入口地址

MOVSI,003CH//中断矢量地址

MOV[SI],AX//填IRQ7的偏移矢量

MOVAX,CS//段地址

MOVSI,003EH

MOV[SI],AX//填IRQ7的段地址矢量

CLI

POPDS

}

//初始化主片8259

Wdata(0x20,0x11);//ICW1

Wdata(0x21,0x08);//ICW2

Wdata(0x21,0x04);//ICW3

Wdata(0x21,0x01);//ICW4

Wdata(0x21,0x6f);//OCW1

//初始化8254

Wdata(M8254_CON,0x36);

Wdata(M8254_A,0xe8);

Wdata(M8254_A,0x03);

Wdata(M8254_CON,0x76);

Wdata(M8254_B,0xe8);

Wdata(M8254_B,0x03);

_asmsti

while

(1);

}

//中断处理程序

voidinterruptmir7(void)

{

ucharADval;

Start;//启动AD采样

delay(0x100);

ADval=Read;//读采样结果

dispm(flag,13);//显示:

DAC0809IN0:

disps(Hex2AscH(ADval));//显示高位

disps(Hex2AscL(ADval));//显示低位

dispm(kg,8);

delay(0xf000);

delay(0xf000);

_asmint10h

_AX=0x0120;

_asmint10h

Wdata(0x20,0x20);

}

二、简易波形发生器设计

设计任务:

1.利用8279为键盘、显示核心构成人机接口,设计一个简单的波形发生器,该波形发生器可以输出三角波、锯齿波、方波、矩形波、阶梯波和正弦波。

2.各种波形参数,例如:

波形类别、频率、振幅(小于5V)、矩形波的占空比、锯齿波正向斜坡持续时间、阶梯波每个阶梯的持续时间等均需要用户从键盘输入,规定如下:

A键:

设置波形类型,其中:

1键代表三角波,2键代表锯齿波,3键代表方波,4键代表矩形波,5键代表阶梯波,6键代表正弦波

B键:

设置波形频率,单位Hz

C键:

设置波形幅度,单位mV

D键:

设置矩形波的占空比(百分比的分子)

E键:

设置锯齿波正向斜坡持续时间与周期之比(百分比的分子)

F键:

设置阶梯波每个阶梯的持续时间与周期之比(百分比的分子)

G键:

确认参数更新,使系统按最新设置的参数产生波形

H键:

终止程序

3.利用用户输入的参数控制DAC0832输出符合要求的波形,变换后的波形接到示波器上显示出来

4.按键的检测程序要求消抖功能

5.程序设计可参考程序框图

设计要求:

(1)完成软件设计并在实验仪上调试通过

(2)完成设计报告,内容要求如下:

A、对实验仪进行简单介绍,并对8253、8279等芯片进行必要的介绍

B、软件设计的必要介绍及详细流程图

C、完整的软件程序及必要的注释

D、调试过程中的心得体会

E、其它必要的说明

三角波程序框图

设计2程序:

//延时

voiddelay(uintcount)

{

uinti;

for(i=0;i

}

//三角波

voidTriWave(void)

{

uchari=0;

while

(1)

{

wdata(0x600,i);

delay(5);

i++;

}

}

//锯齿

voidZigWave(void)

{

uchari=0;

for(i=0;i<255;i=i+10)

{

wdata(0x600,i);

delay(5);

}

for(i=255;i>0;i--)

{

wdata(0x600,i);

delay(5);

}

}

//方波

voidRecWave(void)

{

while

(1)

{

wdata(0x600,0x00);

delay(5);

wdata(0x600,0x7f);

delay(5);

}

}

//阶梯波

voidLadWave(void)

{

uchari;

for(i=0;i<255;i=i+10)

{

wdata(0x600,i);

delay(5);

}

}

//正弦波

voidSinWave(void)

{

uchari;

for(i=0;i<255;i++)

{

wdata(0x600,sin[i]);

delay(5);

}

}

 

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

当前位置:首页 > PPT模板 > 其它模板

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

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