微机原理课程设计电压采集系统_第1页
微机原理课程设计电压采集系统_第2页
微机原理课程设计电压采集系统_第3页
微机原理课程设计电压采集系统_第4页
微机原理课程设计电压采集系统_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、扬州大学扬州大学信息工程学院课程设计报告 课程名称 微机原理及应用课程设计 设计题目 电压采集系统 学生姓名 班 级 计科0902 学 号 091202223 指导老师 李 云 成 绩 2012年6月 21 日 目录一、 课程任务- 2二、 总设计方案- 2三、 部分电路设计及 功能解说- 2四、 硬件接线图- 3 五、 软件设计流程图- 4 1、 系统初始化程序 42、 a/d转换子程序. 43、 显示子程序跟bcd码子程序 54、 报警子程序. 7六、 程序段功能汇总- 71、 a/d转换子程序程序段. 72、 bcd转换子程序程序段 83、 显示子程序程序段. 84、 报警子程序程序段.

2、 9七、 实验结果及分析- 9八、 课程设计体会和总结- 9九、 程序清单- 10一、 课程设计的任务设计一个电压采集系统: 采集五次电压取其平均值,并在数码管上显示十进制数。 当电压值超过45v时,喇叭发声报警。 二、总体设计方案 通过一个a/d转换器循环采样1路模拟电压,采样5次信号,然后通过计算取得平均值,平均值放在average中。a/d转换器芯片adc0809将采样到的模拟信号转换为数字信号,转换完成后,cpu读取数据转换结果,并将结果送入外设即led显示,显示5个电压数据的平均值。设计详细思路如下:1) 1路模拟电压信号通过电位器提供0-6v的电压信号。2) 选择adc0809芯片

3、作为a/d转换器,电压输入输入信号接到adc0809的in0通道,采样5次, 5次电压信号循环采集。3) 利用3个led数码管显示数据,显示精确到小数点后两位。 4) 延时由8254定时/计数器来实现。5) 实验仪器使用微型计算机开发系统 td-pite 。三、部分电路设计及功能解说 led显示单元的接线: a/d转换单元: 8255 连接 led adc0809 连接 880386及输入电压 pa0 - a d0d7-xd0xd7 pa1 -b a、b、c-gnd pa2-c in0-adj(05v) pa3-d wr-iow# pa4-e rd-ior# pa5-f cs-ioy1 pa6

4、-g clk-clk pa7-dp 喇叭报警器: 串行单元的接线: 8254 连接 80386、adc0809 8255 连接 80386 d0d7-xd0xd7 d0d7-xd0xd7 a0a1-xa1xa2 pb0pb5-x1x6 cs-ioy2 cs-ioy3 clk0-clk a0a1-xa1xa3 wr-wr , rd-rd wr-iow# gate0-+5v rd-ior# out0-spk 四、硬件接线图五、软件设计流程图 根据功能需求,系统主程序主要包括初始化程序、a/d转换子程序、显示子程、bcd转换子程序和报警子程序。主程序流程图见图1所示。开始调用显示子程序调用bcd转换

5、程序调用警报子程序调用a/d转换子程序初始化 图1 主程序流程图下面分别介绍各个子程序。1系统初始化程序系统开始运行后,初始化程序将采集数据存放单元清0,将led显示数据存放单元清0。2a/d转换子程序a/d转换子程序用来控制对adc0809对电压数据的采样和模拟输入电压的转换,并将对应的数值存放到相应的数据段bcd字节单元,供cpu取出显示到led单元。数据的读取方式可以采用延时等待、中断读取和查询读取。根据电路采用中断读取的方式,adc0809的转换控制如下:选择通道并启动转换等待中断 读取转换结果。a/d转换子程序的程序流程图如图2所示。开始启动转换调用延时程序取电压值 n判断是否取了5

6、次的值 y取5次平均值结束图2 a/d转换子程序流程图3显示子程序跟bcd码转换子程序显示子程序采用动态扫描法实现三位数码管的数值显示。测量所得的a/d转换数据放在数据段bcd字节存储单元,测量数据在显示时需要转换为十进制bcd码放在table1表中。由于adc0809是将模拟信号转换为数字信号,所以要将数字信号转换为对应的电压值,公式为vdata/51。转换时取一位整数和两位小数,再将数据转换为显示码就可以输出显示了。三位数据显示程序流程图如图3所示。显示子程序中调用了bcd码转换子程序,bcd码转换程序是将数据转换为bcd码值。显示子程序是将数据一次性输出,主要是将对应的段码和位码输出,注

7、意小数点的处理。延时子程序利用8254计时,用8255来查询计时是否完成。bcd码转换子程序流程图见图4所示。开始开始bcd的地址送给si给位码赋值0fbhtable地址送bxbcd的地址送给si把ax除51判断显示的数据是否为第一位数查表结果送si y除后的余数送ax段码小数点处理nsi+1前进输出位码判断是否除了3次输出段码 n调用延时子程序结束判断3为数据是否显示完 yy 图4 bcd转换子程序流图 n取下一个数位码又移一位结束图3 三位数据显示程序流程图 4报警子程序报警子程序是接受8254的信号来发出警告的。当采样的平均值超过4.5v时,8254将会发一路信号给spk喇叭,喇叭发出声

8、响警告。报警子程序流程图如图5所示。 开始 读入5个数的平均值判断平均值是否大于4.5 n y 初始化8254为方式3调用延时程序结束 图5 报警子程序流程图六、程序段功能汇总1、a/d转换子程序程序段:get:mov bx, 0mov cx, 5 loop1:mov dx, 0640h;启动ad采样 out dx, alcall dally;延时等待 in al, dx;采样 xor ah, ah add bx, ax;累加和 loop loop1 mov ax, bx mov dl, 5;取平均值 div dlmov average, al;送入变量单元内2、bcd转换子程序程序段:chb

9、cd:lea bx, table1lea si, bcdmov cx, 3mov al, averagexor ah, ah loop2:mov dl, 42div dl;平均值除以51xlat mov si, al;求bcd码送入对应bcd单元inc si mov al, ah xor ah, ah mov dl, 10 mul dl loop loop2;精确到小数点后两位3、显示子程序程序段:prt:mov dx, 06c6h;初始化8255 mov al, 80h out dx, al mov cx, 100hloop3:lea si, bcd mov ah, 0fbhloop4:mo

10、v al, ah mov dx, 06c2h out dx, al mov al, si cmp ah, 0fbh jnz next1 or al, 80hnext1:mov dx, 06c0h out dx, al call dallyror ah, 1inc sicmp ah, 07fhjnz loop4loop loop3ret4、报警子程序程序段:jug:push cxpush axmov al, averagecmp al, 0bdhjb next2mov dx, 0686hmov al, 16hout dx, almov dx, 0680hmov al, 0ffhout dx, a

11、lcall dallymov al, 0out dx, alnext2:pop axpop cxret七、实验结果及分析 实验是通过转动adj单元上的旋钮调节输入的电压的。当输入的电压平均值在4.5v以下时喇叭没有警告的声音发出。当转动旋钮使电压超过4.5v时,喇叭会有短促的报警的声音发出。短促的声音跟送入的频率有关。实验成功。八、课程设计体会和总结 此次的微机原理课程设计,在学期基础实验的基础上提高了我们对于微机原理的实际应用要求,在不断的深入理解理论知识的基础上,我们这组同学通过不断的修改和调试最终成功的运行了我们的程序,达到了老师对于此次课程设计的要求。通过这一个星期的课程设计,我对于微

12、机原理这门课程的掌握程度以及实际的应用能力都有了一定程度上的提高。组员之间的共同合作,不同的分工,我们各司其职,默契配合,共同解决面临的难题,共同分享成功的喜悦。在实践的检验中,我们学到的知识得到了有效的巩固,动手的能力,独立思考的能力,团队合作的能力都得到了有效的锻炼。九、程序清单sstacksegment stackdw 64 dup(?)sstackendspublic bcddatasegmenttable1db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhbcddb 0,0,0average db0dataendscodesegmentassume c

13、s:code, ds:datastart:mov ax, datamov ds, axcall getcall jug;判断是否大于4.5call chbcdcall prt;调用显示子程序jmp startchbcd:lea bx, table1lea si, bcdmov cx, 3mov al, averagexor ah, ahloop2:mov dl, 42div dl;平均值除以51xlat mov si, al;求bcd码送入对应bcd单元inc simov al, ahxor ah, ahmov dl, 10mul dlloop loop2;精确到小数点后两位get:mov b

14、x, 0mov cx, 5loop1:mov dx, 0640h;启动ad采样out dx, alcall dally;延时等待in al, dx;采样xor ah, ahadd bx, ax;累加和loop loop1mov ax, bxmov dl, 5;取平均值div dlmov average, al;送入变量单元内prt:mov dx, 06c6h;初始化8255mov al, 80hout dx, almov cx, 100hloop3:lea si, bcdmov ah, 0fbhloop4:mov al, ahmov dx, 06c2hout dx, almov al, sicmp ah, 0fbhjnz next1or al, 80hnext1:mov dx, 06c0hout dx, alcall dallyror ah, 1inc sicmp ah, 07fhjnz loop4loop loop3retdally:push cx;延时程序push axmov cx, 10ha7:mov ax, 20ha8:dec a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论