当前位置:文档之家› 单片机应用系统设计实例

单片机应用系统设计实例


;
} while(t--);
}
2、用8个LED发光二极管,设计一 个循环闪烁的流水灯。
A
7
2.1硬件设计
A
8
2.2软件设计
1)初始化
51头文件、宏定义
2)主程序,即main()程序
灯的循环闪亮控制
3)延时功能
延时子程序设计
A
9
如何进行灯的循环闪亮控制? intrins.h 内部函数库
2)主程序,即main()程序
灯的循环闪亮控制
中断初始化
3)延时功能
4)中断服务程序设计
A
20
3.2软件设计
中断初始化
触发方式设置 中断允许控制
中断服务程序设计
A
21
中断初始化 IT0=1; EA=1; EX0=1;
A
22
中断服务程序
函数名()interrupt n [using m ] { }
定时500ms,需要中断10次。
A
28
3)编写初始化程序
TMOD=0X01; TH0=0X3C; TL0=0XB0; EA=1; ET0=1; TR0=1;
A
29
4)编写中断服务程序
Void timer0(void) interrupt 1
A
15
2)日常中断的例子
你正在专心看书, 突然电话铃响,于是 你记下正在看的书的 页数,去接电话,接 完电话后再回来接着 看书。
A
16
3)计算机中的中断概念
▪中断是指由于某种随机事件(甲方)
的发生,计算机(乙方)暂停现行程 序的运行,转去执行另一程序,以处 理发生的事件,处理完毕后又自动返 回原来的程序继续运行。
A
18
IE EA — ET2 ES ET1 EX1 ET0 EX0
EX0/EX1位: 分别是INT0/INT1的中断允许控制位: =0 时禁止中断; =1 时允许中断。
EA:总的中断允许控制位(总开关): =0 时禁止全部中断;=1 时允许中断。
A
19
3.2软件设计
1)初始化
51头文件、宏定义
▪将能引起中断的事件称为中断源。
▪CPU现行运行的程序称为主程序。
▪处理随机事件的程序称为中断服务 子程序。
A
17
4)相关的特殊功能寄存器
TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。
IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效.
(包含变量循环移位、位操作等函数) 需要将该函数包含进来,同时对函数
原型进行声明。
A
10
#include <INTRINS.H> uchar _crol_(uchar a,uchar n);
/*函数原型,左循环*/
uchar _cror_(uchar a,uchar n);
/*函数原型,右循环*/
A
26
1)设置定时器工作方式
TMOD GATE C/T M1 M0 GATE C/T M1 M0
0 00 0 0 001
A
27
2)计算初始值
晶振12Mhz
1个机器周期:Tp=12 1 1s
12106
定时50ms,需要计数: 50103 50000
1
定时器初始值:
6 5 5 3 6 5 0 0 0 0 1 5 5 3 6 0 x 3 C B 0
A
11
#include <INTRINS.H> uchar _crol_(uchar a,uchar n); uchar _cror_(uchar a,uchar n);
/*函数原型*/ /*函数原型,右循环*/
void main(void) {
uint a = 0xfe; while(1) {
P1=a; delay(5000); a=_crol_(a,1); } }
公选课
——《单片机基础及应用》
A
1
设计实例
1、用1个LED发光二极管,设计一个循环闪烁的指示 灯。
2、用8个LED发光二极管,设计一个循环闪烁的流水 灯。
3、通过设置中断,改变灯的循环方向,控制灯的亮灭。 4、通过定时,精确控制P1.0闪烁500ms。 5、以秒为单位,用LED数码管显示当前计数值。
P1=0x0;
delay(5000);
P1=0x0ff;
delay(5000);
do
{
P1=a;
delay(5000);
a=_cror_(a,1);
}while(i--);
}
4、通过定时,精确控制闪烁 500ms。
针对任务一进行操作。
A
25
使用定时器T0 1)设置定时器工作方式 2)计算初始值 3)编写初始化程序 4)编写中断服务程序
Байду номын сангаас
3、通过设置中断,改变灯的循环方 向,控制灯的亮灭。
A
13
3.1硬件设计
A
14
1)中断的概念
中断技术是计算机中一项很重要的 技术。
中断系统的功能是为了解决快速 CPU和慢速外设间的矛盾,它由软 件和硬件组成。
有了中断系统,能使计算机的功能 更强、效率更高、使用更灵活。
51单片机系统有5个中断源。
void delay(uint t); //声明函数
void main(void)
{
while(1)
{
P1_0=0;
delay(5000);
P1_0=1;
delay(5000);
}
}
void delay(uint t) //延时0.1*t毫秒
{
uint i;
do
{
for(i=0;i<10;i++)
A
2
1、用1个LED发光二极管,设计一 个循环闪烁的指示灯。
如何设计硬件和软件?
A
3
1.1硬件设计
注意:在接下来的仿真中,省略时钟及复位电路。
A
4
1.2软件设计
1)初始化
51头文件、宏定义
2)主程序,即main()程序
灯的亮灭控制
3)延时功能
延时子程序设计
A
5
#include <at89X52.h> #define uint unsigned int #define uchar unsigned char
Void int0(void) interrupt 0 /* 外部中断0的服务函数定义,使用第二组工
作寄存器组*/
A
23
void int0(void) interrupt 0
{
uchar a=0xfe,i=16;
P1=0x0;
delay(5000);
P1=0x0ff;
delay(5000);
相关主题