论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
1.单片机初始化部分
主程序部分首先对单片机进行初始化,其包括堆栈指针设置;端口的工作方式设置;定时器的预分频系数和初值设置;串行通信的控制寄存器和波特率寄存器的设置;看门狗定时器的周期及初值设置;单片机的地址设置;开全局中断等,其流程图如图2所法。初始化子程序如下:
start:
ldi tmp,$d9 ;设置堆栈指针
out spl,tmp
clr tmp ;设置B口、D口为输入且不带上拉
out ddrb,tmp
out ddrd,tmp
out portb,tmp
ldi tmp,2 ;设置定时器分频系数及定时器赋初值
out timsk,tmp ;定时周期为6.4ms,开定时器中断
ldi tmp,timer T
out tccr0,tmp
ldi tmp,$d8 ;允许接收中断和发送中断
out ucr,tmp
ldi tmp,baud ;设置波特率为9600baud
out ubrr,tmp
ldi tmp,watchT ;设置看门狗定时器的周期及初值
out wdtcr,tmp
ldi tmp,$0a ;设置模块比较器工作方式
out acsr,tmp
ldi r26,address ;给单片机赋初始地址
ldi tmp,$2d
st x ,tmp