📄 inout_2313.lis
字号:
.module inout_2313.c
.area text(rom, con, rel)
0000 .dbfile E:\iccavr代码\实验19_杜邦线使用_2313\inout_2313.c
0000 .dbfunc e main _main fV
0000 ; i -> <dead>
.even
0000 _main::
0000 .dbline -1
0000 .dbline 34
0000 ; //******************************************************************************
0000 ; // *
0000 ; // FileName : inout_2313.c ICCAVR V6.31A编译 *
0000 ; // Function : 直接键盘驱动并显示程序 *
0000 ; // Date : 2006-12-11 *
0000 ; // Version : 1.0 *
0000 ; // *
0000 ; // Author : 开关电源 hongtusy@163.com *
0000 ; // Company : 电子信息技术咨询网 http://www.itsn.cn *
0000 ; // *
0000 ; //***************************描述与记事*****************************************
0000 ; //实验板的AVR程序,直接键盘的使用,可使用F1~F8等8个直接输入键盘。
0000 ; //说明:
0000 ; //具体电路可参照试验介绍里的说明。
0000 ; //使用器件:本实验是为了演示配合杜邦线使用ATtiny2313而特别安排的。
0000 ; // 使用默认的片内RC振荡器,4MHz
0000 ; //功能描述:按下PB口相应的按键,PD口对应的LED亮,松开后又恢复原样,同时PA0的蜂鸣器响//
0000 ; //接线定义:PD接LED(原SW1)输出,PB口(原SW4)键盘输入。PA0口接蜂鸣器。
0000 ; //使用的开关:SW4-1~7.SW6-1/3/4打开,SW3-5/8为系统复位端。
0000 ; //杜邦线:本实验就是为了演示杜邦线的使用,这里需要使用8根杜邦线将板上PD口连接至
0000 ; // LED的输入端PC口,因为2313没有PC口。将杜邦线一端插在SW1后的插针上,
0000 ; // 另一端插在扩展插座JP2的PD口上。
0000 ; // 将PA0口()连到SW5-7的蜂鸣器引脚上。
0000 ; //记事:注意此时需要使用原配的实验套件"双公插针",事先将插针插在扩展插座上。
0000 ; //******************************************************************************
0000 ; #include <iot2313v.h> //头文件,ATtiny2313单片机的寄存器定义
0000 ;
0000 ; //注意事项1。PB口和下载口在一起,如果对地连接,很可能会影响下载,需注意。
0000 ; // 2。矩阵键盘使用SW4-1~8,直接键盘使用SW4-1~7和SW6-3~4开关。
0000 ; //本程序是为了测试2313用的,刚好可以测试PB口和PD口(只有前7位),
0000 ; //不过需要用杜邦线将LED灯的PC口接到插座的PD口上。
0000 ;
0000 ; void main (void)
0000 ; {
0000 .dbline 36
0000 ; unsigned char i;
0000 ; DDRD=0xff; //PD口设置为输出,共阴LED灯。
0000 8FEF ldi R24,255
0002 81BB out 0x11,R24
0004 .dbline 38
0004 ;
0004 ; DDRB=0x00; //PB口作为输入,内部上拉
0004 2224 clr R2
0006 27BA out 0x17,R2
0008 .dbline 39
0008 ; PORTB=0xff;
0008 88BB out 0x18,R24
000A .dbline 41
000A ;
000A ; DDRA=0xff; //蜂鸣器输出。
000A 8ABB out 0x1a,R24
000C 09C0 rjmp L3
000E L2:
000E .dbline 44
000E ;
000E ; while(1)
000E ; {
000E .dbline 45
000E ; PORTD = ~PINB; //PB口的引脚状态读到PD口
000E 26B2 in R2,0x16
0010 2094 com R2
0012 22BA out 0x12,R2
0014 .dbline 46
0014 ; if (~PINB)
0014 26B2 in R2,0x16
0016 2094 com R2
0018 11F0 breq L5
001A .dbline 47
001A ; {
001A .dbline 48
001A ; PORTA &= ~(1<<PA0); //让PA0口的蜂鸣器响
001A D898 cbi 0x1b,0
001C .dbline 49
001C ; }
001C 01C0 rjmp L6
001E L5:
001E .dbline 51
001E ; else
001E ; {
001E .dbline 52
001E ; PORTA |= 1<<PA0; //让PA0口的蜂鸣器关
001E D89A sbi 0x1b,0
0020 .dbline 53
0020 ; }
0020 L6:
0020 .dbline 54
0020 L3:
0020 .dbline 43
0020 F6CF rjmp L2
0022 X0:
0022 .dbline -2
0022 L1:
0022 .dbline 0 ; func end
0022 0895 ret
0024 .dbsym l i 1 c
0024 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -