📄 main.lst
字号:
146:./ds1302.h ****
147:./ds1302.h **** data>>=1;
665 .LM72:
666 0304 8A81 ldd r24,Y+2
667 0306 8695 lsr r24
668 0308 8A83 std Y+2,r24
670 .LM73:
671 030a 8B81 ldd r24,Y+3
672 030c 8150 subi r24,lo8(-(-1))
673 030e 8B83 std Y+3,r24
674 0310 D6CF rjmp .L32
675 .L33:
148:./ds1302.h **** }
149:./ds1302.h **** clr_ds1302_rst();
677 .LM74:
678 0312 8091 3500 lds r24,53
679 0316 877F andi r24,lo8(-9)
680 0318 8093 3500 sts 53,r24
150:./ds1302.h **** return(data);
682 .LM75:
683 031c 8A81 ldd r24,Y+2
684 031e 9927 clr r25
685 /* epilogue: frame size=3 */
686 0320 2396 adiw r28,3
687 0322 0FB6 in __tmp_reg__,__SREG__
688 0324 F894 cli
689 0326 DEBF out __SP_H__,r29
690 0328 0FBE out __SREG__,__tmp_reg__
691 032a CDBF out __SP_L__,r28
692 032c DF91 pop r29
693 032e CF91 pop r28
694 0330 0895 ret
695 /* epilogue end (size=9) */
696 /* function ds1302_read size 150 (131) */
702 .Lscope6:
704 .global check_ds1302
706 check_ds1302:
151:./ds1302.h **** }
152:./ds1302.h **** /******************************************************************/
153:./ds1302.h **** uchar check_ds1302(void)
154:./ds1302.h **** {
708 .LM76:
709 /* prologue: frame size=2 */
710 0332 CF93 push r28
711 0334 DF93 push r29
712 0336 CDB7 in r28,__SP_L__
713 0338 DEB7 in r29,__SP_H__
714 033a 2297 sbiw r28,2
715 033c 0FB6 in __tmp_reg__,__SREG__
716 033e F894 cli
717 0340 DEBF out __SP_H__,r29
718 0342 0FBE out __SREG__,__tmp_reg__
719 0344 CDBF out __SP_L__,r28
720 /* prologue end (size=10) */
155:./ds1302.h **** ds1302_write(ds1302_control_reg,0x80);
722 .LM77:
723 0346 60E8 ldi r22,lo8(-128)
724 0348 8EE8 ldi r24,lo8(-114)
725 034a CEDE rcall ds1302_write
156:./ds1302.h **** if(ds1302_read(ds1302_control_reg)==0x80) return 1;
727 .LM78:
728 034c 8EE8 ldi r24,lo8(-114)
729 034e 5BDF rcall ds1302_read
730 0350 8038 cpi r24,lo8(-128)
731 0352 29F4 brne .L38
733 .LM79:
734 0354 81E0 ldi r24,lo8(1)
735 0356 90E0 ldi r25,hi8(1)
736 0358 8983 std Y+1,r24
737 035a 9A83 std Y+2,r25
738 035c 02C0 rjmp .L37
739 .L38:
157:./ds1302.h **** else return 0;
741 .LM80:
742 035e 1982 std Y+1,__zero_reg__
743 0360 1A82 std Y+2,__zero_reg__
744 .L37:
158:./ds1302.h **** }
746 .LM81:
747 0362 8981 ldd r24,Y+1
748 0364 9A81 ldd r25,Y+2
749 /* epilogue: frame size=2 */
750 0366 2296 adiw r28,2
751 0368 0FB6 in __tmp_reg__,__SREG__
752 036a F894 cli
753 036c DEBF out __SP_H__,r29
754 036e 0FBE out __SREG__,__tmp_reg__
755 0370 CDBF out __SP_L__,r28
756 0372 DF91 pop r29
757 0374 CF91 pop r28
758 0376 0895 ret
759 /* epilogue end (size=9) */
760 /* function check_ds1302 size 35 (16) */
762 .Lscope7:
764 .global ds1302_read_time
766 ds1302_read_time:
159:./ds1302.h **** void ds1302_read_time(void)
160:./ds1302.h **** {
768 .LM82:
769 /* prologue: frame size=0 */
770 0378 CF93 push r28
771 037a DF93 push r29
772 037c CDB7 in r28,__SP_L__
773 037e DEB7 in r29,__SP_H__
774 /* prologue end (size=4) */
161:./ds1302.h **** year=ds1302_read(ds1302_year_reg); //年
776 .LM83:
777 0380 8CE8 ldi r24,lo8(-116)
778 0382 41DF rcall ds1302_read
779 0384 8093 0000 sts year,r24
162:./ds1302.h **** month=ds1302_read(ds1302_month_reg); //月
781 .LM84:
782 0388 88E8 ldi r24,lo8(-120)
783 038a 3DDF rcall ds1302_read
784 038c 8093 0000 sts month,r24
163:./ds1302.h **** day=ds1302_read(ds1302_date_reg); //日
786 .LM85:
787 0390 86E8 ldi r24,lo8(-122)
788 0392 39DF rcall ds1302_read
789 0394 8093 0000 sts day,r24
164:./ds1302.h **** week=ds1302_read(ds1302_day_reg); //周
791 .LM86:
792 0398 8AE8 ldi r24,lo8(-118)
793 039a 35DF rcall ds1302_read
794 039c 8093 0000 sts week,r24
165:./ds1302.h **** hour=ds1302_read(ds1302_hr_reg); //时
796 .LM87:
797 03a0 84E8 ldi r24,lo8(-124)
798 03a2 31DF rcall ds1302_read
799 03a4 8093 0000 sts hour,r24
166:./ds1302.h **** minute=ds1302_read(ds1302_min_reg); //分
801 .LM88:
802 03a8 82E8 ldi r24,lo8(-126)
803 03aa 2DDF rcall ds1302_read
804 03ac 8093 0000 sts minute,r24
167:./ds1302.h **** second=ds1302_read(ds1302_sec_reg); //秒
806 .LM89:
807 03b0 80E8 ldi r24,lo8(-128)
808 03b2 29DF rcall ds1302_read
809 03b4 8093 0000 sts second,r24
810 /* epilogue: frame size=0 */
811 03b8 DF91 pop r29
812 03ba CF91 pop r28
813 03bc 0895 ret
814 /* epilogue end (size=3) */
815 /* function ds1302_read_time size 35 (28) */
817 .Lscope8:
819 .global ds1302_write_time
821 ds1302_write_time:
168:./ds1302.h **** }
169:./ds1302.h **** /******************************************************************/
170:./ds1302.h **** void ds1302_write_time(void)
171:./ds1302.h **** {
823 .LM90:
824 /* prologue: frame size=0 */
825 03be CF93 push r28
826 03c0 DF93 push r29
827 03c2 CDB7 in r28,__SP_L__
828 03c4 DEB7 in r29,__SP_H__
829 /* prologue end (size=4) */
172:./ds1302.h **** ds1302_write(ds1302_control_reg,0x00); //关闭写保护
831 .LM91:
832 03c6 60E0 ldi r22,lo8(0)
833 03c8 8EE8 ldi r24,lo8(-114)
834 03ca 8EDE rcall ds1302_write
173:./ds1302.h **** ds1302_write(ds1302_sec_reg,0x80); //暂停
836 .LM92:
837 03cc 60E8 ldi r22,lo8(-128)
838 03ce 80E8 ldi r24,lo8(-128)
839 03d0 8BDE rcall ds1302_write
174:./ds1302.h **** delay_nms(10);
841 .LM93:
842 03d2 8AE0 ldi r24,lo8(10)
843 03d4 90E0 ldi r25,hi8(10)
844 03d6 5EDE rcall delay_nms
175:./ds1302.h **** //ds1302_write(ds1302_charger_reg,0xa9); //涓流充电
176:./ds1302.h **** ds1302_write(ds1302_year_reg,year); //年
846 .LM94:
847 03d8 6091 0000 lds r22,year
848 03dc 8CE8 ldi r24,lo8(-116)
849 03de 84DE rcall ds1302_write
177:./ds1302.h **** ds1302_write(ds1302_month_reg,month); //月
851 .LM95:
852 03e0 6091 0000 lds r22,month
853 03e4 88E8 ldi r24,lo8(-120)
854 03e6 80DE rcall ds1302_write
178:./ds1302.h **** ds1302_write(ds1302_date_reg,day); //日
856 .LM96:
857 03e8 6091 0000 lds r22,day
858 03ec 86E8 ldi r24,lo8(-122)
859 03ee 7CDE rcall ds1302_write
179:./ds1302.h **** ds1302_write(ds1302_day_reg,week); //周
861 .LM97:
862 03f0 6091 0000 lds r22,week
863 03f4 8AE8 ldi r24,lo8(-118)
864 03f6 78DE rcall ds1302_write
180:./ds1302.h **** ds1302_write(ds1302_hr_reg,hour); //时
866 .LM98:
867 03f8 6091 0000 lds r22,hour
868 03fc 84E8 ldi r24,lo8(-124)
869 03fe 74DE rcall ds1302_write
181:./ds1302.h **** ds1302_write(ds1302_min_reg,minute); //分
871 .LM99:
872 0400 6091 0000 lds r22,minute
873 0404 82E8 ldi r24,lo8(-126)
874 0406 70DE rcall ds1302_write
182:./ds1302.h **** ds1302_write(ds1302_sec_reg,second); //秒
876 .LM100:
877 0408 6091 0000 lds r22,second
878 040c 80E8 ldi r24,lo8(-128)
879 040e 6CDE rcall ds1302_write
183:./ds1302.h **** ds1302_write(ds1302_control_reg,0x80); //打开写保护
881 .LM101:
882 0410 60E8 ldi r22,lo8(-128)
883 0412 8EE8 ldi r24,lo8(-114)
884 0414 69DE rcall ds1302_write
885 /* epilogue: frame size=0 */
886 0416 DF91 pop r29
887 0418 CF91 pop r28
888 041a 0895 ret
889 /* epilogue end (size=3) */
890 /* function ds1302_write_time size 47 (40) */
892 .Lscope9:
907 .global led
908 .data
911 led:
912 0006 C0 .byte -64
913 0007 F9 .byte -7
914 0008 A4 .byte -92
915 0009 B0 .byte -80
916 000a 99 .byte -103
917 000b 92 .byte -110
918 000c 82 .byte -126
919 000d F8 .byte -8
920 000e 80 .byte -128
921 000f 90 .byte -112
922 0010 FF .byte -1
923 .global jtd_row
924 .global jtd_row
925 .section .bss
928 jtd_row:
929 0000 00 .skip 1,0
930 .global work_m
931 .global work_m
934 work_m:
935 0001 00 .skip 1,0
936 .global led_wx
937 .data
940 led_wx:
941 0011 FE .byte -2
942 .text
945 .global delay
947 delay:
949 .Ltext2:
1:main.c **** /******************************************************************************
2:main.c **** *******************************************************************************
3:main.c **** ** **
4:main.c **** * *
5:main.c **** 作品名称:交通灯
6:main.c ****
7:main.c **** 功 能:交通灯的红绿灯点亮,夜晚的黄闪,红绿灯时间间隔可调,夜晚黄闪时间
8:main.c ****
9:main.c **** 可设定。
10:main.c ****
11:main.c **** 说 明:采用Atmal公司的 ATmega8 AVR单片机,通过SPI口扫描显示红绿黄灯,时
12:main.c ****
13:main.c **** 间显示用UART口扫描显示,
14:main.c ****
15:main.c **** 软件中对硬件控制部分的说明,软件流程说明
16:main.c ****
17:main.c **** 对本程序中的重要定义进行说明
18:main.c ****
19:main.c **** 硬件接口:注明硬件电路中外围电路与可编程器件的连接接口和其它主要硬件连接
20:main.c ****
21:main.c **** 设计单位:郑州铁路职业技术学院 实践教学中心 无线电协会
22:main.c ****
23:main.c **** 程序设计:庞志军,信息系,网络03A1,#29(另有设计人另起一行注明)
24:main.c ****
25:main.c **** ::::::::::::::::
26:main.c ****
27:main.c **** 设计时间:2006.03.05----完成时间,完善时间
28:main.c ****
29:main.c **** 完 善:完善人姓名专业班级,起-----止时间(另有完善人另起一行注明)
30:main.c ****
31:main.c **** :::::::::::::::::
32:main.c ****
33:main.c **** 版 本 号:
34:main.c **** * *
35:main.c **** ** **
36:main.c **** *******************************************************************************
37:main.c **** ******************************************************************************/
38:main.c ****
39:main.c **** //头文件
40:main.c **** #include <avr/io.h>
41:main.c **** #include <avr/eeprom.h>
42:main.c ****
43:main.c **** #include <avr/interrupt.h>
44:main.c **** #include <avr/signal.h>
45:main.c ****
46:main.c **** #include <ds1302.h>
47:main.c **** #include <avr/pgmspace.h>
48:main.c **** #include <avr/delay.h>
49:main.c ****
50:main.c **** //宏定义
51:main.c **** #define uchar unsigned char
52:main.c **** #define uint unsigned int
53:main.c **** #define red_time_rom 0x00//红灯时间存储地址
54:main.c **** #define green_time_rom 0x01//绿灯时间存储地址
55:main.c **** #define yellow_start_h_rom 0x02//黄闪起始时间(时)存储地址
56:main.c **** #define yellow_start_m_rom 0x03//黄闪起始时间(分)存储地址
57:main.c **** #define yellow_stop_h_rom 0x04//黄闪终止时间(时)存储地址
58:main.c **** #define yellow_stop_m_rom 0x05//黄闪终止时间(分)存储地址
59:main.c **** #define key1 PD4
60:main.c **** #define key2 PD5
61:main.c **** #define key3 PD6
62:main.c **** #define key4 PD7
63:main.c **** #define jtd_red() jtd_data=0xfffe
64:main.c **** #define jtd_yellow() jtd_data=0xffef
65:main.c **** #define jtd_green jtd_data=0xfeff
66:main.c **** #define set_data() PORTB|=1<<PB1
67:main.c **** #define clr_data() PORTB&=~(1<<PB1)
68:main.c **** #define set_clk() PORTB|=1<<PB0
69:main.c **** #define clr_clk() PORTB&=~(1<<PB0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -