📄 fun.h
字号:
//fun.h
#include "intrins.h"
//定义端口寄存器
sfr P0M0 = 0X93;
sfr P0M1 = 0X94;
sfr P1M0 = 0X91;
sfr P1M1 = 0X92;
sfr P2M0 = 0X95;
sfr P2M1 = 0X96;
sfr P3M0 = 0Xb1;
sfr P3M1 = 0Xb2;
//定义EEPROM有关的寄存器
sfr IAP_DATA = 0xe2;
sfr IAP_ADDRH = 0xe3;
sfr IAP_ADDRL = 0xe4;
sfr IAP_CMD = 0xe5;
sfr IAP_TRIG = 0xe6;
sfr IAP_CONTR = 0xe7;
#define fosc 11059200L
#define T0_50ms (65536 - (fosc/12/50000)) //50ms定时参数
sbit en1 = P2^6;
sbit en2 = P2^7;
unsigned char count_in_T0; //计数值
unsigned char display_num; //显示值
/*
共阴极数码管0 - 9的字形码
“0” 3FH “5” 6DH
“1” 06H “6” 7DH
“2” 5BH “7” 07H
“3” 4FH “8” 7FH
“4” 66H “9” 6FH
*/
const unsigned char seg7[10] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void init_port()
{
P0M1 = 0xff;
P0M0 = 0xff;
P2M1 |= 0xc0;
P2M0 |= 0xc0;
P3M1 = 0X04; //p3.2输入
P3M0 = 0x00;
}
void init_timer()
{
TMOD |= 0X01; //定时器0模式1,16bit
TH0 = T0_50ms >> 8; //TH0 = T0_50ms / 256
TL0 = T0_50ms; //TL0 = T0_50ms % 256
ET0 = 1; //允许T0中断
}
//定义延时函数
void ms_delay(unsigned int t)
{
unsigned int i;
for (t; t > 0; t--) //外层循环t次
for (i = 110;i > 0; i--) //内层循环110次
;
}
void display(unsigned char c2, unsigned char c1)
{
P0 = seg7[c2]; //送入十位的段码
en2 = 0; //显示DS2
ms_delay(10);
en2 = 1; //关闭DS2
P0 = seg7[c1]; //送入个位的段码
en1 = 0; //显示DS1
ms_delay(10);
en1 = 1; //关闭DS1
}
unsigned char IAP_read (unsigned char addrh, unsigned char addrl)
{
unsigned char edata;
IAP_ADDRH = addrh; //送地址
IAP_ADDRL = addrl;
IAP_CMD = 0x01; //读指令
IAP_CONTR = 0x81; //允许操作,设置等待时间为01,20MHz以内
IAP_TRIG = 0x46; //触发指令
IAP_TRIG = 0xb9;
_nop_();
edata = IAP_DATA; //取数据
return edata;
}
void IAP_erase (unsigned char addrh, unsigned char addrl)
{
IAP_ADDRH = addrh; //送地址
IAP_ADDRL = addrl;
IAP_CMD = 0x03; //扇区擦除指令
IAP_CONTR = 0x81; //允许操作,设置等待时间为01,20MHz以内
IAP_TRIG = 0x46; //触发指令
IAP_TRIG = 0xb9;
_nop_();
}
void IAP_write (unsigned char addrh, unsigned char addrl, unsigned char edata)
{
IAP_ADDRH = addrh; //送地址
IAP_ADDRL = addrl;
IAP_DATA = edata; //送数据
IAP_CMD = 0x02; //写指令
IAP_CONTR = 0x81; //允许操作,设置等待时间为01,20MHz以内
IAP_TRIG = 0x46; //触发指令
IAP_TRIG = 0xb9;
_nop_();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -