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

📄 ds1302a.lst

📁 基于avr单片机上的ds1302实时时钟源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 827 01fe 00D0      		ld r22,Z
 828 0200 8093 0000 		ldi r23,lo8(0)
 829               		ldi r24,lo8(0)
 830               		ldi r25,hi8(0)
 831 0204 82E8      		rcall write728x
 832 0206 00D0      		ldi r18,lo8(0)
 833 0208 8093 0000 		ldi r19,hi8(0)
 834               	.L74:
 835               	.LBB88:
 836 020c 80E8      	.LBB89:
 837 020e 00D0      	.LBB90:
 838 0210 E82F      	.LBB91:
 840               	.Ltext5:
 842 0216 F0E0      	.LM126:
 843 0218 EF70      		ldi r24,lo8(-123)
 844 021a F070      	/* #APP */
 845 021c E050      		1: dec r24
 846 021e F040      		brne 1b
 847 0220 6081      	/* #NOAPP */
 848 0222 70E0      	.LBE91:
 849 0224 80E0      	.LBE90:
 850 0226 90E0      	.LBE89:
 851 0228 00D0      	.LBE88:
 853 022c 30E0      	.Ltext6:
 855               	.LM127:
 856               		subi r18,lo8(-(1))
 857               		sbci r19,hi8(-(1))
 858               		cpi r18,100
 859               		cpc r19,__zero_reg__
 860               		brne .L74
 862               	.LM128:
 863 022e 85E8      		lds r30,second
 864               		swap r30
 865 0230 8A95      		andi r30,lo8(15)
 866 0232 01F4      		ldi r31,lo8(0)
 867               		subi r30,lo8(-(disp_table))
 868               		sbci r31,hi8(-(disp_table))
 869               		ld r22,Z
 870               		ldi r23,lo8(0)
 871               		ldi r24,lo8(1)
 872               		ldi r25,hi8(1)
 873               		rcall write728x
 874               		ldi r18,lo8(0)
 875               		ldi r19,hi8(0)
 876 0234 2F5F      	.L76:
 877 0236 3F4F      	.LBB92:
 878 0238 2436      	.LBB93:
 879 023a 3105      	.LBB94:
 880 023c 01F4      	.LBB95:
 882               	.Ltext7:
 884 0242 E295      	.LM129:
 885 0244 EF70      		ldi r24,lo8(-123)
 886 0246 F0E0      	/* #APP */
 887 0248 E050      		1: dec r24
 888 024a F040      		brne 1b
 889 024c 6081      	/* #NOAPP */
 890 024e 70E0      	.LBE95:
 891 0250 81E0      	.LBE94:
 892 0252 90E0      	.LBE93:
 893 0254 00D0      	.LBE92:
 895 0258 30E0      	.Ltext8:
 897               	.LM130:
 898               		subi r18,lo8(-(1))
 899               		sbci r19,hi8(-(1))
 900               		cpi r18,100
 901               		cpc r19,__zero_reg__
 902               		brne .L76
 904               	.LM131:
 905 025a 85E8      		lds r30,minute
 906               		ldi r31,lo8(0)
 907 025c 8A95      		andi r30,lo8(15)
 908 025e 01F4      		andi r31,hi8(15)
 909               		subi r30,lo8(-(disp_table))
 910               		sbci r31,hi8(-(disp_table))
 911               		ld r22,Z
 912               		ldi r23,lo8(0)
 913               		ldi r24,lo8(1)
 914               		ldi r25,hi8(1)
 915               		rcall write728x
 916               		ldi r18,lo8(0)
 917               		ldi r19,hi8(0)
 918 0260 2F5F      	.L78:
 919 0262 3F4F      	.LBB96:
 920 0264 2436      	.LBB97:
 921 0266 3105      	.LBB98:
 922 0268 01F4      	.LBB99:
 924               	.Ltext9:
 926 026e F0E0      	.LM132:
 927 0270 EF70      		ldi r24,lo8(-123)
 928 0272 F070      	/* #APP */
 929 0274 E050      		1: dec r24
 930 0276 F040      		brne 1b
 931 0278 6081      	/* #NOAPP */
 932 027a 70E0      	.LBE99:
 933 027c 81E0      	.LBE98:
 934 027e 90E0      	.LBE97:
 935 0280 00D0      	.LBE96:
 937 0284 30E0      	.Ltext10:
 939               	.LM133:
 940               		subi r18,lo8(-(1))
 941               		sbci r19,hi8(-(1))
 942               		cpi r18,100
 943               		cpc r19,__zero_reg__
 944               		brne .L78
 946               	.LM134:
 947 0286 85E8      		lds r30,minute
 948               		swap r30
 949 0288 8A95      		andi r30,lo8(15)
 950 028a 01F4      		ldi r31,lo8(0)
 951               		subi r30,lo8(-(disp_table))
 952               		sbci r31,hi8(-(disp_table))
 953               		ld r22,Z
 954               		ldi r23,lo8(0)
 955               		ldi r24,lo8(1)
 956               		ldi r25,hi8(1)
 957               		rcall write728x
 958               		ldi r18,lo8(0)
 959               		ldi r19,hi8(0)
 960 028c 2F5F      	.L80:
 961 028e 3F4F      	.LBB100:
 962 0290 2436      	.LBB101:
 963 0292 3105      	.LBB102:
 964 0294 01F4      	.LBB103:
 966               	.Ltext11:
 968 029a E295      	.LM135:
 969 029c EF70      		ldi r24,lo8(-123)
 970 029e F0E0      	/* #APP */
 971 02a0 E050      		1: dec r24
 972 02a2 F040      		brne 1b
 973 02a4 6081      	/* #NOAPP */
 974 02a6 70E0      	.LBE103:
 975 02a8 81E0      	.LBE102:
 976 02aa 90E0      	.LBE101:
 977 02ac 00D0      	.LBE100:
 979 02b0 30E0      	.Ltext12:
 981               	.LM136:
 982               		subi r18,lo8(-(1))
 983               		sbci r19,hi8(-(1))
 984               		cpi r18,100
 985               		cpc r19,__zero_reg__
 986               		brne .L80
 987               	/* epilogue: frame size=0 */
 988               		ret
 989 02b2 85E8      	/* epilogue end (size=1) */
 990               	/* function ds1302_read_time size 124 (123) */
 1007               	.Lscope15:
 1009               	.global	main
 1011               	main:
 1013               	.LM137:
 1014               	.LFBB16:
 1015               	/* prologue: frame size=0 */
 1016               	/* prologue end (size=0) */
 1018               	.LM138:
 1019               		ldi r24,lo8(1)
 1020               		out 55-0x20,r24
 1022               	.LM139:
 1023               		out 56-0x20,__zero_reg__
 1025               	.LM140:
 1026               		ldi r24,lo8(-1)
 1027               		out 50-0x20,r24
 1029               	.LM141:
 1030               		out 49-0x20,r24
 400:../ds1302a/ds1302a.c ****    _delay_us(5);                                     // 恢复I/O口B5为输出B.7为输入
 401:../ds1302a/ds1302a.c **** }
 402:../ds1302a/ds1302a.c **** 
 403:../ds1302a/ds1302a.c **** /*
 404:../ds1302a/ds1302a.c **** void send_byte(uchar x)    //以下为显示程序 
 405:../ds1302a/ds1302a.c **** { 
 406:../ds1302a/ds1302a.c ****         uchar i; 
 407:../ds1302a/ds1302a.c ****          for(i=0;i<8;i++) 
 408:../ds1302a/ds1302a.c ****          { 
 409:../ds1302a/ds1302a.c ****                 PORTC&=~(1<<5);   // PC5为底  为164提供时钟信号 
 410:../ds1302a/ds1302a.c ****                 if(x&(1<<(7-i)))//判断每位数据的电平,及小数点判断 
 411:../ds1302a/ds1302a.c ****                 PORTC|=(1<<4);                  //若为高着PC4输出高电平   
 412:../ds1302a/ds1302a.c ****                 else 
 413:../ds1302a/ds1302a.c ****                 PORTC&=~(1<<4);                           //若为低着输出低电平 
 414:../ds1302a/ds1302a.c ****                 PORTC|=(1<<5);   //PC5 提供时钟信号 
 415:../ds1302a/ds1302a.c ****          } 
 416:../ds1302a/ds1302a.c ****         //PORTC|=((1<<0)|(1<<1)|(1<<2)); 
 417:../ds1302a/ds1302a.c **** } 
 418:../ds1302a/ds1302a.c **** */
 419:../ds1302a/ds1302a.c ****   	
 420:../ds1302a/ds1302a.c **** void main()
 421:../ds1302a/ds1302a.c **** {
 1033               	.LM144:
 1034               		rcall ds1302_write_time
 1035               	.LBB114:
 1036               	.LBB115:
 422:../ds1302a/ds1302a.c ****   DDRB=0x01;                                       // 设置I/O口B.5为输出
 1037               	FBB16
 1038               	.LM143:
 1039 02c4 81E0      		rcall check_ds1302
 423:../ds1302a/ds1302a.c ****   PORTB=0x00;
 1041               	M142:
 1042               		rcall initialize_1302
 424:../ds1302a/ds1302a.c ****   //PORTC = 0xff; //m103 output only
 425:../ds1302a/ds1302a.c ****   //DDRC  = 0xFF;
 426:../ds1302a/ds1302a.c ****   PORTD = 0xFF;
 1044               	B16
 1045               	.LM141:
 1046 02ca 8FEF      		out 49-0x20,r24
 427:../ds1302a/ds1302a.c ****   DDRD  = 0xff;
 1048               	40:
 1049               		ldi r24,lo8(-1)
 1050 02ce 81BB      		out 50-0x20,r24
 428:../ds1302a/ds1302a.c ****  
 429:../ds1302a/ds1302a.c ****   initialize_1302();
 1051               	8,0,423,.LM139-.LFBB16
 1052               	.LM139:
 1053 02d0 00D0      		out 56-0x20,__zero_reg__
 430:../ds1302a/ds1302a.c ****   check_ds1302() ;
 1054               	abn	68,0,422,.LM138-.LFBB16
 1055               	.LM138:
 1056 02d2 00D0      		ldi r24,lo8(1)
 431:../ds1302a/ds1302a.c ****   ds1302_write_time();
 1057               	-.LFBB16
 1058               	.LM137:
 1059 02d4 00D0      	.LFBB16:
 1060               	/* prologue: frame size=0 */
 1061               	/* prologue end (size=0) */
 1063               	.LM138:
 1064               		ldi r24,lo8(1)
 1065               		out 55-0x20,r24
 1067               	.LM139:
  84:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 		"1: dec %0" "\n\t"
  85:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 		"brne 1b"
  86:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 		: "=r" (__count)
  87:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 		: "0" (__count)
  88:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 	);
  89:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** }
  90:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 
  91:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
  92:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 
  93:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     Delay loop using a 16-bit counter \c __count, so up to 65536
  94:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     iterations are possible.  (The value 65536 would have to be
  95:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     passed as 0.)  The loop executes four CPU cycles per iteration,
  96:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     not including the overhead the compiler requires to setup the
  97:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     counter register pair.
  98:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 
  99:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
 100:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****     milliseconds can be achieved.
 101:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****  */
 102:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** void
 103:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
 104:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** {
 105:c:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** 	__asm__ volatile (
 1068               	ologue end (size=0) */
 1070 02d6 88EC      	.LM138:
 1071 02d8 90E0      		ldi r24,lo8(1)
 1072               		out 55-0x20,r24
 1074 02dc 01F4      	.LM139:
 1075               		out 56-0x20,__zero_reg__
 1077               	.LM140:
 1078               		ldi r24,lo8(-1)
 1079               		out 50-0x20,r24
 1081               	.LM141:
 1082               		out 49-0x20,r24
 432:../ds1302a/ds1302a.c ****   _delay_us(100);                                   // 等待 BC728x 完成复位
 433:../ds1302a/ds1302a.c ****   write728x(0x12,0x84);                           // 初始化BC728x为164模式,KMS=1
 1084               	40:
 1085               		ldi r24,lo8(-1)
 1086 02de 64E8      		out 50-0x20,r24
 1088 02e2 00D0      	.LM141:
 1089               		out 49-0x20,r24
 434:../ds1302a/ds1302a.c ****   

⌨️ 快捷键说明

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