下面就是PSOC1实验流程图和设计和说明
1.闪烁灯
1、实验任务
如图1.1.1所示:在P2.1端口上接一个发光二极管D8,使D8在不停地一亮一灭,一亮一灭的时间间隔为0.5秒。
2、电路原理图
图1.1.1
3、硬件连线 EasyPSOC-8C27443板子中已经将D8连接到UI的P21口。
4、程序设计内容
(1)延时程序的设计方法
PSOC内部指令执行的时间是很短,数量大多是微秒级;要实现0.5S的延时,我们可以利用内部8位定时器模块实现0.5S的硬件延时,也可以用常见软件延时实现,不过要是是实现准确的延时就需要利用汇编程序编程;为了便于理解学习,我们才有C语言编程。软件延时和硬件实现延时的差别在于软件延时占用的软件开销即占用CPU的时间较多,而硬件延时(定时器模块延时)软件开销小CPU占用时间短。
定时器延时实现方法:8位定时器模块的配置为每个0.5S产生一次中断,在中断服务程序中将LED的状态改变,即由亮变暗或由暗变亮。(2).输出控制
如图1.1.1所示,当P2.1端口输出高电平,即P2.1=1时,根据LED的单向导电性可知,这时LED D8熄灭;当P2.1端口输出低电平,即P2.1=0时,D8亮;我们使用PSOC内部LED模块的AP1函数LED_On()使P2.1端口输出高电平,LED_Off()使P1.0端口输出低电平。
5、程序框图
程序流程图,借用周立功博客中说到,再简单的也要注重思路。所以即使简单的LED的灯闪烁也需要绘制流程图,养成好的编程习惯。
流程图准备用visio软件,网上下载没有安装成功,现在先简单表述,安装好了再上传了。
开始(初始化:开启全局和8位定时器中断)—>启动定时器——>定时器中断服务程序改变P2.1输出电平。
6、模块配置信息
定时器输出周期=
即输出频率F=FsourceClockPeriod/(PeriodRegisterValue+1)
8位定时器配置如下:
IO口的配置:
利用PSOC内部的LED模块设置P2.1,实现普通IO口的操作。
LED配置选择activelow即低电平驱动模式,P2.1为低电平是LED亮而高电平是灭。
|