#include <reg52.h> //調用單片機頭文件
#define uchar unsigned char //無符號字符型 宏定義 變量范圍0~255
#define uint unsigned int //無符號整型 宏定義 變量范圍0~65535
#include <intrins.h>
#define RdCommand 0x01 //定義ISP的操作命令
#define PrgCommand 0x02
#define EraseCommand 0x03
#define Error 1
#define Ok 0
#define WaitTime 0x01 //定義CPU的等待時間
sfr ISP_DATA=0xe2; //Flash數據寄存器地址(E2h)
sfr ISP_ADDRH=0xe3; //Flash高字節寄存器地址(E3h)
sfr ISP_ADDRL=0xe4; //Flash低字節寄存器地址(E4h)
sfr ISP_CMD=0xe5; //Flash命令模式寄存器地址(E5h)
sfr ISP_TRIG=0xe6; //Flash命令觸發寄存器地址(E6h)
sfr ISP_CONTR=0xe7; //ISP/IAP控制寄存器地址(E2h)
sbit dula=P2^6;//U1鎖存器的鎖存端 000001111111 顯示函數11111100000
sbit wela=P2^7;//申明U2鎖存器的鎖存
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar num;//定時器要用到
void ISP_IAP_enable(void); //打開ISP,IAP功能
void ISP_IAP_disable(void); //關閉ISP,IAP功能
void ISPgoon(void); //公用的觸發代碼
uchar byte_read(unsigned int byte_addr);//字節讀
void SectorErase(unsigned int sector_addr);//扇區擦除
void byte_write(unsigned int byte_addr, unsigned char original_data);//字節寫
void display(); //000033333 顯示函數3333300000
//數碼管段選定義
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
0x60,0x25,0x39,0x26,0x31,0x71,0xff}; //斷碼
//數碼管位選定義
uchar code smg_we[] = {0xef,0xdf,0xbf,0x7f};
uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};
uchar smg_i = 3; //顯示數碼管的個位數
sbit dq = P2^4; //18b20 IO口的定義
sbit pwm = P2^3; //蜂鳴器IO口定義
其中,
//數碼管段選定義
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
0x60,0x25,0x39,0x26,0x31,0x71,0xff}; //斷碼
是什么意思啊? 0X28顯示的并不是0吧? 這段話是什么意思呢?斷碼是什么?
|