计算机接口技术大作业

更新时间:2024-03-10 07:40:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算机接口技术大作业

课题名称:单路中断方式

A/D采集及8355LED显示驱动

班级:B13082041 姓名:高 炼 学号:132208100055

一. 技术要求及说明

1.一路检测,在LED上显示。

2.判断上下限并区别显示,下限LED全灭,上限LED全亮。

二.硬件原理及说明

1.8259芯片内部结构原理如图

2. 8255A内部结构

8255芯片编程模型

A口方式控制输出结构图

8255方式选择控制字

3.ADC0809内部结构图

ADC0809通道选择表如图

4. 74HC138译码器电路

74HC138的作用:就是选择芯片时用的,提供芯片的入口地址 74HC138集成译码器原理图

5.电位器作用

电位器的作用就是产生模拟信号,输送到模数转换器,然后模数转换器将模拟信号转变为数字信号。 6.LED灯

LED灯的亮灭由8255的PA口控制,8个PA口中输出高电平的PA口对应的LED灯就会发光。

三.总体流程及重要子程序流程设计与分析

码译L

四.收获与体会

模数转换,电位器产生模拟信号,产生的模拟信号就通过模数转换器转变成数字信号,产生的数字信号输入到8259中断控制器中,使8259在适当的时候产生中断,通过中断控制8255的工作方式,而译码器的作用就是提供每个芯片的入口地址。

五.程序清单

程序源代码:

8位电A

#define PA8255 0x8000 //8255 PA输出地址 #define CTL8255 0x8003 #define CS0809 0x9000 #define mode 0x82

#define ICW1 0x13 //单片8259, 上升沿中断, 要写ICW4

#define ICW2 0x20 // 中断号为20H #define ICW4 0x01 // 工作在8086/88 方式 #define OCW1 0xfe // 只响应INT0 中断 #define CS8259A 0xd000 #define CS8259B 0xd001

extern unsigned char IN(unsigned int port);

extern void OUT(unsigned int port, unsigned char v); extern void DISABLE(void); extern void ENABLE(void);

extern void SETINT(unsigned char NO, unsigned int *ENTER);

unsigned char buf;

unsigned char Read0809() {

unsigned char i;

OUT(CS0809, 0); //起动A/D for (i=0; i<0x80; i++) ; //延时>100us return(IN(CS0809)); //读入结果 }

interrupt IEnter() {

if(buf == 0x00) // {

OUT(PA8255, 0x00); }

else if(buf == 0xff) // {

OUT(PA8255, 0xff); } else {

OUT(PA8255, 0x3c); }

OUT(CS8259A, 0x20); //}

下限 上限 中断服务程序结束指令

void IInit() //初始化 {

OUT(CS8259A, ICW1); OUT(CS8259B, ICW2); OUT(CS8259B, ICW4); OUT(CS8259B, OCW1); }

void main() {

OUT(CTL8255,mode);

DISABLE(); // IInit();

SETINT(ICW2, &IEnter); // ENABLE(); //

while (1) {

buf = Read0809(); }

关闭中断响应 中断入口地址打开中断响应 }

本文来源:https://www.bwwdw.com/article/w6y8.html

Top