串口中断和定时器中断_BASCOM 串口中断程序,加注释

$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
e7ac219fe30a20c8a547c87a8fa72f9f.png
$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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值