📄 yijia.lst
字号:
516 2 d=0;
517 2 c=0;
518 2 c=1;
519 2 }
520 1
521 1 /*启动擦除操作*/
522 1 s=0;
523 1 s=1;
524 1 /*等待擦除操作结束*/
525 1 while(q==0);
526 1 /* delay();
delay(); */
528 1 s=0;
529 1 }
530
531 /*写全部操作*/
532 void writeall93(U16 dx)
533 {
534 1 char i;
535 1 eraseall93();
536 1
537 1 /* 前导条件 */
538 1 c=0;
539 1 d=0;
540 1 s=0;
541 1 s=1;
542 1 d=1;
543 1 c=0;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 10
544 1 c=1;
545 1 /* 发送操作码 */
546 1 d=0;
547 1 c=0;
548 1 c=1;
549 1 c=0;
550 1 c=1;
551 1
552 1 c=0;
553 1 c=1;
554 1 /* 发送地址 */
555 1 for(i=4;i>=0;i--)
556 1 {
557 2 d=1;
558 2 c=0;
559 2 c=1;
560 2 }
561 1 /* 发送数据 */
562 1 for(i=15;i>=0;i--)
563 1 {
564 2 d=(dx>>i) & 1;
565 2 c=0;
566 2 c=1;
567 2 }
568 1 /*启动写操作*/
569 1 s=0;
570 1 s=1;
571 1 /*等待写操作结束*/
572 1 while(q==0);
573 1 /* delay();
delay(); */
575 1 s=0;
576 1 }
577
578 /*
void Ewen(void) {
unsigned char temp,InData;
CS=0;
SK=0;
CS=1;
InData=0x98; // 10011XXXX
for(temp=9;temp!=0;temp--) { // 9
DI=InData&0x80;
SK=1; SK=0;
InData<<=1;
}
CS=0;
}
// Disables all programming instructions.
void Ewds(void) {
unsigned char temp,InData;
CS=0;
SK=0;
CS=1;
InData=0x80; // 10000XXXX
for(temp=9;temp!=0;temp--) { // 9
DI=InData&0x80;
SK=1; SK=0;
InData<<=1;
}
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 11
CS=0;
}
// Reads data stored in memory, at specified address.
unsigned int Read(unsigned char address) {
unsigned char temp;
unsigned int result;
Ewen();
SK=0; DI=1; // 110 A5-A0
CS=0; CS=1;
SK=1; SK=0; // 1
address=address&0x3f|0x80;
for(temp=8;temp!=0;temp--) { // 8
DI=address&0x80;
SK=1; SK=0;
address<<=1;
}
DO=1;
for(temp=16;temp!=0;temp--) { // 16
SK=1;
result=(result<<1)|DO;
SK=0;
}
CS=0;
Ewds();
return(result);
}
// Writes memory location An - A0.
void Write(unsigned char address,unsigned int InData) {
unsigned char temp;
Ewen();
SK=0; DI=1; // 101 A5-A0
CS=0; CS=1;
SK=1; SK=0; // 1
address=address&0x3f|0x40;
for(temp=8;temp!=0;temp--) { // 8
DI=address&0x80;
SK=1; SK=0;
address<<=1;
}
for(temp=16;temp!=0;temp--) { // 16
DI=InData&0x8000;
SK=1; SK=0;
InData<<=1;
}
CS=0; DO=1;
CS=1; SK=1;
while(DO==0) { // busy test
SK=0; SK=1;
}
SK=0; CS=0;
Ewds();
}
/*
// Erase memory location An - A0.
void Erase(unsigned char address) {
unsigned char temp;
Ewen();
SK=0; DI=1; // 111 A5-A0
CS=0; CS=1;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 12
SK=1; SK=0; // 1
address|=0xc0;
for(temp=8;temp!=0;temp--) { // 8
DI=address&0x80;
SK=1; SK=0;
address<<=1;
}
CS=0; DO=1;
CS=1; SK=1;
while(DO==0) {
SK=0; SK=1;
}
SK=0; CS=0;
Ewds();
}
// Erases all memory locations. Valid only at VCC = 4.5V to 5.5V.
void Eral(void) {
unsigned char temp,InData;
Ewen();
CS=0;
SK=0;
CS=1;
InData=0x90; // 10010XXXX
for(temp=9;temp!=0;temp--) { // 9
DI=InData&0x80;
SK=1; SK=0;
InData<<=1;
}
CS=0; DO=1;
CS=1; SK=1;
while(DO==0) {
SK=0; SK=1;
}
SK=0; CS=0;
Ewds();
}
// Writes all memory locations. Valid only at VCC = 4.5V to 5.5V.
void Wral(unsigned int InData) {
unsigned char temp,address;
Ewen();
CS=0;
SK=0;
CS=1;
address=0x88; // 10001XXXX
for(temp=9;temp!=0;temp--) { // 9
DI=address&0x80;
SK=1; SK=0;
address<<=1;
}
for(temp=16;temp!=0;temp--) { // 16
DI=InData&0x8000;
SK=1; SK=0;
InData<<=1;
}
CS=0; DO=1;
CS=1; SK=1;
while(DO==0) {
SK=0; SK=1;
}
SK=0; CS=0;
C51 COMPILER V3.20, SN-50203013 YIJIA 06/29/07 20:42:04 PAGE 13
Ewds();
}
/*初始化子程序 */
750
751 void ch451_init()
752 {
753 1 ch451_din=0; /*先低后高,选择4线输入 */
754 1 ch451_din=1;
755 1 ch451_write(CH451_SYSON2); /*设定系统参数:010000000[wdog][keyb][disp]B关看门狗、键盘扫描使能、显示
-驱动使能 */
756 1 ch451_write(CH451_USER); /*设定显示参数:0101[mode][limit,3bits][intensity,4bits]B, BCD译码、扫描极限为4
-、显示亮度为最亮*/
757 1 #ifdef USE_KEY
758 1 IT1=0; /*设置下降沿触发 */
759 1 IE1=0; /*清中断标志 */
760 1 PX1=0; /*设置低优先级 */
761 1 EX1=1; /*开中断 */
762 1 #endif
763 1
764 1 }
765 /****************************************************** */
766
767 /*输出命令子程序
定义一无符号整型变量存储12字节的命令字。 */
769 void ch451_write(U16 command)
770 {
771 1 U8 i;
772 1 #ifdef USE_KEY
773 1 EX1=0; /*禁止键盘中断 */
774 1 #endif
775 1 ch451_load=0; /*命令开始 */
776 1 for(i=0;i<12;i++){ /*送入12位数据,低位在前 */
777 2 ch451_din=command&1;
778 2 ch451_dclk=0;
779 2 command>>=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -