基于51单片机的电压采集与显示系统的研究与开发内容摘要:
918171615IN 3IN 4IN 5IN 6IN 7S T A R TE O CD3OEC 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 9【精品文档】世界上,成功的有两种人,一种人是傻子,一种人是疯子。 傻子是会吃亏的人,疯子是会行动的人。 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 八段数码管结构 【精品文档】世界上,成功的有两种人,一种人是傻子,一种人是疯子。 傻子是会吃亏的人,疯子是会行动的人。 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 有低电平变为高电平,单片机查询到这一状态后,【精品文档】世界上,成功的有两种人,一种人是傻子,一种人是疯子。 傻子是会吃亏的人,疯子是会行动的人。 由 对 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()。 【精品文档】世界上,成功的有两种人,一种人是傻子,一种人是疯子。 傻子是会吃亏的人,疯子是会行动的人。 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。基于51单片机的电压采集与显示系统的研究与开发
相关推荐
LL S 2S O UN D E RG ND. 开机滚动显示界面 临界温度设置界面 传感器异常警告界面 D7D6D5D4D3D2D1D0ENRWRSV C CG ND D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3L C D 1L M 0 1 6 LD7D6D5D4D3D2D1D0ENRWRSV C CG ND
算机的显示器和液晶电视等。 电子密码锁中需要显示的信息比较多,为了能直观的看到结果,并且为了设计显的美观,使用总线和排阻进行简化连接方式,本设计采用液晶显示屏 LCD 进行显示,具体连接方式如图 所示: 主电路 控制电路即 单片机 电路 , 主要由 MCS51 单片机组成 , 单片机运行系统程序 , 结合外部输入来控制显示电路 , 显示相应运算结果。 结合键盘电路、显示电路,主图 6 键盘电路图
定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 图 ( a)数码管引脚图 ( b)共阳极内部结构图 ( c)共阴极内部结构图 本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的 a、 b、 c、 d、 e、 f、 g、 h 引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示 0~ 9 的编码见表。 表 共阴极数码显示管字型代码
片机原理及接口技术 .北京 .北京航空航天大学出版社 ,2020 【 7】饶庆和 .89C51 单片机实用技术 .北京 .人民邮电出版社 ,2020 【 8】清华大学电子学教研组 .闫石 .数字电路基础 .高等教育出版社 ,2020 【 9】李华 .MCS51 系列单片机使用接口技术 .北京航空航天大学出版社 ,1993 【 10】杨欣 .王玉凤 .51 单片机应用实例详解 清华大学出版社
如大写的英文字母 “ A” 的代码是 01000001B( 41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母 “ A”。 LCD1602 液晶模块内部的控制器共有 11 条控制指令。 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志 位是不是 为低电平 ,是低电平则 表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址
间的上午下午进行调整, 2 键为时间的分钟设置。 当时钟时间与设置时间一致时,驱动电路动作进行打铃,每次打铃 5秒。 电源 显示电路 STC89C52 CPU 键盘电路 驱动电路 电铃 3 元件的参数及控制器 STC89C52 STC89C52 是一种高性能,低功耗的 8 位 CMOS 微处理芯片,市场应用最多,主要性特点有: 128B 内部 RAM 数据存储器, 21 个专用寄存器; 4KB