ad0832 LCD1602显示
单片机源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #include<stdio.h>
- #include"define.h"
- #include"delay.h"
- #include"LCD1602.h"
- #include"ADC0832.h"
- void main(){
- LCD_init();
- P1=0;
- CP_RL2=0;EXEN2=0; //T2初始化,控制灰尘led
- led=1;
- TH2=RCAP2H=(65536-500)/256;
- TL2=RCAP2L=(65536-500)%256;
- ET2=1;
- EA=1;
- TR2=1;
- TMOD=0x21; //T0初始化,控制电机 t1初始话timer 1, mode 2, 8-bit 重装
- ET0=1;
- dir=0;
- cp=1;
- SCON = 0x50; // 串口初始化,SCON: 模式 1, 8-bit UART, 使能接收
- TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
- TR1 = 1; // TR1: timer 1 打开
- ES = 1;
-
-
- while(1){
-
- ADC_change(0);
- LCD_buffer[0][8]=dat/100+'0';
- LCD_buffer[0][10]=dat/10%10+'0';
- LCD_buffer[0][11]=dat%10+'0';
- LCD_display(0x00,LCD_buffer[0]);
- delay(10);
- if(lanya=='0'){
- TR0=0;
- spk=0;
- }
-
- else if(lanya=='3'){
- if(dat>200){
- speed=1000;
- TH0=(65536-speed)/256;
- TL0=(65536-speed)%256;
- TR0=1;
- LCD_display(0x40,LCD_buffer[2]);
- spk=1;
- }
- else if(dat<=200){
- TR0=0;
- LCD_display(0x40,LCD_buffer[1]);
- spk=0;
- }
- }
- else if(lanya=='1'){
- speed=500;
- TR0=1;
- spk=0;
- }
- else if(lanya=='2'){
- speed=50;
- TR0=1;
- spk=0;
- }
- }
- }
- void timer2() interrupt 5
- { TF2=0;
- led=~led;
-
- }
- void timer0() interrupt 1
- {
- TH0=(65536-speed)/256;
- TL0=(65536-speed)%256;
- cp=~cp;
-
- }
- void UART_SER (void) interrupt 4 //串行中断服务程序
- {
- unsigned char Temp; //定义临时变量
-
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
用ADC0832设计的两路电压表.rar
(94.73 KB, 下载次数: 123)
|