




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
接口与通讯实验报告 1、8253定时/计数器实验2、8255并行接口实验3、数字式时钟(电子钟)4、D/A(数/模)转换实验 5、A/D(模/数)转换实验 学生学院_计算机学院_专业班级_ _学 号 学生姓名_ _指导教师 区明明 2012 年 12 月 17 日计算机学院_学院计算机科学与技术 专业 班 学号_ _姓名_协作者_ 教师评定_实验题目_8253定时/计数器实验_一、实验目的与要求学习8253可编程定时/计数器定时方法。学习8253多级串联实现大时间常数的定时方法。学习8088/86控制8253可编程定时器的方法。二、实验内容用8253对标准脉冲信号进行计数,就可以实现定时功能。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。1.实验电路图:由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为1000和1000。将计数器1的输出接到计数器0输入。计数器0的输出接到LED0。1. 实验连线 连接孔1 连接孔2连接孔1 连接孔2连接孔1 连接孔2CS4 8253_CSVCC 8253_GATE0L0 8253_OUT08253_OUT1 8253_CLK0 VCC 8253_GATE11MHz 8253_CLK12. 实验原理8253既可作定时器又可做计数器:(1) 计数:GATE为高电平,输入脉冲对计数值进行减一计数(2) 定时:由CLK脉冲触发开始自动计数,到零时发计数结束定时信号3. 实验程序框图3、 实验程序,要求写注释。#define CONTROL 0xc003#define COUNT0 0xc000#define COUNT1 0xc001#define COUNT2 0xc002extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);void main() OUT(CONTROL, 0x36); /* 计数器0,16位,方式3,二进制 */ OUT(COUNT0, 10000 % 256); /* 计数器低字节 */ OUT(COUNT0, 10000 / 256); /* 计数器高字节 */ OUT(CONTROL, 0x76); /* 计数器1,16位,方式3,二进制 */ OUT(COUNT1, 100 ); /* 计数器低字节 */ OUT(COUNT1, 0); /* 计数器高字节 */ while (1) ;四思考题若改用方式2,并改变时间常数,如何编写程序?答:代码OUT(CONTROL, 0x36); 中的0x36改为0x35。代码OUT(CONTROL, 0x76); 中的0x76改为0x75。计算机学院_学院计算机科学与技术 专业 班 学号_ _姓名_协作者_ 教师评定_实验题目_8255并行接口实验_一、实验目的与要求1、了解8255芯片结构及编程方法。2、了解8255输入/输出实验方法。2、 实验内容利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。1. 实验电路8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。PA0-PA7(PA口)接LED0-LED7(LED),PB0-PB7(PB口)接K0-K7(开关量)。数据线、读/写控制、地址线、复位信号板上已接好。2.实验连线 连接孔1 连接孔2连接孔1 连接孔2连接孔1 连接孔2CS0 8255_CSL0 8255-PA0L1 8255-PA1L2 8255-PA2L3 8255-PA3L4 8255-PA4L5 8255-PA5L6 8255-PA6L7 8255-PA7K0 8255-PB0K1 8255-PB1K2 8255-PB2K3 8255-PB3K4 8255-PB4K5 8255-PB5K6 8255-PB6K7 8255-PB73.实验原理可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA,PC口输出,PB口输入。很多I/O实验都可以通过8255来实现。4.实验程序框图3、 实验程序,要求写注释。/* 方式0,PA,PC输出,PB输入 */#define mode 0x82/* Port A */#define PortA 0x8000/* Port B */#define PortB 0x8001/* Port C */#define PortC 0x8002/* 控制字地址 */#define CAddr 0x8003extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned char i,buf; void Delay(unsigned int CNT) while (CNT) CNT-;void main() while(1) OUT(CAddr, mode); /* 输出控制字 */ /* 实验1:PortA输出 */ buf = 0x80; for(i=0; i= 1; /* 移位 */ Delay(0x5000); /* 延时 */ ; /* 实验2: PortB 输入 PortA 输出 */ buf = IN(PortB); /* 读入PortB */ OUT(PortA, buf); /* 输出到PortA */ Delay(0x8000); 四试将B口与C口的功能对调(连线对调),如何编写程序?答:代码 buf = IN(PortB); 改为 buf = IN(PortC; 计算机学院_学院计算机科学与技术 专业 班 学号_ _姓名_协作者_ 教师评定_实验题目_数字式时钟(电子钟)_一、 实验目的与要求 进一步掌握定时器的使用和编程方法。进一步掌握中断处理程序的编程方法。进一步掌握数码显示电路的驱动方法。二、 实验内容利用CPU的定时器和实验仪上提供的数码显示电路,设计一个电子时钟。格式如下:XX XX XX 由左向右分别为:时、分、秒1. 实验电路2.实验连线连接孔1 连接孔2 连接孔1 连接孔1 CS4 - 8253_CSVCC - 8253_GATE11MHz - 8253_CLK1 CS0 - KEY/LED_CS CS5 - 8259CS 8253_OUT1 - 8259_INT03. 实验原理定时器每100us中断一次,在中断服务程序中,对中断次数进行计数,100us计数10000次就是1秒。然后再对秒计数得到分和小时值,并送入显示缓冲区。显示子程序模块可参照硬件实验十六和硬件实验十七。4. 实验程序框图主程序: 中断服务程序开始开始中断次数10000写8253控制字中断返回次数减一计数值为0结束调用显示缓冲区调用数码管扫描显示开中断调用8259初始化写8259中断向量表置定时器常数 三、实验程序,要求写注释。; 本实验利用8253做定时器,用定时器输出的脉冲控制8259产生中断; 在8259中断处理程序中,对时、分、秒进行计数,在等待中断的循; 环中用LED显示时间。; 8253用定时器/计数器1,8253片选接CS4,地址为0C000H。8253时钟; 源CLK1接分频电路的F/64输出。分频器的Fin接4MHz时钟。8253的; GATE1接VCC。; 8259中断INT0接8253的OUT1,片选接CS5,地址为0D000H。; 显示电路的KEY/LED CS 接CS0,地址为08000H。;CONTROL equ 0c003hCOUNT0 equ 0c000hCOUNT1 equ 0c001hCOUNT2 equ 0c002hmd8255 equ 82h ; 8255 工作方式PA8255 equ 8000h ; 8255 PA口输出地址CTL8255 equ 8003h ; 8255 控制口地址OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式OCW1 equ 11111110b ; 只响应INT0 中断CS8259A equ 0d000h ; 8259地址CS8259B equ 0d001hdata segmentCNT db 0LEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?)Hour db 0Minute db 0Second db 0LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hdata endscode segment assume cs:code, ds: dataDelay proc near push ax ; 延时子程序 push cx mov al, 0 mov cx,ax loop $ pop cx pop ax retDelay endpDisplayLED proc near mov bx, offset LEDBuf mov cl, 6 ; 共6个八段管 mov ah, 00100000b ; 从左边开始显示DLoop: mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 mov al, bx mov dx, OUTSEG out dx,al mov dx, OUTBIT mov al, ah out dx, al ; 显示一位八段管 push ax mov ah, 1 call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0 out dx,al ; 关所有八段管 retDisplayLED endpIEnter proc near push ax push dx inc Second mov al, Second cmp al, 60 jne Exit mov Second, 0 inc Minute mov al, Minute cmp al, 60 jne Exit mov Minute, 0 inc Hour mov al, Hour cmp al, 24 jne Exit mov Hour, 0Exit: mov dx, CS8259A mov al, 20h ; 中断服务程序结束指令 out dx, al pop dx pop ax iretIEnter endpIInit proc mov dx, CS8259A mov al, ICW1 out dx, al mov dx, CS8259B mov al, ICW2 out dx, al mov al, ICW4 out dx, al mov al, OCW1 out dx, al retIInit endpstart proc near mov ax, data mov ds, ax mov Hour, 0 mov Minute, 0 mov Second, 0 cli mov ax, 0 mov ds, ax mov al, 76h; 01110110B ; 计数器1,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 62500 mov dx, COUNT1 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 mov al, MD8255 mov dx, CTL8255 out dx, al mov bx, 4*ICW2 ; 中断号 mov ax, code shl ax, 4 ; x 16 add ax, offset IEnter ; 中断入口地址(段地址为0) mov bx, ax mov ax, 0 inc bx inc bx mov bx, ax ; 代码段地址为0 call IInit mov ax, data mov ds, ax mov CNT, 0 ; 计数值初始为0 mov al, CNT mov dx, PA8255 out dx, al stiLP: ; 等待中断,并计数。 mov al, Hour mov ah, 0 mov cl, 10 div cl mov ch, ah mov ah, 0 mov bx, offset LEDMAP add bx, ax mov al, bx mov LEDBuf, al mov bx, offset LEDMAP mov al, ch mov ah, 0 add bx, ax mov al, bx or al, 80h mov LEDBuf+1, al mov al, Minute mov ah, 0 mov cl, 10 div cl mov ch, ah mov ah, 0 mov bx, offset LEDMAP add bx, ax mov al, bx mov LEDBuf+2, al mov bx, offset LEDMAP mov al, ch mov ah, 0 add bx, ax mov al, bx or al, 80h mov LEDBuf+3, al mov al, Second mov ah, 0 mov cl, 10 div cl mov ch, ah mov ah, 0 mov bx, offset LEDMAP add bx, ax mov al, bx mov LEDBuf+4, al mov bx, offset LEDMAP mov al, ch mov ah, 0 add bx, ax mov al, bx or al, 80h mov LEDBuf+5, al call DisplayLED jmp LPstart endpcode ends end start四、8251以收发时钟有何特殊要求?答:五、实验体会这个实验是综合性实验,用到的知识点很多,查了不少资料才把它解决,通过这次实验,让我更加了解中断服务程序应该如何去构思,编写。所以说设置好中断向量表非常重要的。计算机学院 学院计算机科学与技术 专业 班 学号 姓名_协作者_ 教师评定_实验题目_D/A(数/模)转换实验_一、实验目的与要求1、了解D/A转换的基本原理。2、了解D/A转换芯片0832的性能及编程方法。3、了解单片机系统中扩展D/A转换的基本方法。二、实验内容利用DAC0832,编制程序产生锯齿波,三角波,正弦波。三种波轮流显示,用示波器观看。1. 实验电路:2. 实验连线连接孔1 连接孔2CS2 - DA_CS-5V-+5V - 逻辑波形L33. 实验原理产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分段来产生。要产生正弦波,较简单的方法是造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。D/A转换取值范围为一个周期,采样点越多,精度越高些。本例采用的采样点为256点/周期。8位D/A转换器的输入数据与输出电压的关系为 U(0-5V)=Uref/256N U(-5V+5V)=2Uref/256N-5V (这里 Uref为+5V)4,实验程序框图 三、实验程序,要求写注释。#define CS0832 0x8000extern unsigned char IN(unsigned int port);extern void OUT(unsigned int port, unsigned char v);unsigned char SinData128 = 0xC0, 0xC3, 0xC6, 0xC9, 0xCC, 0xCF, 0xD2, 0xD5, 0xD8, 0xDB, 0xDE, 0xE0, 0xE3, 0xE6, 0xE8, 0xEA, 0xED, 0xEF, 0xF1, 0xF3, 0xF5, 0xF6, 0xF8, 0xF9, 0xFB, 0xFC, 0xFD, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFD, 0xFC, 0xFB, 0xF9, 0xF8, 0xF6, 0xF5, 0xF3, 0xF1, 0xEF, 0xED, 0xEA, 0xE8, 0xE6, 0xE3, 0xE0, 0xDE, 0xDB, 0xD8, 0xD5, 0xD2, 0xCF, 0xCC, 0xC9, 0xC6, 0xC3, 0xC0, 0xBC, 0xB9, 0xB6, 0xB3, 0xB0, 0xAD, 0xAA, 0xA7, 0xA4, 0xA1, 0x9F, 0x9C, 0x99, 0x97, 0x95, 0x92, 0x90, 0x8E, 0x8C, 0x8A, 0x89, 0x87, 0x86, 0x84, 0x83, 0x82, 0x81, 0x81, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x82, 0x83, 0x84, 0x86, 0x87, 0x89, 0x8A, 0x8C, 0x8E, 0x90, 0x92, 0x95, 0x97, 0x99, 0x9C, 0x9F, 0xA1, 0xA4, 0xA7, 0xAA, 0xAD, 0xB0, 0xB3, 0xB6, 0xB9, 0xBC,;void Write0832(unsigned char b) OUT(CS0832,b);void Delay(unsigned char CNT) unsigned char I; for (I=0; I=CNT; I+) ;void ShowSin() unsigned char i; for (i=0; i=127; i+) Write0832(SinDatai); Delay(20); void ShowTri() unsigned char i; for (i=0x80; i!=255; i+) Write0832(i); Delay(20); void ShowSq() unsigned char i; Write0832(0x80); for (i=0; i10; i+) Delay(100); Write0832(0xff); for (i=0; i10; i+) Delay(100);void ShowTrime() unsigned char i; for (i=0x80; i!=255; i+) Write0832(i); Delay(20); for(i;i!=0x80;i-) Write0832(i); Delay(20); void main() unsigned char i; while (1) for (i=0; i100; i+ ) ShowSin(); for (i=0; i100; i+ ) ShowTri(); for (i=0; i100; i+ ) ShowSq (); for (i=0; i100; i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》预测试题及参考答案详解【达标题】
- 教师招聘之《小学教师招聘》考前冲刺练习试题及参考答案详解(巩固)
- 2025年教师资格综合素质试卷及答案
- 押题宝典演出经纪人之《演出经纪实务》通关考试题库及参考答案详解(培优)
- 教师招聘之《幼儿教师招聘》强化训练模考卷及答案详解(易错题)
- 教师招聘之《小学教师招聘》自我提分评估附答案详解(满分必刷)
- 教师招聘之《小学教师招聘》考前自测高频考点模拟试题附答案详解【夺分金卷】
- 演出经纪人之《演出经纪实务》考试历年机考真题集附答案详解(培优b卷)
- 2025山西焦煤集团所属煤炭子公司井下操作技能人员招聘模拟试卷及答案
- 安全知识系列培训课程课件
- 水产养殖项目可行性研究报告水产养殖立项报告
- 电信局实习协议书
- 新人教版四年级数学上册第九单元《总复习》核心素养教案
- TSG 07-2019 特种设备生产和充装单位 许可规则
- 电梯维保服务评价与改进措施
- 施工质量标准化手册之桥涵工程
- 医院培训课件:《环境卫生学监测的方法》
- 中队辅导员培训材料
- 2025年巷道掘砌工(技师)职业技能鉴定理论考试题库(含答案)
- 小学五爱教育
- 开学第一课消防安全知识课件
评论
0/150
提交评论