PCB抄板单片机MODBUS开发板PCB原理图
- PCB抄板#include <reg52.h>
- PCB抄板#include <intrins.h>
- PCB抄板#define uchar unsigned char
- #define uint unsigned int
- sbit rs=P1^0;//寄存器选择
- sbit rw=P1^1;//读写信号线
- sbit lcden=P1^2;//led使能端
- sbit scl=P1^3;//时钟线
- sbit rst=P1^5;//复位线
- sbit io=P1^4;//数据口
- sbit key_set_time=P3^4;//设置时间键
- sbit key_add=P3^5;//加键
- sbit key_minus=P3^6;//减键
- sbit key_set_alarm=P3^7;//设置闹钟键
- sbit bee=P1^6;//蜂鸣器接口
- sbit dq=P1^7;//ds18b20测温
- uchar getTimebuf[7];//存放时间数据
- uchar time[]={" : : "};//时间格式字符串
- uchar date[]={"20 - - "};//日期格式字符串
- uchar weeklist[]={"SunMonTueWedThuFriSat"};//星期字符列表
- uchar week[]={" "};//星期格式字符串
- int count;//设定秒分时日月星期年的时候count的值分别为1235647
- int alarm;//是否进入闹钟设置界面 123分别代表开关 分 小时的设置
- int isOpen;//闹钟是否开启 默认不开启
- int fen,shi;//闹钟的分钟小时
- int isRing;//闹钟是否在响
- uchar isInit_1302;//是否初始化时钟完毕
- int num;
- int temperature;//温度
- int temp_flag;//温度正负标志
- void delay(uint x){
- int y;
- while(x--){
- for(y=100;y>0;y--);
- }
- }
- void write_1602com(uchar com){
- //1602写指令
- rs=0;
- lcden=0;
- P2=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void write_1602data(uchar dat){
- //1602写数据
- rs=1;
- lcden=0;
- P2=dat;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void init_1602(){
- //初始化1602液晶
- rw=0;
- lcden=0;
- write_1602com(0x38);//设置显示模式
- write_1602com(0x0c);//显示开关及光标是否显示和闪动
- write_1602com(0x06);//光标移动方向
- write_1602com(0x01);//清屏
- }
- void write_ds1302_byte(uchar temp){
- //ds1302写一个字节数据
- uchar i;
- for(i=0;i<8;i++){
- io=temp&0x01;//将数据放到IO口上
- scl=0;//scl为低时准备数据
- scl=1;//上升沿写入
- temp>>=1;
- }
- }
- void write_ds1302(uchar add,uchar dat){
- //向地址add写入数据dat
- rst=0;
- scl=0;
- rst=1;
- write_ds1302_byte(add);
- write_ds1302_byte(dat);
- scl=1;
- rst=0;
- }

芯片解密