虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

LCD抗干扰段码屏驱动

  • 多路电压采集系统

    多路电压采集系统一、实验目的1.熟悉可编程芯片ADC0809,8253的工作过程,掌握它们的编程方法。2.加深对所学知识的理解并学会应用所学的知识,达到在应用中掌握知识的目的。 二、实验内容与要求1.基本要求通过一个A/D转换器循环采样4路模拟电压,每隔一定时间去采样一次,一次按顺序采样4路信号。A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示包括电压路数和数据值。2. 提高要求 (1) 可以实现循环采集和选择采集2种方式。(2)在CRT上绘制电压变化曲线。 三、实验报告要求 1.设计目的和内容 2.总体设计 3.硬件设计:原理图(接线图)及简要说明 4.软件设计框图及程序清单5.设计结果和体会(包括遇到的问题及解决的方法) 四、总体设计设计思路如下:1) 4路模拟电压信号通过4个电位器提供0-5V的电压信号。2) 选择ADC0809芯片作为A/D转换器,4路输入信号分别接到ADC0809的IN0—IN4通道,每隔一定的时间采样一次,采完一路采集下一路,4路电压循环采集。3) 利用3个LED数码管显示数据,1个数码管用来显示输入电压路数,3个数码管用来显示电压采样值。4) 延时由8253定时/计数器来实现。 五、硬件电路设计根据设计思路,硬件主要利用了微机实验平台上的ADC0809模数转换器、8253定时/计数器以及LED显示输出等模块。电路原理图如下:1.基本接口实验板部分1) 电位计模块,4个电位计输出4路1-5V的电压信号。2) ADC0809模数转换器,将4路电压信号接到IN0-IN3,ADD_A、ADD_B、ADD_C分别接A0、A1、A2,CS_AD接CS0时,4个采样通道对应的地址分别为280H—283H。3) 延时模块,8253和8255组成延时电路。8255的PA0接到8253的OUT0,程序中查询计数是否结束。硬件电路图如图1所示。 图1 基本实验板上的电路图实验板上的LED显示部分实验板上主要用到了LED数码管显示电路,插孔CS1用于数码管段码的输出选通,插孔CS2用于数码管位选信号的输出选通。电路图如图2所示。

    标签: 多路 电压采集

    上传时间: 2013-11-06

    上传用户:sunchao524

  • 基于单片机的红外门进控制系统设计与制作(含源程序和原理图)

    基于单片机的红外门进控制系统设计与制作:我们所做的创新实验项目“基于单片机的红外门控系统”已基本完成,现将其工作原理简要说明。该系统主要分为两大部分:一是红外传感器部分。二是单片机计数显示控制部分。基本电路图如下:其中红外传感器部分我们采用红外对管实现,红外对管平行放置,平常处于接收状态,经比较器输出低电平,当有人经过时,红外线被挡住,接收管接收不到红外线,经比较器输出高电平。这样,当有人经过时便会产生一个电平的跳变。单片机控制部分主要是通过外部两个中断判断是否有人经过,如果有人经过,由于电平跳变的产生,进入中断服务程序,这里我们采用了两对红外传感器接到两个外部中断口,中断0作为入口,实现加1操作,中断1作为出口,实现减1操作。另外,我们通过P0口控制室内灯的亮暗,当寄存器计数值为0时,熄灯,不为0时,灯亮。显示部分,采用两位数码管动态显示,如有必要,可以很方便的扩展为四位计数。精益求精!在实验过程中,我们走了非常多的弯路,做出来的东西根本不是自己想要的,我们本想做成室内只有一个门的进出计数,原理已清楚,即在门的两边放置两对红外对管,进出时,挡住两对对管的顺序不同,因此,可判断是进入还是出去,从而实现加减计数,编程时,可分别在两个中断服务程序的入口置标志位,根据标志位判断进出,详细内容在程序部分。理论如此,但在实际过程中,还是发现实现不了上述功能,我们初步判定认为是程序掌握得不够好,相信随着自己对单片机了解的深入,应该会做出更好的 (因为我们是临时学的单片机),程序的具体内容如下: $MOD52    ORG   0000H         LJMP  MAIN         ORG   0003H         LJMP  0100H         ORG   0013H         LJMP  0150H         ORG   0050HMAIN:    CLR   A         MOV   30H , A           ;初始化缓存区         MOV   31H , A         MOV   32H , A         MOV   33H , A         MOV   R6  , A         MOV   R7  , A  SETB  EA  SETB  EX0  SETB  EX1  SETB  IT0  SETB  IT1  SETB  PX1NEXT1:   ACALL HEXTOBCDD        ;调用数制转换子程序         ACALL DISPLAY          ;调用显示子程序         LJMP  NEXT1          ORG   0100H  ;中断0服务程序 LCALL  DELY mov 70h,#2 djnz 70h,next JBC  F0,NEXT         SETB F0        CLR P0.0 LCALL  DELY0 SETB   P0.0                  MOV   A , R7   ADD   A , #1   MOV   R7, A   MOV   A , R6         ADDC  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT:  RETI  ORG   0150H    ;中断1服务程序 LCALL  DELY mov 70h,#2 djnz 70h,next2 JBC  F0,NEXT2 SETB  F0 CLR P0.0 LCALL  DELY0 SETB   P0.0    CLR C                     MOV   A , R7   SUBB   A , #1  MOV   R7, A  MOV   A , R6   SUBB  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT2  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT2:  RETI   ORG   0200HHEXTOBCDD:MOV  A , R6               ;由十六进制转化为十进制         PUSH  ACC         MOV   A , R7         PUSH  ACC  MOV   A , R2         PUSH  ACC  CLR   A         MOV   R3 , A  MOV   R4 , A  MOV   R5 , A  MOV   R2 , #10HHB3:     MOV   A  , R7              ;将十六进制中最高位移入进位位中         RLC   A  MOV   R7 , A  MOV   A  , R6  RLC   A  MOV   R6 , A  MOV   A  , R5              ;每位数加上本身相当于将这个数乘以2  ADDC  A  , R5  DA    A  MOV   R5 , A  MOV   A  , R4  ADDC  A  , R4  DA    A                   ;十进制调整  MOV   R4 , A  MOV   A  , R3  ADDC  A  , R3  DJNZ  R2 , HB3  POP   ACC   MOV   R2 , A  POP   ACC   MOV   R7 , A  POP   ACC  MOV   R6 , A  RET  ORG   0250HDISPLAY:  MOV   R0 , #30H         MOV   A  , R5  ANL   A  , #0FH  MOV   @R0 , A  MOV   A  , R5  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   A  , R4  ANL   A , #0FH  INC   R0  MOV   @R0 , A  MOV   A   , R4  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   R0 , #30H  MOV   R2 , #11111110BAGAIN:   MOV   A  , R2         MOV   P2 , A         MOV   A  , @R0  MOV   DPTR , #TAB  MOVC  A  , @A+DPTR  MOV   P1 , A  ACALL DELAY  INC   R0  MOV   A  , R2  RL    A  MOV   R2 , A  JB    ACC.4  , AGAIN   RETTAB:     DB    03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH   ;七段码表DELY:    MOV   R1,#80D1:        MOV    R2,#100             DJNZ   R2,$ DJNZ    R1,D1 RET DELAY:   MOV   TMOD , #01H           ;延时子程序         MOV   TL0  , #0FEH         MOV   TH0  , #0FEH  SETB  TR0WAIT:    JNB   TF0  , WAIT         CLR   TF0  CLR   TR0  RETDELY0:   MOV  R1,  #200D3:  MOV  R2,#250          DJNZ  R2,$  DJNZ  R1,D3    RET          END       该系统实际应用广泛。可用在生产线上产品数量统计、公交车智能计数问候(需添加语音芯片)、超市内人数统计等公共场合。另外,添加串口通信部分便可实现与PC数据交换的功能。   由于,实验简化了,剩下不少零件和资金,所以我们又做了两项其他的实验。

    标签: 单片机 红外 控制系统设计 原理图

    上传时间: 2013-12-22

    上传用户:tangsiyun

  • DS1302+AT89S52+LED时钟程序(C语言源代码+

    #include<reg51.h>/*************************ds1302与at89s52引脚连接********************/sbit T_RST=P3^5; sbit T_CLK=P3^6;                 sbit T_IO=P3^7;                                sbit ACC0=ACC^0;sbit ACC7=ACC^7;unsigned char seg[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};         //0~~9段码 /******************DS1302:写入操作(上升沿)*********************/ void write_byte(unsigned char da){   unsigned char i;   ACC=da;   for(i=8;i>0;i--)   {       T_IO=ACC0;   T_CLK=0;           T_CLK=1;      ACC=ACC>>1;   }} /******************DS1302:读取操作(下降沿)*****************/unsigned char read_byte(void){   unsigned char i;   for(i=0;i<8;i++)   {      ACC=ACC>>1;   T_CLK = 1;   T_CLK = 0;      ACC7 = T_IO;   }   return(ACC); } /******************DS1302:写入数据(先送地址,再写数据)***************************/ void write_1302(unsigned char addr,unsigned char da){   T_RST=0;    //停止工作   T_CLK=0;                                    T_RST=1;   //重新工作   write_byte(addr);    //写入地址      write_byte(da);   T_RST=0;   T_CLK=1;}

    标签: 1302 LED DS AT

    上传时间: 2014-01-17

    上传用户:sglccwk

  • 数码管段码查询工具

    很好用的小工具啊

    标签: 数码管 查询

    上传时间: 2013-10-30

    上传用户:fredguo

  • 数码管段码查询工具

    很好用的小工具啊

    标签: 数码管 查询

    上传时间: 2013-10-23

    上传用户:924484786

  • 设炉温变化范围为0-100º C

    设炉温变化范围为0-100º C,相应电压为0-5V。要求:每隔30秒钟采集一次温度数据,并将采集的数据送七段段码显示(十进制)。采集到的炉温在40º C-60º C是正常,其他为不正常。不正常时要求通过蜂鸣器报警,报警时间为2秒,用查询方式读取数据。

    标签: ordm 100 炉温 变化

    上传时间: 2014-01-01

    上传用户:lingzhichao

  • KEIL C51程序

    KEIL C51程序,实现89S52同LCD:RT12864-1R驱动。

    标签: KEIL C51 程序

    上传时间: 2013-12-25

    上传用户:zhyiroy

  • 显示数据在70H-75H单元内

    显示数据在70H-75H单元内,用六位LED共阳数码管显示,P1口输出段码数据,P3口作 扫描控制,每个LED数码管亮1MS时间再逐位循环。 定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁用, P3.7为调整按钮,P1口 为字符输出口,采用共阳显示管。

    标签: 70 75 显示数据

    上传时间: 2013-12-03

    上传用户:kr770906

  • 本程序是一个在嵌入式下通过键盘控制复制文件

    本程序是一个在嵌入式下通过键盘控制复制文件,并在嵌lcd(microwindows)屏上显示的演示小程序。

    标签: 程序 嵌入式 键盘控制

    上传时间: 2015-08-03

    上传用户:bjgaofei

  • verilog实现电子时钟模块

    verilog实现电子时钟模块,输入60Hz时钟信号和复位,输出时分秒,共6位,每位7段输出用于驱动

    标签: verilog 电子时钟 模块

    上传时间: 2015-08-13

    上传用户:王楚楚