郑州轻工业学院 自动化08-1
当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行A/D转换,此期间START应保持低电平。在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,为高电平时,表示转换结束。OE为低电平时,D0~D7为高阻状态,OE为高电平时,允许转换结果输出。
2.1.6、AT89C51与ADC0809的接口
ADC0809时钟信号由单片机的ALE信号2分频获得。ADC0809通道地址由P0 口的低3位直接与ADC0809的A、B、C相连。转换后的N个数据顺序存放到起始地址为data_addr数据存区。 5.3、ADC0809的时钟频率500KHZ的产生:
从单片机 ALE引脚产生的1MHZ频率,通过D触发器后变为500KHZ,然后 输入到0809中的CLK引脚中。而D触发器在74LS74芯片可以找到。如图所示:
2.1.7、时钟源设计
时钟源电路如图(6)所示,X1和X2之间跨接晶体振荡器和微调电容,构成一个稳定的自激振荡器,这就是单片机的时钟电
11
郑州轻工业学院 自动化08-1
路,时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
2.1.9、复位电路设计
复位电路如图原理图所示,复位电路具有上电自动复位作用。
1.1.10显示电路 P2.2R182K+5V P2.1R192KP2.0R202K99VCCafeabgdcdbcefdpgdpabfeVCCagdcdbcefdpgdpabfe9VCCagdcdbcefdpgdp12345678123456788*470ΩP1.0P1.1P1.2P1.3P1.4P1.5P1.6 12
12345678郑州轻工业学院 自动化08-1
第三章 系统主要程序的设计
整个系统软件设计分为两个部分,即主程序和中断服务程序。系统采用模块化编程,将各部分功能分别实现,主要的功能子程序有:数据采集、部分中断子程序。 序流程图如图所示
主程序初始化v 中断开发v 定时器初始化v 堆栈设置v 启动AD转换v 启动定时器原地踏步
主程序
外中断INT0中断服务程序v 读取A/D0809的转换结果v 启动下一轮转换v 将转换成三位BCD码返回
13
郑州轻工业学院 自动化08-1
外中断INT0中断服务程序
定时器T0中断服务程序定时器重置初值计数器=0? 送个位数? 个位数码管点亮? 计数器加1? 送十位数? 十位数码管点亮? 计数器加1计数器=1计数器=2? 送百位数? 百位数码管点亮? 计数器加1返回 定时器T0中断服务程序程序如下
? 三位显示12ms循环一次,每位显示4ms。 ? 计算定时器初值
? 晶振频率6MH,每机器周期2us,采用定时器方式一,初值
为X=65535-4000/2=63536=F830H
? 30H,31H,32H,作为显示缓冲单元分别存放个 十 百 位的
BCD码。.
? 程序中的第二表格电压-心电数表TAB2是假数据并且不全。
ORG 000H AJMP MAIN
14
郑州轻工业学院 自动化08-1
ORG 000BH AJMP DISP ORG 0013H AJMP AD
MAIN: SETB IT0 ;设置INT0为边沿触发方式 MOV IE, #83H ;INT0 T0中断开放 MOV IP, #02H ;T0高级优先
DISP: DISP1: DISP2: DISP3:
MOV TMOD, #01H ;设置初值 MOV TL0, #30H MOV TH0, #0F8H
SETB TR0 ;启动T0
MOV 30H, #0 ;3个显示缓冲区 MOV 31H, #0 MOV 32H, #0
MOV A, #0 ; 启动一次A/D转换 MOV R0, #0 MOV @R0, A
SJMP $ ;原地踏步 ;T0中断显示 ;显示缓冲百32H 十31H 个30H MOV TL0, #30H ;T0设初值 MOV TH0, #0F8H
MOV P2, #0FFH ;显示全关 CJMP R2, #00H,DISP1 ;显示个位 MOV P1, 30H CLR P2.0 AJMP DISP3
CJNE R2,#01H, DISP2 ;显示十位 MOV P1,31H CLR P2.1 AJMP DISP3
MOV P1,32H ;显示百位 CLR P2.2 MOV R2,#00H
RETI ;INT0中断,A/D转换结果
15