IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 第三题通过单片机中断系统利用定时器0完成,定时1~9秒时流水灯循环左移动,定时10~19到流水灯循环右移,定时大于等于20秒时灯全亮 -> 正文阅读

[嵌入式]第三题通过单片机中断系统利用定时器0完成,定时1~9秒时流水灯循环左移动,定时10~19到流水灯循环右移,定时大于等于20秒时灯全亮

通过单片机中断系统利用定时器0完成,定时1~9秒时流水灯循环左移动,定时10~19到流水灯循环右移,定时大于等于20秒时灯全亮
P0---------J4
实验代码:
#include<reg52.h> // 头文件
#include<intrins.h> // 头文件
#define uchar unsigned char// 替换变量
uint count=0;//定义全局变量
uchar a;
uint i;
void mDelay(uint Delay)//将函数延时
{
?? ?for(;Delay>0;Delay--)//开始循环从>0时开始自减
?? ?for(i=0;i<110;i++);//延长循环时间
}
void main()
{
?? ?TMOD=0x00;//配置定时器,定时器为0,工作方式为0
?? ?TH0=(8192-5000)/32;//定5ms 高8位
?? ?TL0=(8192-5000)%32;//定5ms 低5位
?? ?EA=1;//允许中断总控制
?? ?ET0=1;//允许中断定时器
?? ?TR0=1;//开始循环
?? ?while(1)
?? ?{
?? ?;//等待5ms后中断子程序
?? ?}
}
void to() interrupt 1
{
?? ?TH0=(8192-5000)/32;//定时器清零
?? ?TL0=(8192-5000)%32;
?? ?count++;//记录子程序的次数
?? ?if(count>=200&&count<=1800)//如果次数在200次到1800次之间说明到了1~9秒
?? ?{
?? ??? ?a=0xfe;
?? ??? ?for(i=0;i<8;i++)//实现8只流水灯的循环
?? ??? ?{
?? ??? ??? ?P1=_crol_(a,1);//实现流水灯向左一次流水点亮
?? ??? ??? ?a=P1;
?? ??? ??? ?mDelay(10);//流水灯延时10ms
?? ??? ?}
?? ?}
?? ?if(count>2000&&count<3800)// 如果次数在2000次到3800次之间说明到了10~19秒?? ?{
?? ??? ?for(i=0;i<8;i++)//实现8只流水灯的循环?? ??? ?
{
?? ??? ??? ?P1=_cror_(a,1);// 实现流水灯向左一次流水点亮
?? ??? ??? ?a=P1;


?? ??? ??? ?mDelay(10);// 流水灯延时10ms
?? ??? ?}
?? ?}
?? ?if(count>=4000)// 如果次数大于3800次说明时间大于等于20秒?? ?{
?? ??? ?P1=0x00;//流水灯全亮
?? ?}
}
0现象描述:核心板闪烁周期为1s,P1.1引脚输出90-112Hz的窄脉冲
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1 ^ 0;
sbit OUTPIN = P1 ^ 1;
uchar T_Count = 0;
void main()
{
? ? TMOD = 0x00; //定时器0 工作方式0
? ? TH0 = (8192 - 5000) / 32; //5ms 定时
? ? TL0 = (8192 - 5000) % 32;
? ? IE = 0x82; //允许T0 中断
? ? TR0 = 1;
? ? while(1);?? ?//等待中断
}

void LED_Flash() interrupt 1
{
? ? TH0 = (8192 - 5000) / 32; //恢复定时初值
? ? TL0 = (8192 - 5000) % 32;
?? ? ?OUTPIN = ~OUTPIN;
? ? T_Count++;
? ? if(T_Count >= 200) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//如果到了200次,说明1s到了
? ? {
? ? ? ? T_Count = 0; ? ? ? ? ? ? ? ? ? ? ? ??? ??? ??? ??? ?// 然后把T_Count清0重新再计200次
? ? ? ? LED = ~LED; ? ? ? ? ? ? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//让核心板LED取反
? ? }
}
1核心板LED闪烁周期为50ms,建议使用示波器观察P1^0输出的方波信号
#include <reg51.h> ? ? ?
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0;
uchar T_Count = 0;
void main()
{
?? ?uchar T_Count = 0;
?? ?TMOD = 0x01; //定时器0 工作方式1
?? ?TH0 = (65536 - 50000) / 256; //50ms 定时
?? ?TL0 = (65536 - 50000) % 256;
?? ?IE = 0x82; //允许T0 中断
?? ?TR0 = 1;
?? ?while(1);
}
//T0 中断函数
void LED_Flash() interrupt 1
{
?? ?TH0 = (65536 - 50000) / 256; //恢复初值
?? ?TL0 = (65536 - 50000) % 256;
?? ?LED = ~LED;

}


P0---------J4
2现象描述:LED1闪烁周期为250ms,建议使用数字存储示波器观察P1.0输出的脉冲
#include <reg52.h> ? ?
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED = P1^0;
sbit OUTPIN = P1^1;
uint T_Count = 0;
void main()
{
?? ?uchar T_Count = 0;
?? ?//定时器0 工作方式2
?? ?TMOD = 0x02;?
?? ??? ?//250us 定时
?? ?TH0 = 256 - 250;?
?? ?TL0 = 256 - 250;
?? ?IE = 0x82; //允许T0 中断
?? ?TR0 = 1;
?? ?while(1);
}
//T0 中断函数
void LED_Flash() interrupt 1
{
?T_Count++;
?? ?OUTPIN =~OUTPIN ;
? ? if(T_Count >= 1000) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//如果到了1000次,说明250ms到了
? ? {
? ? ? ? T_Count = 0; ? ? ? ? ? ? ? ? ? ? ? ??? ??? ??? ??? ?// 然后把T_Count清0重新再计200次
? ? ? ? LED = ~LED; ? ? ? ? ? ? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//让核心板LED取反
? ? }
}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 23:05:40  更:2021-12-28 23:06:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 15:28:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码