版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机程序设计概览——robogame培训主讲人:虞坤霖yukunlin@单片机是一个复杂的数字电路组合电路YmY2…Yi=fi
(A1,A2
,…,An
)(i=1,2,…,m)组合逻辑电路…Y1A1A2An时序电路组合电路存储电路输入输出下一状态当前状态时钟MCU? CPU?单片机编程的实质一个输出例子A0=1;A0=0;for(;;){
A0=1;
A0=0;
}一个输出例子Delay()
{
wordi;
for(i=0;i<10000;i++);
}for(;;){
A0=1;
Delay();
A0=0;
Delay();
}一个既有输出也有输入例子置B0口为输入,置A7口为输出。
DDRB0=0;
DDRA7=1;
for(;;){
if(B0==1) A7=0;
else A7=1;
}以上两者结合的问题按照以上两种程序设计思想,两个任务都将消耗掉100%的CPU运算资源,如何分配?捕获输入的两种方式开始抄作业();
for(;;){
if(老师没来)
继续抄作业();
else
break;
}
把作业藏起来();启用“同桌中断”();
开始抄作业();
for(;;)
继续抄作业();“同桌中断”服务函数(中断源:同桌)
{
把作业藏起来();
}中断用中断函数解决之前的问题Interrupt_Enable_B0=1;
DDRB0=0;
DDRA7=1;
DDRA0=1;
for(;;){
A0=1;
Delay();
A0=0;
Delay();
}voidinterrupt789light()
{
if(B0==1)A7=0;
else A7=1;
}用中断函数解决之前的问题#defineInterruptVectorB0789voidinterruptInterruptVectorB0light()
{
if(B0==1)A7=0;
else A7=1;
}用轮询解决之前的问题DDRB0=0;
DDRA7=1;
DDRA0=1;
for(;;){
A0=1;
Delay();
A0=0;
Delay();
if(B0==1) A7=0;
else A7=1;
}一个例子:用定时中断产生PWM波voidmain()
{
初始化A0口为输出;
置A0初始输出为0;
初始化定时器(置初始值为3);
使能定时中断;
for(;;);
}voidinterruptInterruptVectorTimerxxx()
{
清除中断标志位;
if(A0==0){
A0=1;
置定时器数据寄存器为7;
}
else{
A0=0;
置定时器数据寄存器为3;
}
}PWM波生成模块voidmain()
{
PWMPER0=100; //PWM0口周期寄存器赋值为100
PWMDYT0=30; //PWM0口高电平寄存器赋值为30
PWMEnable0=1; //PWM0口输出使能
PWMSCL1=10; //置1号时钟分频器分频系数为10
PWM1_CLK=1; //PWM1口时钟采用1号时钟
PWMPER1=10; //PWM1口周期寄存器赋值为10
PWMDYT1=3; //PWM1口高电平寄存器赋值为3
PWMEnable1=1; //PWM1口输出使能
for(;;);
}单片机程序的两种典型结构voidmain()
{
各种初始化;
for(;;){
读取输入A;
读取输入B;
读取输入C;
……
运算;
运算;
……
输出X;
输出Y;
输出Z:
}
}voidmain()
{
各种初始化;
for(;;);
}
中断函数1()
{
……
}
中断函数2()
{
……
}
…………一种退化结构_ voidmain()
{
各种初始化;
输出X;
输出Y;
输出Z:
…………
for(;;);
}着手开始编程根据输出设备和输入设备,确定所需单片机的引脚数量根据计算量大小,确定单片机主时钟频率根据以上两者,确定单片机型号购买单片机、烧写线搭建单片机最小系统(硬件)搭建单片机开发环境(软件)着手开始尝试编写简单程序写初始化写轮询写中断着手开始编程写初始化确定需求,确定所需要使用的模块查阅资料,了解各个模块的原理,了解外设的原理查阅datasheet,了解相关寄存器的含
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论