基于单片机的直流电机转速测量与显示(DOC) 下载本文

微机控制原理课程设计

2.3.2 总程序控制流程图

开始 测速发电机输出电压 启动0809进行本次转换 延时等待AD转换结束 读取 AD转换结果

将电压结果转换成转速

调用显示程序显示转速

图2-6 总程序控制流程图

2.3.3 ADC0809工作流程图及程序

启动ADC0809对模拟量输入信号进行转换,通过判断EOC(P2.0引脚)来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则把OE置位,读入数据。

流程图如下:

13 / 18

微机控制原理课程设计

开始 初始化

该部分程序如下:

sbit EOC=P2^0; sbit OE=P2^1; sbit ST=p2^2; sbit CLK=P3^7;

uchar dat;

void main()

启动AD转换 AD转换是否结束 N (P2.0=1?) Y OE置位,读取数据 结束 图2-7 ADC0809工作流程图 14 / 18

微机控制原理课程设计

{ ST=0; ST=1; ST=0; while(EOC==0); OE=1; dat=P0; OE=0; TMOD=0X11; TH1=(65536-2)/256; TL1=(65536-2)%6; TR1=1; ET1=1; EA=1; }

void timer1(void) interrupt 3 { CLK~=CLK; }

2.3.4 显示部分工作流程图及程序

四位数码管的显示采用中断法控制,动态扫描,定义变量jishu轮流扫描四位,在disp_busf数组中存放转速的四位,在定时/计数器T0中,每次进入中断时显示以为,当时间足够小时能达到人眼的停留效应,完成动态显示。

工作流程图如下:

15 / 18

微机控制原理课程设计

开始

初始化定时器T0

该部分程序如下:

开启中断 获取转速数据 进入中断,显示 jishu位 jishu++ Jishu>=4? N Y jishu=0 2-8 显示部分工作流程图 16 / 18