⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eeprom.lst

📁 calculator code ,use toshibaor nec LSI
💻 LST
📖 第 1 页 / 共 5 页
字号:
                                 +0  680    680 ;write: 16bit data in bc--->a--->EEPROM
                                 +0  681    681 ;read:  16bit data in EEPTROM--->a--->bc
                                 +0  682    682 ;used general register: w,a,bc,de
                                 +0  683    683 ;=========================================================================
00000000                         +0  684    684 ee_enable:	;instruction 0011xxxx send to EEPROM
00000000  E10000C4             R +0  685    685 	set	(FLG_2).4
00000004  C500                 R +0  686    686 		set	(P0CR).EP_DIO	;as output port
00000006  CD00                 R +0  687    687 		clr	(P0DR).EP_DIO	;
00000008  00                     +0  688    688 		nop		;V1.34
00000009  00                     +0  689    689 		nop		;V1.34
0000000A  00                     +0  690    690 		nop		;V1.34
0000000B  C700                 R +0  691    691 	set	(P0DR).EP_CS
0000000D  FD0000               R +0  692    692 		call	ee_wait_10_nop	;V1.34
00000010  FD0000               R +0  693    693 		call	high_out	;outpu high level from port EP_DIO; start bit is high
00000013  1830                   +0  694    694 		ld	a,0y00110000	;instructin Write Enable
00000015  FD0000               R +0  695    695 		call	data_out
00000018  CF00                 R +0  696    696 	clr	(P0DR).EP_CS
0000001A  00                     +0  697    697 		nop		;V1.34
0000001B  00                     +0  698    698 		nop		;V1.34
0000001C  00                     +0  699    699 		nop		;V1.34
0000001D  C500                 R +0  700    700 		set	(P0CR).EP_DIO	;as output port
0000001F  CD00                 R +0  701    701 		clr	(P0DR).EP_DIO	;
00000021  00                     +0  702    702 		nop
00000022  E10000CC             R +0  703    703 	clr	(FLG_2).4
00000026  FA                     +0  704    704 		ret
                                 +0  705    705 ;=====================================================
00000027                         +0  706    706 ee_disable:	;instruction 0000xxxx send to EEPROM
00000027  E10000C4             R +0  707    707 	set	(FLG_2).4
0000002B  C500                 R +0  708    708 		set	(P0CR).EP_DIO	;as output port
0000002D  CD00                 R +0  709    709 		clr	(P0DR).EP_DIO	;
0000002F  00                     +0  710    710 		nop		;V1.34
00000030  00                     +0  711    711 		nop		;V1.34
00000031  00                     +0  712    712 		nop		;V1.34
00000032  C700                 R +0  713    713 	set	(P0DR).EP_CS
00000034  FD0000               R +0  714    714 		call	ee_wait_10_nop	;V1.34
00000037  FD0000               R +0  715    715 		call	high_out	
0000003A  1800                   +0  716    716 		ld	a,0y00000000
0000003C  FD0000               R +0  717    717 		call	data_out
0000003F  CF00                 R +0  718    718 	clr	(P0DR).EP_CS
00000041  00                     +0  719    719 		nop		;V1.34
00000042  00                     +0  720    720 		nop		;V1.34
00000043  00                     +0  721    721 		nop		;V1.34
00000044  00                     +0  722    722 		nop		;V1.34
00000045  C500                 R +0  723    723 		set	(P0CR).EP_DIO	;as output port
00000047  CD00                 R +0  724    724 		clr	(P0DR).EP_DIO	;
00000049  00                     +0  725    725 		nop
0000004A  E10000CC             R +0  726    726 	clr	(FLG_2).4
0000004E  FA                     +0  727    727 		ret
                                 +0  728    728 ;=====================================================
0000004F                         +0  729    729 high_out:	;output high level from port EP_DIO	
0000004F  C500                 R +0  730    730 	set	(P0DR).EP_DIO
00000051  FD0000               R +0  731    731 		call	ee_wait_10_nop	;V1.34
00000054  C600                 R +0  732    732 	set	(P0DR).EP_SK
00000056  FD0000               R +0  733    733 		call	ee_wait_10_nop	;V1.34
00000059  00                     +0  734    734 		nop			;SK	_HHHHHH____
0000005A  00                     +0  735    735 		nop			;DIO	___HHH_____
0000005B  CE00                 R +0  736    736 	clr	(P0DR).EP_SK
0000005D  00                     +0  737    737 		nop			;
0000005E  00                     +0  738    738 		nop
0000005F  FA                     +0  739    739 		ret			;
                                 +0  740    740 ;=====================================================
00000060                         +0  741    741 low_out:	;output low level from port EP_DIO
00000060  CD00                 R +0  742    742 	clr	(P0DR).EP_DIO
00000062  FD0000               R +0  743    743 		call	ee_wait_10_nop	;V1.34
00000065  00                     +0  744    744 		nop			;CS	HHHHHHHHHHH
00000066  00                     +0  745    745 		nop			;SK	_HHHHHH____
00000067  C600                 R +0  746    746 	set	(P0DR).EP_SK
00000069  FD0000               R +0  747    747 		call	ee_wait_10_nop	;V1.34
0000006C  CE00                 R +0  748    748 	clr	(P0DR).EP_SK
0000006E  00                     +0  749    749 		nop			;
0000006F  00                     +0  750    750 		nop
00000070  FA                     +0  751    751 		ret			;
                                 +0  752    752 ;=====================================================
00000071                         +0  753    753 data_out:	;8bit data in register "a" sent to EEPROM bit by bit
00000071  1907                   +0  754    754 		ld	w,7		;
00000073                         +0  755    755 data_out0:				;
00000073  E8F4                   +0  756    756 		shlc	a		;CS	HHHHHHHHHHHHHHHHHHHHHHHH
00000075  DB06                   +0  757    757 		j	cc,data_out2	;SK	_HHH__HHH__HHH_//_HHH_
00000077  FD0000               R +0  758    758 		call	high_out	;DO	__XXXXXXXXXXXXX//XXXX__
0000007A  FE0000               R +0  759    759 		jp	data_out4	;
0000007D                         +0  760    760 data_out2:				;
0000007D  FD0000               R +0  761    761 		call	low_out		;
00000080                         +0  762    762 data_out4:				;
00000080  29                     +0  763    763 		dec	w		;
00000081  DFF0                   +0  764    764 		jr	f,data_out0	;
00000083  FA                     +0  765    765 		ret			;
                                 +0  766    766 ;=====================================================
00000084                         +0  767    767 data_in:	;read 8bit data from EEPRM and save into register "a" bit by bit
00000084  1907                   +0  768    768 		ld	w,7		;
00000086                         +0  769    769 data_in0:				;
00000086  C600                 R +0  770    770 	set	(P0DR).EP_SK
00000088  00                     +0  771    771 		nop
00000089  00                     +0  772    772 		nop
0000008A  00                     +0  773    773 		nop
0000008B  CD00                 R +0  774    774 		clr	(P0CR).EP_DIO	;P17 as inupt port
0000008D  C500                 R +0  775    775 		set	(P0DR).EP_DIO
0000008F  FD0000               R +0  776    776 		call	ee_wait_10_nop	;V1.34
00000092  5D00                 R +0  777    777 		test	(P0DR).EP_DIO
00000094  83                     +0  778    778 		j	t,data_in1	;judge the port EP_DIO is high or low.
00000095  05                     +0  779    779 		set	cf		;is high
00000096  FE0000               R +0  780    780 		jp	data_in2	;
00000099                         +0  781    781 data_in1:				;
00000099  04                     +0  782    782 		clr	cf		;is low
0000009A                         +0  783    783 data_in2:				;
0000009A  E8F6                   +0  784    784 		rolc	a		;16bit data read into register wa
0000009C  CE00                 R +0  785    785 	clr	(P0DR).EP_SK
0000009E  FD0000               R +0  786    786 		call	ee_wait_10_nop	;V1.34
000000A1  00                     +0  787    787 		nop			;SK	_HHH__HHH__HHH_//_HHH_
000000A2  00                     +0  788    788 		nop			;DO	__XXXXXXXXXXXXX//XXXX__-->C-->register a
000000A3  29                     +0  789    789 		dec	w		;
000000A4  DFE0                   +0  790    790 		jr	f,data_in0	;
000000A6  FA                     +0  791    791 		ret			;
                                 +0  792    792 ;=====================================================
000000A7                         +0  793    793 ee_write:	;the data in register b(high 8bit)c(low 8bit)-->EEPROM
                                 +0  794    794 		;                        xxxxxxxx xxxxxxxx
