|
500黑币
- /*
- *****************************************
- 名称:LCD1602显示字符
- 描述:单片机通过并口连接LCD,第一行滚动显示字符,第二行显示串口接收到的字符
- *****************************************
- */
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar FlagT = 0; //滚动显示时间标志位
- uchar Flag3s = 0; //3秒时间标示
- uchar AdcDat0 = 0; //三个通到读到的电压值
- uchar AdcDat1 = 0;
- uchar AdcDat2 = 0;
- #include"LCD1602.h" //包含LCD1602头文件
- #include"ADC0809.h"
- /* 主函数:初始化LCD,显示字符 */
- void main()
- {
- LcdInit();
-
- LcdShowStr(0, 0, "DL:");
-
- TMOD = 0x11;
- TH0 = 0xFC;
- TL0 = 0x18;
- ET0 = 1;
- TR0 = 1;
-
- TH1=0xFF;
- TL1=0xFA;
- ET1 = 1;
- TR1 = 1;
-
- EA = 1; //打开总中断
-
- while(1)
- {
- if(FlagT != 0)
- {
- FlagT = 0;
- Adc0809GetAdcDatCH0ToCH2(); //获取ADC三路AD值
- LcdShowAdcDat(); //显示获取到的值
- }
- }
- }
- //定时器0中断
- void TIMER0() interrupt 1
- {
- static uint cnt = 0;
- static uint cnt3s = 0;
- TH0 = 0xFC;
- TL0 = 0x18;
-
- cnt++;
- if(cnt > 100)
- {
- cnt = 0;
- FlagT = 1;
- }
-
- cnt3s++;
- if(cnt3s > 3000)
- {
- cnt3s = 0;
- if(Flag3s != 0)
- Flag3s = 0;
- else
- Flag3s = 1;
- }
- }
- //定时器T1中断,给ADC0809提供时钟输入
- void TIMER1() interrupt 3
- {
- TH1=0xFF;
- TL1=0xFA;
- AdcCLK = !AdcCLK; //取反
- }
复制代码
|
|