$regfile="m168def.dat" '表示单片机为atmega168$crystal= 8000000 '定义的是晶振8MHzConfig Timer1 =Timer, Prescale=1 '配置的是定时器,分频为1$baud = 19200 ' use baud rate 定义的波特率 19200bps 1秒 发送或接收19200位数据 $hwstack = 32 ' default use 32 for the hardware stack 默认的硬件堆栈$swstack = 10 ' default use 10 for the SW stack 默认的软件堆栈$framesize = 40 ' default use 40 for the frame space 默认的数据帧的大小Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 '定义串口配置,Dummy表示波特率按照上面的设置Open "com1:" For Binary As #1 '打开串口,作为二进制输入,用#1表示 这是BASIC语言的标准表达方式Enable Interrupts '使能中断Enable Ovf1 '使能定时器中断Enable URXC '使能串口接收中断On URXC Receive_isr '当串口接收中断的时候,执行Receive_isr 这个是串口中断程序On Ovf1 Overflow_isr '与上面的相同,是在定时器溢出的时候,执行相应中断程序dim b1 as byte '定义一个字符型的变量Ddrc=&Hff '将单片机的PORTC口设置为输出Timer1=65130 '定时器的初值设定Print "Hello" '通过串口输出Dim Bb1 As Byte '定义另一个变量Do '主循环的开始 Nop '什么也不做 if Bb1=&h31 then '当Bb1为 十六进制31时候,执行 Print #1 , "test serial port" '向串口发送字符串 Print #1 , Bb1 '向串口发送字节 Bb1=0 '给变量赋值为0 end if '结束如果的判断不Loop '主循环的结束EndOverflow_isr:'定时器溢出的中断处理程序 Portc.0=not Portc.0 '把PORTC的第一个位输出取反,高电平转换为低电平,反之亦然 Timer1=65130 '给定时器一个新的初始值Return '结束返回Receive_isr: '串口接收中断 Inputbin Bb1,1 '将接收数据存储到 Bb1变量中 Portc.1=not Portc.1 '把PORTC的第二个位输出取反,高电平转换为低电平,反之亦然Return
$regfile="m168def.dat" '表示单片机为atmega168$crystal= 8000000 '定义的是晶振8MHzConfig Timer1 =Timer, Prescale=1 '配置的是定时器,分频为1$baud = 19200 ' use baud rate 定义的波特率 19200bps 1秒 发送或接收19200位数据 $hwstack = 32 ' default use 32 for the hardware stack 默认的硬件堆栈$swstack = 10 ' default use 10 for the SW stack 默认的软件堆栈$framesize = 40 ' default use 40 for the frame space 默认的数据帧的大小Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 '定义串口配置,Dummy表示波特率按照上面的设置Open "com1:" For Binary As #1 '打开串口,作为二进制输入,用#1表示 这是BASIC语言的标准表达方式Enable Interrupts '使能中断Enable Ovf1 '使能定时器中断Enable URXC '使能串口接收中断On URXC Receive_isr '当串口接收中断的时候,执行Receive_isr 这个是串口中断程序On Ovf1 Overflow_isr '与上面的相同,是在定时器溢出的时候,执行相应中断程序dim b1 as byte '定义一个字符型的变量Ddrc=&Hff '将单片机的PORTC口设置为输出Timer1=65130 '定时器的初值设定Print "Hello" '通过串口输出Dim Bb1 As Byte '定义另一个变量Do '主循环的开始 Nop '什么也不做 if Bb1=&h31 then '当Bb1为 十六进制31时候,执行 Print #1 , "test serial port" '向串口发送字符串 Print #1 , Bb1 '向串口发送字节 Bb1=0 '给变量赋值为0 end if '结束如果的判断不Loop '主循环的结束EndOverflow_isr:'定时器溢出的中断处理程序 Portc.0=not Portc.0 '把PORTC的第一个位输出取反,高电平转换为低电平,反之亦然 Timer1=65130 '给定时器一个新的初始值Return '结束返回Receive_isr: '串口接收中断 Inputbin Bb1,1 '将接收数据存储到 Bb1变量中 Portc.1=not Portc.1 '把PORTC的第二个位输出取反,高电平转换为低电平,反之亦然Return