📄 inout_2313.lst
字号:
__start:
__text_start:
0013 EDCF LDI R28,0xDF
0014 E0D0 LDI R29,0
0015 BFCD OUT 0x3D,R28
0016 BFDE OUT 0x3E,R29
0017 51C0 SUBI R28,0x10
0018 40D0 SBCI R29,0
0019 EA0A LDI R16,0xAA
001A 8308 STD Y+0,R16
001B 2400 CLR R0
001C E6E0 LDI R30,0x60
001D E0F0 LDI R31,0
001E E010 LDI R17,0
001F 36E0 CPI R30,0x60
0020 07F1 CPC R31,R17
0021 F011 BEQ 0x0024
0022 9201 ST R0,Z+
0023 CFFB RJMP 0x001F
0024 8300 STD Z+0,R16
0025 E2E6 LDI R30,0x26
0026 E0F0 LDI R31,0
0027 E6A0 LDI R26,0x60
0028 E0B0 LDI R27,0
0029 E010 LDI R17,0
002A 32E6 CPI R30,0x26
002B 07F1 CPC R31,R17
002C F021 BEQ 0x0031
002D 95C8 LPM
002E 9631 ADIW R30,1
002F 920D ST R0,X+
0030 CFF9 RJMP 0x002A
0031 D001 RCALL _main
_exit:
0032 CFFF RJMP _exit
FILE: E:\iccavr代码\实验19_杜邦线使用_2313\inout_2313.c
(0001) //******************************************************************************
(0002) // *
(0003) // FileName : inout_2313.c ICCAVR V6.31A编译 *
(0004) // Function : 直接键盘驱动并显示程序 *
(0005) // Date : 2006-12-11 *
(0006) // Version : 1.0 *
(0007) // *
(0008) // Author : 开关电源 hongtusy@163.com *
(0009) // Company : 电子信息技术咨询网 http://www.itsn.cn *
(0010) // *
(0011) //***************************描述与记事*****************************************
(0012) //实验板的AVR程序,直接键盘的使用,可使用F1~F8等8个直接输入键盘。
(0013) //说明:
(0014) //具体电路可参照试验介绍里的说明。
(0015) //使用器件:本实验是为了演示配合杜邦线使用ATtiny2313而特别安排的。
(0016) // 使用默认的片内RC振荡器,4MHz
(0017) //功能描述:按下PB口相应的按键,PD口对应的LED亮,松开后又恢复原样,同时PA0的蜂鸣器响//
(0018) //接线定义:PD接LED(原SW1)输出,PB口(原SW4)键盘输入。PA0口接蜂鸣器。
(0019) //使用的开关:SW4-1~7.SW6-1/3/4打开,SW3-5/8为系统复位端。
(0020) //杜邦线:本实验就是为了演示杜邦线的使用,这里需要使用8根杜邦线将板上PD口连接至
(0021) // LED的输入端PC口,因为2313没有PC口。将杜邦线一端插在SW1后的插针上,
(0022) // 另一端插在扩展插座JP2的PD口上。
(0023) // 将PA0口()连到SW5-7的蜂鸣器引脚上。
(0024) //记事:注意此时需要使用原配的实验套件"双公插针",事先将插针插在扩展插座上。
(0025) //******************************************************************************
(0026) #include <iot2313v.h> //头文件,ATtiny2313单片机的寄存器定义
(0027)
(0028) //注意事项1。PB口和下载口在一起,如果对地连接,很可能会影响下载,需注意。
(0029) // 2。矩阵键盘使用SW4-1~8,直接键盘使用SW4-1~7和SW6-3~4开关。
(0030) //本程序是为了测试2313用的,刚好可以测试PB口和PD口(只有前7位),
(0031) //不过需要用杜邦线将LED灯的PC口接到插座的PD口上。
(0032)
(0033) void main (void)
(0034) {
(0035) unsigned char i;
(0036) DDRD=0xff; //PD口设置为输出,共阴LED灯。
_main:
i --> Y+1
0033 EF8F LDI R24,0xFF
0034 BB81 OUT 0x11,R24
(0037)
(0038) DDRB=0x00; //PB口作为输入,内部上拉
0035 2422 CLR R2
0036 BA27 OUT 0x17,R2
(0039) PORTB=0xff;
0037 BB88 OUT 0x18,R24
(0040)
(0041) DDRA=0xff; //蜂鸣器输出。
0038 BB8A OUT 0x1A,R24
0039 C009 RJMP 0x0043
(0042)
(0043) while(1)
(0044) {
(0045) PORTD = ~PINB; //PB口的引脚状态读到PD口
003A B226 IN R2,0x16
003B 9420 COM R2
003C BA22 OUT 0x12,R2
(0046) if (~PINB)
003D B226 IN R2,0x16
003E 9420 COM R2
003F F011 BEQ 0x0042
(0047) {
(0048) PORTA &= ~(1<<PA0); //让PA0口的蜂鸣器响
0040 98D8 CBI 0x1B,0
(0049) }
0041 C001 RJMP 0x0043
(0050) else
(0051) {
(0052) PORTA |= 1<<PA0; //让PA0口的蜂鸣器关
FILE: <library>
0042 9AD8 SBI 0x1B,0
0043 CFF6 RJMP 0x003A
0044 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -