文档详情

单片机课设PWMCH452LCD12864.doc

发布:2017-01-01约字共26页下载文档
文本预览下载声明
课程设计报告 1. 题目名称 直流电机的PWM调速控制 2. 课设目的 单片机课程设计的目的是为提高学生在单片机应用方面的实践技能,树立严谨的科学作风,培养学生综合运用理论知识解决实际问题的能力。学生通过单片机的硬件和软件设计、安装、调试、资料整理等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。 课设内容 在mdm实验板上,实现直流电机的1-7级pwm调速以及停止功能同时将级数在数码管上显示 课设方案 4.1主要硬件:IAP15F2K61S2单片机,CH452数码管键盘控制、LCD12864、蜂鸣器、L298N直流电机驱动、直流电机。 4.2功能描述:LCD屏幕显示每一级的占空比,按键1~7控制占空比输出,按键8停止键。每次按键按下都会有蜂鸣器发声提醒。 4.3pwm调速原理:控制电机的时候,电源并非连续地向电机供电,而是在一个特定的频率下以方波脉冲的形式提供电能。不同占空比的方波信号能对电机起到调速作用,通过键盘设置占空比控制电机转速。 4.4程序说明: 定义定时器dingshi():初始化设定定时器,选择定时器0工作方式一,定时100us,开放总中断,允许T1定时器中断,启动 定时器0。 中断函数void time1()interrupt 1:重装定时器初值,标志位time代表进入中断的次数,每7次重置,7次为一个输出周期。time与pwm1的值进行比较决定高电平占一个周期的比例。time与sound的值比较 输出一个周期高低电平使无源蜂鸣器发声,sound=0时不响。 延时函数void delay10(void):延时一段时间 蜂鸣器发声void beep():调用此函数即可发声,时间长度为延时函数时间。 主函数main():P05、P06定义L298N驱动电机的转向,初始化LCD,清屏,初始化CH452,执行定时器函数,4条显示指令数码管显示4个0,第一个数码管闪烁,在LCD上显示内容,进入循环: if查询是否有按键按下,有按下时进入,蜂鸣器响一声,读取按键数字并赋给pwm1以及第一个数码管显示pwm级数,判断是否按下停止键,如果停止第一个数码管闪烁。继续判断是否有按键按下。每次if执行结束后pwm1都会得到一个值用于输出。 硬件原理及说明 4.5 CH452功能说明及使用原理 基本功能:可以动态驱动 8 位数码管,具有 BCD 译码、闪烁、移位、段位寻址、光柱译码等功能;同时还可以进行 64键的键盘扫描;本次实验使用4个数码管,2×4键盘,采用4线工作方式。数码管显示与键盘扫描相互独立。 数码管显示驱动: DIG0 至 DIG7动态扫描数码管,SEG0到SEG7输出字形码。数码管驱动有两种工作模式BCD译码模式、非译码方式。CH452 默认情况下工作于不译码方式。因为实验板SEG0到SEG7和数码管abcdefg段不是按顺序连接的,所以无法使用BCD模式,在驱动中加入了0-9和熄灭数码管的字形码数组。 控制方式:4线工作方式,ch452的4个引脚LODA、DIN、DCLK、DOUT。分别为数据加载线,数据输入,数据时钟,键盘中断和数据输出。使用时向ch452发送命令即可控制,操作命令均为 12 位,用过DIN口输入这12位数据,每位数据通过DCLK上升沿读入并存入寄存器中,先输入低位数据,使用for循环输入12位数据。输入完成后,LODA上升沿加载命令。如下图各个操作命令对应的12位数据。 写入相应的命令即可驱动数码管显示。 本实验使用的命令有:设定系统参数、显示参数、闪烁控制、加载字数据0~7、读取按键代码。 键盘扫描:在系统参数设定命令中keyb位置1即可开启键盘扫描,此时DOUT引脚功能为键盘中断输出及按键数据输出。CH452 检测到有效按键并中断,那么单片机先向 CH452 发出读取按键代码命令 0111xxxxxxxxB,位0到位7任意值,所以可以只输入位8到位11的数据即0111,然后从DOUT端口获得按键代码,就能知道是哪一个按键按下了。全部按键代码如下(使用部分是DIG4~DIG7和SEG0~SEG1,八个按键) 控制方式:CH452 所提供的按键代码为 7 位,位 2~位 0 是列扫描码,位 5~位 3 是行扫描码,位 6 是状态码。单片机先向ch452发送读取按键命令,然后从DOUT读取按键代码,每个DCLK上升沿读取一位,共7位。 驱动说明:驱动中有6个子函数 void ch452_init(void); //ch452初始化设置参数 void ch452_write(uns
显示全部
相似文档