资源描述:
《模数数模转换实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、微机与接口技术实验51.采用查表法,用DAC0809产生100Hz正弦输出模拟信号,用示波器检查波形。(8253T0产生定时脉冲,8259INTO向CPU中断)。分析:定时器对4Mhz信号4000分频,产生lOOOhz的中断,在中断服务程序里查表法进行数模转换(表中预先存有10个数),输出的模拟值符合正弦规律,且频率正好lOOhZo源程序:ICW1equ00010011b;单片8259,上升沿中断,要写ICW4ICW2equ00100000b;中断号为20HICW4equ00000001b;工作在8086/88方式OCW1equ11111110b
2、;只响应INTO中断CS8259Aequ09000h;8259地址CS8259Bequ09001hCONTROLequ08003hCOUNTOequ08000hdac0832equOaOOOhdatasegmentnumdb6,52,12&203,249,249,203,12&52,6;十个点进行正弦逼近dataendscodesegment;8259的初始化子程序assumecs:code,ds:datainit8259procnearmovdx,CS8259Amoval,ICW1outdx,almovdx,CS8259Bmoval,ICW2o
3、utdx,almoval,ICW4outdx,almoval,OCW1outdx,alretinit8259endpinit8253procnear;8253的初始化子程序moval,34h;通道0,方式2movdx,CONTROLoutdx,almovax,4000;4000分频movdx,COUNTOoutdx,almoval,ahoutdx,alretinit8253endpintOprocnearpushaxpushdxcmpsi,10到第一个重新来;0号中断的服务程序;如果指针过了一个周期的数,就要返回jnzgoonmovsi,offs
4、etnumgoon:moval,[si]incal;将数字输入数模转换,成为模拟量输movdx,dac0832出incsimovdx,CS8259Amoval,20houtdx,alpopdxpopaxiretoutdx,al;中断服务程序结束指令intOendpstart:clicallinit8259callinit8253;将中断服务程序的入口地址写入movax,0movds,axmovbx,4*ICW2movax,codeshlax,4addax,offsetIntOmov[bx],axmovax,0incbxincbxmov[bx],a
5、xmovax,datamovds,axmovsi,offsetnumstiwait:jmpwaitcodeendsendstart;中断号;x16;中断入口地址(段地址为0);代码段地址为0;等待中断2.设计ADC0832模数采样程序,对电位器输出电压采样,并用发光二极管显示采样值。要求每秒采样并输出显示一次。(8253T0产生定时脉冲,8259INTO向CPU中断)。分析:计吋器每秒产生上升沿中断,输入到8259A,中断服务程序里对电位器的采样电压进行模数转换,再通过简单输出接口74LS273输出到二极管。源程序:ICW1equ00010011
6、b;单片8259,上升沿中断,要写ICW4ICW2equ00100000b;中断号为20HICW4equ00000001b;工作在8086/88方式OCW1equ11111110b;只响应INTO中断CS8259Aequ09000h;8259地址CONTROLequ08003hCOUNTOequ08000hCOUNT1equ0800lhadc0809equOaOOOhcs273equObOOOhcodesegmentassumecs:codeinit8259procnear;8259的初始化movdx,CS8259Amoval,ICW1outdx
7、,almovdx,CS8259Bmoval,ICW2outdx,almoval,ICW4outdx,almoval,OCW1outdx,alretinit8259endpinit8253procnear;8253的初始化moval,34h;通道0,方式2movdx,CONTROLoutdx,almovax,4000;4000分频movdx,COUNTOoutdx,almoval,ahoutdx,almoval,74hmovdx,controloutdx,al;通道1,方式2movax,1000movdx,count1outdx,al;1000分频
8、,最终输出lhz的脉冲moval,ahoutdx,alretinit8253endpintOprocnear;中断服务程序pushaxp