程序设计
发布时间:2012/6/14 20:31:30 访问次数:680
设计好电路只是为数字示EPM7128SQC160-6N波器奠定基础,更重要的是单片机程序的设计。实际上在设计硬件时既要考虑到功能,也要考虑到程序设计的需要。比如对单片机的选型,主要考虑功能、工作速度、端口的数量、程序存储器Flash酌容量、RAM的容量、有没有旺PROM等。综合考虑后选用AVR单片机ATmega16,它的程序存储器Rash为16KB,RAM为1KB,使用时将16MHz的时钟频率超频到20MHz,经过对其资源合理分配,完全可以满足设计要求。
程序的开发环境为ICC-AVR V6.31A,使用C语言编写。程序采用了分时控制、顺序调度的工作方式,没有使用任何中断程序,程序流程图见图7。
下面对主要部分进行分别介绍。
垂直灵敏度控制
按钮SB3、SB4用来调节垂直灵敏度,按动后通过键盘扫描程序可以增加或减小程序中变量Key_ver的值,Ke} ver取值范围为1—9,分别对应9挡垂直灵敏度,通过Key_ver的取值控制继电器K1~K5的工作状态,从而得到相应的灵敏度。
以Kl为例,K1接ATmega16的PBO端口,有关宏定义为:
#define Kl_ON F:ORTB&=(1《PBO)
#define Kl_OFF PORTBl=(1《PBO)
因此,K1_ON表示PBO输出低电平.Kl闭合,触点接通;K1_OFF表示PBO输出高电平,K1释放,触点断开。
设计好电路只是为数字示EPM7128SQC160-6N波器奠定基础,更重要的是单片机程序的设计。实际上在设计硬件时既要考虑到功能,也要考虑到程序设计的需要。比如对单片机的选型,主要考虑功能、工作速度、端口的数量、程序存储器Flash酌容量、RAM的容量、有没有旺PROM等。综合考虑后选用AVR单片机ATmega16,它的程序存储器Rash为16KB,RAM为1KB,使用时将16MHz的时钟频率超频到20MHz,经过对其资源合理分配,完全可以满足设计要求。
程序的开发环境为ICC-AVR V6.31A,使用C语言编写。程序采用了分时控制、顺序调度的工作方式,没有使用任何中断程序,程序流程图见图7。
下面对主要部分进行分别介绍。
垂直灵敏度控制
按钮SB3、SB4用来调节垂直灵敏度,按动后通过键盘扫描程序可以增加或减小程序中变量Key_ver的值,Ke} ver取值范围为1—9,分别对应9挡垂直灵敏度,通过Key_ver的取值控制继电器K1~K5的工作状态,从而得到相应的灵敏度。
以Kl为例,K1接ATmega16的PBO端口,有关宏定义为:
#define Kl_ON F:ORTB&=(1《PBO)
#define Kl_OFF PORTBl=(1《PBO)
因此,K1_ON表示PBO输出低电平.Kl闭合,触点接通;K1_OFF表示PBO输出高电平,K1释放,触点断开。