cbh_Serial.get() missing 1 required positional argument: 'self'
时间: 2023-06-27 19:00:57 浏览: 44
这个错误提示通常出现在使用类的实例方法时,没有传入 `self` 参数。请确保在调用 `cbh_Serial` 类的 `get()` 方法时,已经实例化了该类的对象,并将其作为第一个参数传递给 `get()` 方法。例如:
```
my_serial = cbh_Serial() # 实例化 cbh_Serial 类
data = my_serial.get() # 调用实例方法 get(),需要传递 self 参数
```
如果你已经正确传递了 `self` 参数,那么可能是 `cbh_Serial` 类的定义有问题,请检查该类的 `get()` 方法的定义是否正确,并与你的代码相符。
相关问题
用汇编语言.使用字符输出一个中文名
使用汇编语言输出中文名可以分为以下几个步骤:
1. 首先需要设置中文字符集,可以使用 BIOS 中断 int 10h,功能号为 11h 来设置。例如:
```
mov ah, 11h
mov al, 0
mov bh, 00h
mov bl, 07h ; 黑底白字
int 10h
```
2. 然后需要将中文字符转换为对应的 ASCII 码,这可以通过查找对应表来完成。例如,中文名 “张三” 的 ASCII 码为 “5fcb” 和 “4e09”,分别对应着 Unicode 编码中的 “张” 和 “三”。
3. 最后,使用 BIOS 中断 int 10h,功能号为 0Eh 来逐个输出字符。例如:
```
mov ah, 0Eh
mov al, 5fh ; 输出字符“张”的 ASCII 码
int 10h
mov al, cbh ; 输出字符“张”的 ASCII 码
int 10h
mov al, 4eh ; 输出字符“三”的 ASCII 码
int 10h
mov al, 09h ; 输出字符“三”的 ASCII 码
int 10h
```
完整的汇编代码如下:
```
org 100h
mov ah, 11h
mov al, 0
mov bh, 00h
mov bl, 07h ; 黑底白字
int 10h
mov ah, 0Eh
mov al, 5fh
int 10h
mov al, cbh
int 10h
mov al, 4eh
int 10h
mov al, 09h
int 10h
mov ah, 4ch
int 21h
```
注意,以上代码使用的是 DOS 操作系统的中断方式输出字符,如果在其它操作系统下运行,需要使用相应的输出函数来替代 int 10h,例如 Windows 可以使用 Win32 API 函数来输出字符。
ORG 0000H AJMP START ORG 0003H AJMP UP ORG 0013H AJMP DOWN ORG 0030H START: SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 MOV R1,#00H MOV R2,#00H MOV A,R1 MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P0,A MOV A,R2 MOV DPTR,#TAB0 MOVC A,@A+DPTR MOV P2,A MOV P1,A SJMP $ UP: MOV A,R2 CJNE A,#09H,AA INC R1 MOV R2,#00 SJMP BB AA: INC R2 BB: MOV A,R1 MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P0,A MOV A,R2 MOV DPTR,#TAB0 MOVC A,@A+DPTR MOV P2,A RETI DOWN: MOV A,R2 CJNE A,#00H,AA1 DEC R1 MOV R2,#09 SJMP BB1 AA1: DEC R2 BB1: MOV A,R1 MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P0,A MOV A,R2 MOV DPTR,#TAB0 MOVC A,@A+DPTR MOV P2,A RETI TAB0: DB 88H,0ebH,4cH,49H,2bH,19H,18H,0cbH,08H,09H TAB1: DB 11H,0d7H,032H,92H,0d4H,98H,18H,0d3H,10H,90H END
这段代码是8051单片机的汇编代码,实现的功能是通过按键控制LED灯的亮灭,其中UP按键控制数字加1,DOWN按键控制数字减1。
代码中使用了中断服务程序来处理按键事件,通过软件消抖的方式来消除按键抖动。在中断服务程序中,通过判断按键状态来判断是UP按键还是DOWN按键,然后分别对数字进行加1或减1的操作,并更新LED灯的状态。
需要注意的是,这段代码中使用了多个中断向量,需要根据具体的硬件环境进行调整,其中TAB0和TAB1是LED灯的显示表,通过DPTR寄存器来访问。