000000A7  E10000C4             R +0  795    795 	set	(FLG_2).4
000000AB  1903                   +0  796    796 		ld	w,3
000000AD                         +0  797    797 ee_write_x:
000000AD  F679                   +0  798    798 		push	w	;V1.05
000000AF  C500                 R +0  799    799 		set	(P0CR).EP_DIO	;as output port
000000B1  CD00                 R +0  800    800 		clr	(P0DR).EP_DIO	;
000000B3  00                     +0  801    801 		nop		;V1.34
000000B4  00                     +0  802    802 		nop		;V1.34
000000B5  00                     +0  803    803 		nop		;V1.34
000000B6  00                     +0  804    804 		nop		;V1.34
000000B7  E94A                   +0  805    805 		ld	de,bc		;backup bc in de
000000B9  C700                 R +0  806    806 	set	(P0DR).EP_CS
000000BB  00                     +0  807    807 		nop
000000BC  00                     +0  808    808 		nop
000000BD  00                     +0  809    809 		nop
000000BE  00                     +0  810    810 		nop
000000BF  00                     +0  811    811 		nop
000000C0  FD0000               R +0  812    812 		call	high_out	;start bit is high level
000000C3  E1000040             R +0  813    813 		ld	a,(EP_ADDR)	;EPROM address-->a
000000C7  643F                   +0  814    814 		and	a,0y00111111	;EEPROM address only from 00-->63
000000C9  6640                   +0  815    815 		or	a,0y01000000	;write instruction is 01xxxxxx
000000CB  FD0000               R +0  816    816 		call	data_out	;instruction for write and address send to EEPROM
000000CE  13                     +0  817    817 		ld	a,b		;the data in c-->a
000000CF  FD0000               R +0  818    818 		call	data_out	;a-->EEPROM
000000D2  12                     +0  819    819 		ld	a,c		;the data in b-->a
000000D3  FD0000               R +0  820    820 		call	data_out	;a-->EEPROM
000000D6  CD00                 R +0  821    821 	clr	(P0DR).EP_DIO
000000D8  FD0000               R +0  822    822 		call	ee_wait_10_nop	;V1.34
000000DB  00                     +0  823    823 		nop		;V1.34
000000DC  00                     +0  824    824 		nop		;V1.34
000000DD  00                     +0  825    825 		nop		;V1.34
000000DE  CF00                 R +0  826    826 	clr	(P0DR).EP_CS
000000E0  FD0000               R +0  827    827 		call	ee_wait_10_nop	;V1.34
000000E3  CD00                 R +0  828    828 		clr	(P0CR).EP_DIO	;P17 as inupt port
000000E5  C500                 R +0  829    829 		set	(P0DR).EP_DIO
000000E7  FD0000               R +0  830    830 		call	ee_wait_10_nop	;V1.34
000000EA  C700                 R +0  831    831 	set	(P0DR).EP_CS
000000EC  FD0000               R +0  832    832 		call	ee_wait_10_nop	;V1.34
000000EF  F10000F91E           R +0  833    833 		ld	(EP_TIM),EETIM	;set time for waiting STOP signal. dec EP_TIM in timer interrupt
000000F4                         +0  834    834 ee_write0:
000000F4  CD00                 R +0  835    835 		clr	(P0CR).EP_DIO	;P17 as inupt port
000000F6  C500                 R +0  836    836 		set	(P0DR).EP_DIO
000000F8  00                     +0  837    837 		nop
000000F9  5D00                 R +0  838    838 		test	(P0DR).EP_DIO
000000FB  DF1A                   +0  839    839 		j	f,ee_write1		;STOP flag received? yes-->
000000FD  E1000040             R +0  840    840 		ld	a,(EP_TIM)		;not receive STOP flag
00000101  D9F1                   +0  841    841 		j	ne,ee_write0
00000103  480000               R +0  842    842 	ld	wa,EP_FAIL
00000106  E10000F2             R +0  843    843 	set	(EP_FAIL>>4).a
0000010A  CF00                 R +0  844    844 	clr	(P0DR).EP_CS
0000010C  C500                 R +0  845    845 		set	(P0CR).EP_DIO	;as output port
0000010E  CD00                 R +0  846    846 		clr	(P0DR).EP_DIO	;
00000110  E10000CC             R +0  847    847 	clr	(FLG_2).4
00000114  E641                   +0  848    848 		pop	w	;V1.05
00000116  FA                     +0  849    849 		ret
00000117                         +0  850    850 ee_write1:	;
00000117  CF00                 R +0  851    851 	clr	(P0DR).EP_CS
00000119  FD0000               R +0  852    852 		call	ee_wait_10_nop	;V1.34

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -