附录2 硬件电路仿真图 附录2 硬件电路仿真图
31
华北理工大学继续教育学院 附录3 软件程序
#include
uchar unsigned char
#define uint unsigned int sfr ISP_DATA=0xe2; sfr ISP_ADDRH=0xe3; sfr ISP_ADDRL=0xe4; sfr ISP_CMD=0xe5; sfr ISP_TRIG=0xe6; sfr ISP_CONTR=0xe7; sbit C_sound=P3^4; void delay(uint z); sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit P33=P3^3; sbit RS=P3^7; sbit RW=P3^6; sbit E=P3^5; sbit busy=P2^7; unsigned int i,qsls;
unsigned long sj,totallc,pjsd,qs2,ssji,sji,sd2,mxsd,mxsd2,tc; uchar
*s,qs,as,bs,cs,gw,sw,bw,qw,ww,sww,ssj,MODE,tr1,tr2,number[3]={0}; void EEPROM_ERASE(uchar addr_h) {
ISP_ADDRH=addr_h;
附录3 软件程序 ISP_ADDRL=0x00; EA=0;
ISP_CONTR=0x81; ISP_CMD=0x03; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_();_nop_(); ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00; EA=1; }
void EEPROM_LXRD(uchar addr_h,uchar addr_l,uchar num,uchar *str) { uchar i; EA=0;
for(i=0;i ISP_ADDRL=addr_l+i; ISP_ADDRH=addr_h; ISP_CONTR=0x81; ISP_CMD=0x01; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_();_nop_(); str[i]=ISP_DATA; } ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00; EA=1; 33 华北理工大学继续教育学院 } void EEPROM_LXWR(uchar addr_h,uchar addr_l,uchar num,uchar *point) { uchar i; EA=0; for(i=0;i ISP_DATA=point[i]; ISP_ADDRL=addr_l+i; ISP_ADDRH=addr_h; ISP_CONTR=0x81; ISP_CMD=0x02; ISP_TRIG=0x46; ISP_TRIG=0xb9; _nop_();_nop_(); } ISP_CONTR=0x00; ISP_CMD=0x00; ISP_TRIG=0x00; EA=1; } void wait() {P2=0xff; RW=1; RS=0; do{E=0;E=1;}while(busy==1); } void dispone(dat) {P2=dat; RW=0; RS=1; E=0; E=1; wait(); 附录3 软件程序 } void wrcom(com) {P2=com; RW=0; RS=0; E=0; E=1; wait(); } void init_LCD() {wrcom(0x01); wrcom(0x06); wrcom(0x38); wrcom(0x0c); } void dispmore(line,row,uchar dat[],i) {uchar com; s=dat; if(line==1) {com=0x80+row-1; wrcom(com); while((i--)!=0&&com<=0x8f) {dispone(*s); com++; s++; } } else {com=0xc0+row-1; wrcom(com); while((i--)!=0&&com<=0xcf) {dispone(*s); 35