单片机--界面

这篇博客介绍了如何在单片机项目中使用myhead.h进行头文件声明和引脚定义,以及在all.c文件中实现LCD屏幕显示功能,展示了在单片机应用中的界面设计过程。

单片机的最后一更哟,myhead.h中包括需要用到的头文件的申明以及单片机引脚的申明,all.c在lcd屏幕上显示选项

myhead.h

#ifndef _MYHEAD_H
#define _MYHEAD_H

#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include "./delay/delay.h"
#include "./lcd/lcd.h"
#include "./led/led.h"
#include "./key/key.h"
#include "./digital_light/digital.h"
#include "./uart/uart.h"
#include "./iic/iic.h"
#include "./AD_DA/AD_DA.h"
#include "./ds1302/ds1302.h"
#include "./ds18b20/ds18b20.h"
#include "./key8/key8.h"

//key
#define KEYPORT P0

//led
#define LEDPORT P3

//lcd
#define LCDPORT P0
#define LCD_WRITE_DATA 1
#define LCD_WRITE_COM 0

sbit RS = P2^4;
sbit RW = P2^5;
sbit E = P2^6;

//digital
#define PORT P1

sbit bit_select = P2^0;
sbit seg_select = P2^1;
extern xdata unsigned char ch[10];
extern xdata unsigned char flag;
extern xdata unsigned char segdata[10];
extern xdata unsigned char bitdata[8];
extern xdata unsigned char tempdata[8];

extern xdata unsigned char hour;
extern xdata unsigned char min;
extern xdata unsigned char sec;

extern xdata unsigned char alarm_hour;
extern xdata unsigned char alarm_min;
extern xdata unsigned char alarm_sec;
//iic

#define SUCC 0
#define ERR 1

sbit SCL = P2^2;
sbit SDA = P2^3;
sbit beep = P3^7;
extern bit ack;//定义位变量1,0

//ds1302

sbit RST = P2^0;
sbit SCK = P2^1;
sbit IO = P2^2;

//ds18b20
sbit ds = P2^7;

//key8

sbit start = P3^2;
sbit rst = P3^3;
#endif

all.c

#include "myhead.h"


void main()
{
      unsigned char keynum;

        lcd_init();
      lcd_inter1();

        while(1)
        {
              keynum = key_scan();

        switch(keynum)
              {
                      case 0x7e:
                        {
                            lcd_test();
                              led();

                              delay_s(2);
                              lcd_init();
                              lcd_inter1();

                              break;
                        }
                        case 0xbe:
                        {
                              lcd_test();
                              digital();

                              delay_s(2);
                              lcd_init();
                              lcd_inter1();

                              break;
                        }
                        case 0xde:
                        {
                              lcd_test();
                              uart();

                              delay_s(2);
                              lcd_init();
                              lcd_inter1();

                              break;
                        }
                        case 0xee:
                        {
                              lcd_test();
                              delay_ms(100);

                              iic();

                              delay_s(2);
                              lcd_init();
                              lcd_inter1();
                              break;
                        }
                        case 0x7d:
                        {
                              lcd_test();

                              key8();

                              delay_s(2);
                              lcd_init();
                              lcd_inter2();
                              break;
                        }
                        case 0xbd:
                        {
                              lcd_test();
                              delay_s(2);

                              DA();

                              delay_s(2);
                              lcd_init();
                              lcd_inter2();

                              break;
                        }
                        case 0xdd:
                        {
                              lcd_test();
                              delay_s(3);

                              ds1302();

                              delay_s(2);
                              lcd_init();
                              lcd_inter2();

                              break;
                        }
                        case 0xed:
                        {
                            lcd_test();
                              delay_s(2);

                              ds18b20();

                              delay_s(2);
                              lcd_init();
                              lcd_inter2();

                              break;
                        }
                        case 0xb7:
                        {
                              lcd_init();
                              lcd_inter1();
                              break;
                        }
                        case 0xd7:
                        {
                              lcd_init();
                lcd_inter2();
                              break;
                        }
                }
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值