微机控制原理课程设计
图2-3 ADC0809与单片机接线图
2.2.3 数码管
选用四位共阳数码管对转速值进行显示。数码管的位选端接P3口的低四位,段选端接P1口。此外,段选端应连接330Ω的上拉电阻,本处使用排阻,位选端应用PNP型三极管作为数码管的驱动。 2.2.4 电源模块
11 / 18
微机控制原理课程设计
图2-4 电源模块电路图
2.2.4 综合接线图
将上述模块综合,衔接后,得到如下系统接线图:
图2-5 系统接线图
2.3 软件设计
2.3.1 程序设计思路说明
针对与转速对应的电压值的测量,严格按照ADC0809要求的时序图设定相关控制端口的状态,读入转换后的数据,数学运算处理成转速后用数码管显示,数码管采用动态扫描法显示,在中断中完成动态扫描。
12 / 18
微机控制原理课程设计
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