网站大量收购独家精品文档,联系QQ:2885784924

嵌入式应用基础 演示文稿 第十二讲.ppt

嵌入式应用基础 演示文稿 第十二讲.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工作原理 了解按键扫描原理(行扫描、列扫描) 识别按键可用查询法或中断 main() { 按键初始化; 按键识别; 数码管初始化; 将识别到的键值在数码管显示; 如用中断则需使能中断及触发方式; } main() { 按键初始化; 按键识别; 串口初始化; 将识别到的键值在串口助手中显示; 如用中断则需使能中断及触发方式; } 设计硬件电路 用I/O口来控制继电器的通断,继电器连接LED,继电器得电,所连接的LED发光;相反,LED灭。 继电器所连接的I/O应该为P1_6,需用跳帽连接 连接到D4的LED不再连至P0_4,直接连接在继电器的NC端,由继电器来控制,继电器的COM连接地,为什么?(此处可采用杜邦线连接) main( ) {连接继电器的I/O初始化; 给继电器引脚一个信号,1为得电,0为不得电; 继电器得电,则点亮LED;不得电,则熄灭LED。 } 在任务2的基础上,继电器是否得电,不是直接给出1或0信号,而是由当前的光照度情况来决定,光照度强,继电器断电,熄灭LED;光照度弱,继电器得电,点亮LED。 使用定时器的PWM输出功能,输出脉冲信号; 调整脉冲信号的占空比,控制LED的亮度;每按下一次按键K1,LED的亮度变亮一点,直到最亮;每按下一次按键K2,LED的亮度变暗一点,直到熄灭。 涉及到的寄存器:T1CTL、T1CC0、T1CC2、T1CCTL2、P2DIR、PERCFG、,PWM 信号的周期通过设置 T1CC0 确定,通道输出的占空比由 T1CCn 确定,其中 n 是 PWM 通道 1 或 2。 对于简单的 PWM,最好使用使用输出比较模式 4 和 5 来生成。 初始化LED; 初始化按键; 初始化定时器T1,设置定时器的周期、工作模式; 设置PWM输出的占空比; 判断是否按键K1按下,如有按下,减小占空比,LED的亮度变暗;相反,如有按键K2按下,增大占空比,LED的亮度变亮。 void Delay(uint k) { uint i,j; for(j=0;jk;j++) for(i=0;i200;i++); } void Initial(void) { 按键初始化; LED初始化; T1CTL = 0X06; T1CC0H = 0X4E; T1CC0L = 0X20; 周期 T1CC2H = 0X27; T1CC2L = 0X10; 占空比 T1CCTL2 = 0X5C; 比较模式 } #include iocc2530.h #define uint unsigned int #define uchar unsigned char //定义控制LED灯的端口 #define LED1 P1_0 //定义LED1为P10口控制 void inittimer(void) { CLKCONCMD = ~0x40; //晶振 while(!(SLEEPSTA 0x40)); //等待晶振稳定 CLKCONCMD = ~0x07; //TICHSPD频CLKSPD不分频 CLKCONCMD |= 0x38; // time1的定时时钟为250KHz P1DIR |= 0x01; PERCFG |= 0x40; //定时器T1的备用位置2 P2SEL = ~0X10; P2DIR |= 0XC0; P1SEL |= 0x01; //P1 timer 通道2 P1_0 //time 1 init T1CC2H = 0x61;//1S 的占空比 T1CC2L = 0xa8; T1CC0H = 0x7a;//1S周期时钟 T1CC0L = 0x12; T1CCTL2 = 0x1c; // 模式选择 T1CTL = 0x06; //250KHz8频 } void main(void) { Initial(); //调用初始化函数 while(1) { if(K1==0) { Delay(300); if(K1==0) { T1CC2H -=0X03; T

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
内容提供者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档