📄 mix_exp.lst
字号:
__start:
__text_start:
0470 EFCF LDI R28,0xFF
0471 E1D0 LDI R29,0x10
0472 BFCD OUT P3D,R28
0473 BFDE OUT P3E,R29
0474 51C0 SUBI R28,0x10
0475 40D0 SBCI R29,0
0476 EA0A LDI R16,0xAA
0477 8308 STD R16,0+Y
0478 2400 CLR R0
0479 EBE9 LDI R30,0xB9
047A E0F1 LDI R31,1
047B E012 LDI R17,2
047C 31E9 CPI R30,0x19
047D 07F1 CPC R31,R17
047E F011 BEQ 0x0481
047F 9201 ST R0,Z+
0480 CFFB RJMP 0x047C
0481 8300 STD R16,0+Z
0482 E2E5 LDI R30,0x25
0483 E0F8 LDI R31,0x8
0484 E0A0 LDI R26,0
0485 E0B1 LDI R27,1
0486 E018 LDI R17,0x8
0487 3DEE CPI R30,0xDE
0488 07F1 CPC R31,R17
0489 F021 BEQ 0x048E
048A 95C8 LPM
048B 9631 ADIW R30,1
048C 920D ST R0,X+
048D CFF9 RJMP 0x0487
048F 940E075D CALL _main
_exit:
0490 CFFF RJMP _adc_isr
0491 922A ST R2,-Y
0492 930A ST R16,-Y
0493 931A ST R17,-Y
0494 932A ST R18,-Y
0495 933A ST R19,-Y
0496 938A ST R24,-Y
0497 93EA ST R30,-Y
0498 B62F IN R2,P3F
0499 922A ST R2,-Y
FILE: C:\work\mega128\mix_exp\megalcd.c
(0001) /*****************************************************
(0002) SL-MEGA128综合演示程序(ICCAVR)
(0003) http://www.sl.com.cn
(0004) 作者:詹卫前
(0005) 1、实验设备:SL-MEGA
(0006) 2、LCD连接:
(0007) 数据线D0~D7接PORTA
(0008) ASK=PORTE.6
(0009) ANSWER=PORTE.7
(0010) RESET=PORTC.3
(0011) 3、实时时钟晶振32.768KHZ
(0012) 4、ADC通道:ADC0、ADC1,参考电压:AVCC
(0013) 5、PS2键盘:DATA --PE5
(0014) CLOCK--PE4
(0015) 6、工作频率:内部RC 8MHZ
(0016) 7、实验内容:16进制扫描键盘
(0017) LCD驱动
(0018) 点阵图形处理
(0019) 汉字内码方式处理
(0020) 汉字点阵方式处理
(0021) 画点、线、圆函数
(0022) 实时时钟RTC
(0023) AD转换实验
(0024) PS2键盘驱动
(0025) 看门狗(WATCHDOG)使用
(0026) 定时溢出中断、AD转换完成中断
(0027) *****************************************************/
(0028) //extern unsigned char kb_buffer[64];
(0029) #include <iom128v.h>
(0030) #include <macros.h>
(0031) /* 定义OCMJ4X8端口 */
(0032) //DATA_PORT=PORTA
(0033) #define data_port PORTA
(0034) //ASK=PORTE.6
(0035) #define ask (PINE&0x40)
(0036) //ANSWER=PORTE.7
(0037) #define set_answer asm("sbi 0x03,7")
(0038) #define clr_answer asm("cbi 0x03,7")
(0039) //RESTE=PORTC.3
(0040) #define set_reset asm("sbi 0x15,3")
(0041) #define clr_reset asm("cbi 0x15,3")
(0042) #define wait asm("nop\n nop")
(0043) /*-- 双龙公司图标数据 --*/
(0044) /*-- 宽度x高度=32x32 --*/
(0045) const unsigned char sl_ico[128]={
(0046) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFF,0xFF,0xF8,0x3F,0xFF,0xFF,0xE0,0x1F,
(0047) 0xFF,0xFF,0x80,0x1F,0xFF,0xFF,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFC,0x07,0xFF,
(0048) 0xFF,0xF0,0x1F,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xF0,0x7F,0xFF,
(0049) 0xFF,0xE0,0x7F,0xFF,0xFF,0xF0,0x3F,0xFF,0xFF,0xF0,0x1F,0xFF,0xFF,0xF8,0x0F,0xFF,
(0050) 0xFF,0xFC,0x0F,0xFF,0xFF,0xFC,0x07,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0x03,0xFF,
(0051) 0xFF,0xFF,0x03,0xFF,0xFF,0xFF,0x01,0xFF,0xFF,0xFF,0x81,0xFF,0xFF,0xFF,0x01,0xFF,
(0052) 0xFF,0xFF,0x03,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xF8,0x03,0xFF,0xFF,0xE0,0x07,0xFF,
(0053) 0xFE,0x00,0x2F,0xFF,0xFF,0xC0,0x3F,0xFF,0xFF,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
(0054) /*-- ATMEL位图文件数据 --*/
(0055) /*-- 宽度x高度=104x49 --*/
(0056) const unsigned char atmel_bmp[637]={
(0057) 0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x0F,
(0058) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x1F,0xFF,0xFF,0xFF,
(0059) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
(0060) 0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
(0061) 0xF8,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,
(0062) 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0xFF,0xFF,0xFF,
(0063) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x00,
(0064) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
(0065) 0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0066) 0x03,0xFC,0x7F,0x9F,0xFF,0xFF,0xF8,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x03,0xFC,0x7F,
(0067) 0x9F,0xFF,0xFF,0xFC,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x07,0xFC,0x7F,0x9F,0xFF,0xFF,
(0068) 0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x07,0xFC,0x7F,0x9F,0xC7,0xF9,0xFE,0x3F,0xFF,
(0069) 0xE7,0xF8,0x00,0x00,0x0F,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,
(0070) 0x00,0x0F,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x1F,0xFC,
(0071) 0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x1F,0xFC,0x7F,0x9F,0xC7,
(0072) 0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x3F,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,
(0073) 0x00,0x07,0xF8,0x00,0x00,0x3F,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0x00,0x07,0xF8,
(0074) 0x00,0x00,0x7F,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0x7F,
(0075) 0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0xFF,0xFC,0x7F,0x9F,
(0076) 0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x00,0xFF,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,
(0077) 0x3F,0xFF,0xE7,0xF8,0x00,0x01,0xFF,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,
(0078) 0xF8,0x00,0x01,0xFF,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x03,
(0079) 0xFF,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x03,0xFF,0xFC,0x7F,
(0080) 0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,0x07,0xFB,0xFC,0x7F,0x9F,0xC7,0xF8,
(0081) 0xFE,0x3F,0x00,0x07,0xF8,0x00,0x07,0xF3,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0x00,
(0082) 0x07,0xF8,0x00,0x0F,0xF3,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xF8,0x00,
(0083) 0x1F,0xE3,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xFF,0xF8,0x1F,0xE3,0xFC,
(0084) 0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xFF,0xF0,0x3F,0xC3,0xFC,0x7F,0x9F,0xC7,
(0085) 0xF8,0xFE,0x3F,0xFF,0xE7,0xFF,0xF0,0x3F,0xC3,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,
(0086) 0xFF,0xE7,0xFF,0xE0,0x7F,0xF3,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xFF,
(0087) 0xE0,0x7F,0xF3,0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xFF,0xC0,0xFF,0xF3,
(0088) 0xFC,0x7F,0x9F,0xC7,0xF8,0xFE,0x3F,0xFF,0xE7,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,
(0089) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0090) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0091) 0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0xFF,
(0092) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,
(0093) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
(0094) 0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
(0095) 0xFF,0xF8,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,
(0096) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
(0097) /*-- 文字: 和 --*/
(0098) /*-- 楷体_GB231248; 此字体下对应的点阵为:宽x高=64x64 --*/
(0099) const unsigned char hz1[480]={
(0100) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0101) 0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x00,0x00,0x00,
(0102) 0x00,0x00,0x00,0x1F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,
(0103) 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,
(0104) 0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
(0105) 0x00,0x03,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x87,0xC0,0x00,0x00,0x00,0x00,
(0106) 0x00,0x18,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,
(0107) 0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,
(0108) 0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,
(0109) 0x00,0x00,0x03,0x87,0xC0,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xE0,0x00,0x06,0x00,
(0110) 0x00,0x00,0x0F,0xFF,0xC0,0x00,0x1F,0x80,0x00,0x00,0xFF,0xF8,0x00,0x01,0xFF,0xE0,
(0111) 0x00,0x0F,0xFF,0x80,0x7F,0xFF,0xFF,0xF0,0x07,0xFF,0xE7,0x80,0x7F,0xFF,0xFF,0xF0,
(0112) 0x1F,0xFE,0x0F,0x80,0x7F,0x80,0x07,0xE0,0x0F,0xF0,0x1F,0x80,0x3E,0x00,0x07,0xC0,
(0113) 0x07,0x80,0x3F,0x80,0x1E,0x00,0x07,0xC0,0x00,0x00,0x3F,0x80,0x1E,0x00,0x07,0x80,
(0114) 0x00,0x00,0x7F,0x80,0x1E,0x00,0x07,0x80,0x00,0x00,0xFB,0x80,0x0E,0x00,0x07,0x80,
(0115) 0x00,0x00,0xF3,0xF8,0x0E,0x00,0x0F,0x00,0x00,0x01,0xE3,0xFE,0x0E,0x00,0x0F,0x00,
(0116) 0x00,0x03,0xE3,0xBF,0x0E,0x00,0x0F,0x00,0x00,0x07,0xC3,0x9F,0x07,0x00,0x0E,0x00,
(0117) 0x00,0x07,0x83,0x8F,0x07,0x00,0x0E,0x00,0x00,0x0F,0x03,0x83,0x07,0x00,0x1F,0x00,
(0118) 0x00,0x1E,0x03,0x80,0x07,0x1F,0xFF,0x80,0x00,0x3C,0x03,0x80,0x07,0xFF,0xFF,0x80,
(0119) 0x00,0x78,0x03,0x80,0x07,0xFF,0x00,0x00,0x00,0x70,0x03,0x80,0x03,0x00,0x00,0x00,
(0120) 0x00,0xE0,0x03,0x80,0x03,0x00,0x00,0x00,0x01,0xC0,0x03,0x80,0x03,0x00,0x00,0x00,
(0121) 0x03,0x80,0x07,0x80,0x03,0x00,0x00,0x00,0x06,0x00,0x07,0x80,0x01,0x00,0x00,0x00,
(0122) 0x0C,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x10,0x00,0x07,0x80,0x00,0x00,0x00,0x00,
(0123) 0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
(0124) 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
(0125) 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
(0126) 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,
(0127) 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
(0128) 0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0129) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
(0130) const unsigned char hz2[132]={
(0131) /*-- 文字: 欢 --*/
(0132) /*-- 楷体_GB231224; 此字体下对应的点阵为:宽x高=32x33 --*/
(0133) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x70,0x00,
(0134) 0x00,0x00,0x70,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xC0,0x00,
(0135) 0x00,0x00,0xC0,0x00,0x00,0x60,0x81,0x00,0x03,0xF1,0x8F,0xC0,0x3E,0x71,0xF9,0xE0,
(0136) 0x10,0x63,0x01,0x80,0x00,0x62,0x03,0x00,0x08,0x64,0xC2,0x00,0x04,0x60,0x60,0x00,
(0137) 0x06,0xC0,0x60,0x00,0x03,0xC0,0x60,0x00,0x01,0xC0,0x60,0x00,0x01,0xC0,0xD0,0x00,
(0138) 0x01,0x60,0xD8,0x00,0x03,0x70,0xCC,0x00,0x06,0x31,0x8C,0x00,0x04,0x11,0x86,0x00,
(0139) 0x08,0x03,0x03,0x80,0x10,0x06,0x03,0xC0,0x20,0x0C,0x01,0xF0,0x00,0x18,0x00,0xFC,
(0140) 0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0141) 0x00,0x00,0x00,0x00};
(0142) const unsigned char hz3[132]={
(0143) /*-- 文字: 迎 --*/
(0144) /*-- 楷体_GB231224; 此字体下对应的点阵为:宽x高=32x33 --*/
(0145) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0146) 0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x06,0x00,0xC0,0x00,0x07,0x01,0x80,0x00,
(0147) 0x03,0x82,0x01,0xE0,0x01,0x1C,0x3E,0xE0,0x00,0x08,0x10,0x60,0x00,0x0C,0x10,0x60,
(0148) 0x00,0x0C,0x10,0xC0,0x07,0x0C,0x10,0xC0,0x3F,0x8C,0x50,0xC0,0x23,0x0D,0x93,0xC0,
(0149) 0x03,0x0F,0x11,0xC0,0x02,0x0E,0x11,0x80,0x02,0x0C,0x10,0x00,0x02,0x08,0x10,0x00,
(0150) 0x03,0x00,0x10,0x00,0x01,0x00,0x10,0x00,0x01,0x00,0x10,0x00,0x1F,0xC0,0x10,0x00,
(0151) 0x3C,0x3E,0x10,0x00,0x00,0x07,0xE0,0x00,0x00,0x01,0xFF,0xFE,0x00,0x00,0x3F,0xF8,
(0152) 0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0153) 0x00,0x00,0x00,0x00};
(0154) const unsigned char hz4[132]={
(0155) /*-- 文字: 您 --*/
(0156) /*-- 楷体_GB231224; 此字体下对应的点阵为:宽x高=32x33 --*/
(0157) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x30,0x60,0x00,
(0158) 0x00,0x30,0x60,0x00,0x00,0x70,0xE0,0x00,0x00,0x60,0xC1,0x80,0x00,0xC1,0xBF,0xE0,
(0159) 0x00,0xC3,0xE0,0xE0,0x01,0x82,0x31,0x00,0x03,0xC4,0x30,0x00,0x06,0xC8,0x10,0x00,
(0160) 0x0C,0xC0,0x10,0x00,0x08,0xC2,0x13,0x00,0x10,0x82,0x11,0xC0,0x00,0x86,0x10,0xC0,
(0161) 0x00,0x86,0x30,0x40,0x00,0x84,0xB0,0x00,0x00,0x80,0x70,0x00,0x00,0x80,0x30,0x00,
(0162) 0x00,0x00,0x20,0xE0,0x00,0x07,0x00,0x78,0x02,0x03,0xC0,0x18,0x02,0x20,0xC0,0x00,
(0163) 0x06,0x30,0x04,0x00,0x06,0x18,0x02,0x00,0x0C,0x0C,0x03,0x80,0x0C,0x07,0x03,0xC0,
(0164) 0x00,0x03,0xFF,0xC0,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0165) 0x00,0x00,0x00,0x00};
(0166) unsigned int adc1;
(0167) unsigned int adc2;
(0168) unsigned char adcval[6];
(0169) unsigned char keytime;
(0170) extern void timecal(void);
(0171) extern void timer0_init(void);
(0172) extern void timer2_init(void);
(0173) extern void delay_ms(unsigned int n);
(0174) extern void init_kb(void);
(0175) extern void timetoasc(void);
(0176) extern unsigned char getchar(void);
(0177) /* AD转换程序 */
(0178) #pragma interrupt_handler adc_isr:iv_ADC
(0179) void adc_isr(void)
(0180) {
(0181) unsigned int temp=0;
049A 2700 CLR R16
049B 2711 CLR R17
(0182) //while(temp<6)
(0183) // temp++;
(0184) temp=ADC;
049C B104 IN R16,P04
049D B115 IN R17,P05
(0185) switch (ADMUX)
049E B127 IN R18,P07
049F 2733 CLR R19
04A0 3020 CPI R18,0
04A1 0723 CPC R18,R19
04A2 F029 BEQ 0x04A8
04A3 3021 CPI R18,1
04A4 E0E0 LDI R30,0
04A5 073E CPC R19,R30
04A6 F041 BEQ 0x04AF
04A7 C00E RJMP 0x04B6
(0186) {
(0187) case 0:
(0188) {
(0189) adc1=temp;
04A9 931001C5 STS R17,_adc1+1
04AB 930001C4 STS R16,_adc1
(0190) ADMUX=1;
04AC E081 LDI R24,1
04AD B987 OUT P07,R24
(0191) break;
04AE C009 RJMP 0x04B8
(0192) }
(0193) case 1:
(0194) {
(0195) adc2=temp;
04B0 931001C3 STS R17,_adc2+1
04B2 930001C2 STS R16,_adc2
(0196) ADMUX=0;
04B3 2422 CLR R2
04B4 B827 OUT P07,R2
(0197) break;
04B5 C002 RJMP 0x04B8
(0198) }
(0199) default :
(0200) {
(0201) ADMUX=0;
04B6 2422 CLR R2
04B7 B827 OUT P07,R2
(0202) }
(0203) }
(0204) ADCSRA|=(1<<ADSC);//0x40
04B8 9A36 SBI P06,6
(0205) }
04B9 9029 LD R2,Y+
04BA BE2F OUT P3F,R2
04BB 91E9 LD R30,Y+
04BC 9189 LD R24,Y+
04BD 9139 LD R19,Y+
04BE 9129 LD R18,Y+
04BF 9119 LD R17,Y+
04C0 9109 LD R16,Y+
04C1 9029 LD R2,Y+
04C2 9518 RETI
_adctoasc:
char_p --> R10
i --> R12
temp --> R14
adc --> R10
04C4 940E0DD2 CALL push_gset5
04C5 0158 MOVW R10,R16
(0206) /* AD结果转换成电压 */
(0207) #define vref 473
(0208) unsigned char * adctoasc(unsigned int adc)
(0209) {
(0210) unsigned int temp;
(0211) unsigned char i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -