基于51单片机的电压采集与显示系统的设计与开发内容摘要:
D3OEC L O C KV c cV1G N DD1IN 2IN 1IN 0A D D AA D D BA D D CA L ED7D6D5D4D0V2D2A D C 0 8 0 9DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS AT89C52 单片机 AT89C51 是 51 系列的一个型号,它是 ATMEL 公司生产的。 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS51指令系统,片内置通用 8位中央处理器和 Flash存储单元, AT89C51 有 40 个引脚, 32个外部双向输入 /输出( I/O)端口,同时内含 2个外中断口, 3 个 16 位可编程定时计数器 ,2 个全双工串行通信口, 2 个读写口线,AT89C51可以按照常规方法进行编程 ,但不可以在线编程。 AT89C51的主要功能特性有:兼容 MCS51指令系统 , 8k可反复擦写 (1000次) Flash ROM ,32个双向 I/O口 , 256x8bit内部 RAM, 3 个 16位可编程定时 /计数器中断 , 时钟频率 024MHz,2 个串行中断 ,可编程 UART 串行通道 , 2 个外部中断源 ,共 8 个中断源 ,2 个读写中断口线 ,3 级加密位 ,低功耗空闲和掉电模式 ,软件设置睡眠和唤醒功能。 而在本次设计中只需要用到最基本的 4 个输入输出 I/O 口功能。 通过汇编或是 C 语言编程,可以用指令对单片机的各输入输出进行控制,还可以进行各种基本运算。 八段数码管和 74LS47 八段数码管比七段数码管多路一位小数点,实际是 8 个 LED 摆放排列而成。 当特定的某几个数码管点亮时,就显示了特定的数字形状。 有共阳极和共阴极之分,共阳极是指 8 个输入端 a、 b、 c、 d、 e、 f、 g、 dp 要输入低电平才会是相应 LED 点亮,共阴极则须输入高电平。 本次 设计用的是共阳极的数码管。 图 2 是其结构原理图。 图 2 八段数码管结构 DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 74LS47 译码芯片 74LS47 是常用的 BCD 对七段显示器译码器 /驱动器,可对共阳极七段数码管进行译码功能。 引脚图如图 3 所示例。 如当输入 DCBA=0010 则输出 abcdefg=0010010。 故使显示器显示 2。 其四位 BCD 码与对应的译码及数码管显示关系为: DCBA=0000,abcdefg=1000000,数码管显示 0; DCBA=0001,abcdefg=1111001,数码管显示 1; DCBA=0010,abcdefg=0100100,数码管显示 2; DCBA=0011,abcdefg=0110000,数码管显示 3; DCBA=0100,abcdefg=0011001,数码管显示 4; DCBA=0101,abcdefg=0010010,数码管显示 5; DCBA=0110,abcdefg=0000011,数码管显示 6; DCBA=0111,abcdefg=1111000,数码管显示 7; DCBA=1000,abcdefg=0000000,数码管显示 8; DCBA=1001,abcdefg=0011000,数码管显示 9; B I / R B O4R B I5LT3A7B1D6C2a13b12c11d10e9f15g14 图 3 74LS47 芯片 系统整体工作原理 现对整体系统的硬件和软件工作原理进行分析。 . 1 硬件原理 将各单元电路整合后可以得到完整的系统硬件电路 , 原理:由单片机的 P3 口的几根口线控制 ADC0809 的几个控制端,当 P3 口的几根口线依次输出地址选择、地址所存信号、开始( START)信号等的有效电平后, A/D 被启动,从相应的模拟输入通道采入模拟量,并经行转换,转换完成后, AD 的标志端口 EOC 有低电平变为高电平,单片机查询到这一状态后,DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 由 对 AD 的 OE 置有效,使转换后的八位二进制数从锁存器中输出到 单片机的 P0 口。 单片机内部对这一二进制数进行计算等必要处理后从 P1 口输出到数码管显示部分显示出来。 然后单片机启动 A/D 进行下一路通道的转换,这就是通过改变 P0P3 输出到 A/D 的地址办到的。 地址不同,选择通道不同。 其它的控制方法不变。 本次设计只用到两路,故转换会在两路之间循环进行。 其中待测信号源由两个滑阻分压形成,改变滑线端位置,则分压改变,输入到 A/D 的模拟电压值变化。 滑阻的分压在 010V 变化,对此,可改变 A/D 的基准电压 Vref( +), Vref( )接地不变。 Vref( +)接 5V 时,则可对 05V 的电 压进行准确的转换。 若超出,则转换后的值一直是 8 位 1,即 11111111。 不能正确量化。 此时,将 Vref( +)接 10V,则可对 010V 的模拟电压进行正确的量化转换。 由以上可知图中的双刀双掷开关实际上起到了电压表量程选择的作用。 一路开关选择 5V 或 10V 电压,另一路选择高低电平将与量程对应的信号传到单片机的 口, 达到对电压值的显示。 . 2 软件原理分析 对上面的硬件部分,按照软件流程框图进行软件设计。 用 C 语言进行程序的编写。 程序如下: include define uc unsigned char define ui unsigned int sbit L_OE=P3^4。 //对各控制引脚进行定义; sbit L_EOC=P3^5。 sbit L_ALE=P3^6。 sbit L_START=P3^7。 sbit L2=P2^0。 void delay(ui x) //延时子程序,延时时间由实参传值确定; {uc i。 while(x) {for(i=0。 i10。 i++) {。 } } } //主程序; void main() { void display5in0(uc zhi)。 //各个子程序的声明,延时程序在前则不必; void warning(uc zhi)。 void display10in0(uc zhi)。 void display5in1(uc zhi)。 void display10in1(uc zhi)。 void AD_IN0()。 DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS void AD_IN1()。 uc aa,bb。 while(1) //设置大循环,模数转换不停进行; { AD_IN0()。 //调用通道 0 转换子程序; aa=P0。 //将转换后的数字量给变量 aa; if(aa==0xff) //判断是否超出量程; {warning(aa)。 } //超出则调用警告子程序; else if(L2==0)display5in0(aa)。 /*判断量程,若是 5V,则调用通道 0 的5V 显示子程序; */ else if(L2==1)display10in0(aa)。 //否则调用通道 0的 10V显示子程序; AD_IN1()。 //通道 1 转换子程序; bb=P0。 //同上,将转换后的数字量传 给变量 bb; if(bb==0xff) //判断是否超出量程; {warning(bb)。 } //超出则警告; else if(L2==0)display5in1(bb)。 /*判断量程,为 5V 则调用通道 1 的 5V显示程序; */ else if(L2==1)display10in1(bb)。 //否则调用通道。基于51单片机的电压采集与显示系统的设计与开发
相关推荐
状态来驱动蜂鸣器,从而控制蜂鸣器只在整点时发出响声。 具体的连接如图 25 所示: 图 25 整点报时电路硬件图 整点报时模块工作原理 由于蜂鸣器的工作电流一般比较大, 所以 单片机的 I/O 口是无法直接驱动的, 故本文设计 利用 一个 PNP 三极管来放大电路 来驱动 蜂鸣器。 三极管 Q1 起开关作 用,其基极的低电平使三极管饱和导通,使蜂鸣器发出响声;而基极高电平则使三极管截止
PTR MOV TL1,A ;音律表查询值低八位赋值 ACALL DLAY AJMP KEYPRO ;跳转回键盘扫描程序 TINT1: JB , FLUTE_ON ;判断是否 跳到长笛音色档 JB , PIANO_ON ;判断是否调到钢琴音色档 JB , TRUMPET_ON ;判断是否调到小号音色档 JB , VIOLIN_ON ;判断是否跳到小提琴音色档 JB , PICCOLO_ON
工作方式是硬件设计必不可少的步骤。 AT89C51 单片机的定时器 /计数器的结构如下乳 31 所示 【 6】。 图 31 89C51 定时器 /计数器结构图 定时器 /计数器 T0 由特殊功能寄存器 TH0、 TL0 构成,定时器 /计数器 T1 由特殊功能寄存器 T TL1 构成。 特设功能寄存器 TMOD 用于选择定时器 /计数器 T0、 T1得工作模式和工作方式。 特殊功能寄存器
相邻的引脚上。 这样,不仅降低了穿过整个芯片的 电流,另外还在印制电路板上容易布置去耦电容,从而降低系统的噪声。 现在为了适应各种应用的需要,很多单片机的输出能力都有了很大提高, Motorola 公司的单片机 I/O 口的灌拉电流可达 8mA 以上,而 Microchip 公司的单片机可达 25mA。 其它公司: AMD, Fujitsu,NEC , Infineon, Hitachi,
码与数据反码之间的关系不满足相反的关系.则本次遥控接收有误.数据应丢重庆邮电大学 自动化学院 综合设计报告 1 弃。 在同一个遥控器上.所有按键的数据码均不相同。 在 图 2 中,数据码为十六进制的 0CH,数据反码为十六进制的 0F3H(注意低位在前 ).两者之和应为 0FFH。 复位电路 这种复位电路的工作原理是:单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,
C52 为控制芯片, P0 为行控制, P2 为列控制。 所有的行( X0X7)都通过排阻接到单片机的 P0 口上,所有的列( Y00Y0 Y10Y1Y20Y2 Y30Y37)接到不同的 74LS138(U2, U3, U4, U5)上, U2 控制 U6, U3 控制 U7, U4 控制 U8,U5 控制 U9。 74LS138 直接由单片机的 P2 口进行驱动,这样就形成了一个完整的电路。