iap15f2k60s2是我们蓝桥杯8051d单片机开发板上的芯片,但是我们在keil4仿真软件里所引用的头文件是stc15f2k60s2。因为在单片机中,IAP和STC是同一系列产品。IAP和STC的最大区别在于:IAP可以将用户程序中的FLASH当做EEPROM使用,虽然STC不可以当做EEPROM,但是它有独立的EEPROM可以使用(EEPROM是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程)

   蓝桥杯开发版内部结构

 内部资源

  1. 中央处理器(CPU)
  2. 程序存储器(Flash)
  3. 数据存储器(RAM)
  4. 数据Flash存储器
  5. 定时器/计数器
  6. I/O口
  7. 串口通信接口(UART)
  8. 中断系统
  9. SPI接口
  10. 高速A/D转换模块
  11. PWM
  12. 看门狗
  13. 电源监控
  14. 片内RC振荡器

我们现阶段所学的主要内容就是定时器和中断系统的使用那么什么是中断系统

中断系统是为了让CPU具有对外界紧急事件的实时处理能力而设置的。当CPU正在处理某件事时,外界来了一个紧急请求,需要CPU停下当前进程,去处理紧急请求,处理玩紧急请求之后,再返回原进程继续工作。同时在中断之中还有一个重要的东西就是中断的优先级,CPU每次处理事件都是通过优先级来进行。每一个高级别的中断都可以打断低级别的程序进程。

void  InterruptTimer0() interrupt 1//选择定时器0
{
TH0 = 0xfc;
TL0 = 0x67;//定义定时器初值
cnt++;//定义一个变量索引,此时cnt是一个计数器,用于记录中断次数
if(cnt >=1000)//
{
cnt = 0;
flag = 1;
}

上述代码就是一个简单的中断服务代码,通过设置一个周期,通过中断次数来判断是否达到一个周期,从而实现数码管的动态显示。

下面一段是实现数码管计时同时只显示有效位数的代码

#include <STC15F2K60S2.H>
unsigned char code LEDchar[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//定义数码管数值
unsigned char LEDBuff[6] = {0xff,0xff,0xff,0xff,0xff,0xff};//为数码管添加一个缓冲区
unsigned int cnt = 0;
unsigned char flag = 0;
unsigned char i = 0;
unsigned char digits = 1; // 定义有效位数void main()
{
unsigned long sec = 0;
EA = 1;//使能总中断
TMOD = 0x01;//决定定时器工作模式1
TH0 = 0xfc;
TL0 = 0x67;//为定时器赋初值
ET0 = 1;//使定时器0中断
TR0 = 1;//启用定时器0
while(1)
{
if(flag == 1)
{
flag = 0;
sec++;
// 判断有效位数
if(sec >= 10) digits = 2;
if(sec >= 100) digits = 3;
if(sec >= 1000) digits = 4;// 根据有效位数控制LED显示if(digits == 1) {LEDBuff[0] = LEDchar[sec%10];LEDBuff[1] = 0xff;LEDBuff[2] = 0xff;LEDBuff[3] = 0xff;}if(digits == 2) {LEDBuff[0] = LEDchar[sec%10];LEDBuff[1] = LEDchar[sec/10%10];LEDBuff[2] = 0xff;LEDBuff[3] = 0xff;}if(digits == 3) {LEDBuff[0] = LEDchar[sec%10];LEDBuff[1] = LEDchar[sec/10%10];LEDBuff[2] = LEDchar[sec/100%10];LEDBuff[3] = 0xff;}if(digits == 4) {LEDBuff[0] = LEDchar[sec%10];LEDBuff[1] = LEDchar[sec/10%10];LEDBuff[2] = LEDchar[sec/100%10];LEDBuff[3] = LEDchar[sec/1000%10];}}
}}void  InterruptTimer0() interrupt 1
{
TH0 = 0xfc;
TL0 = 0x67;
cnt++;
if(cnt >=1000)
{
cnt = 0;
flag = 1;
}P2 = 0xe0;
P0 = 0xff;
P2 = 0;switch(i)
{case 0:P2 = 0xc0;P0 = 0x08;P2 = 0;P2 = 0xe0;P0 = LEDBuff[0];P2=0;i++;break;case 1:P2 = 0xc0;P0 = 0x04;P2 = 0;P2 = 0xe0;P0 = LEDBuff[1];P2=0;i++;break;case 2:P2 = 0xc0;P0 = 0x02;P2 = 0;P2=0xe0;P0 = LEDBuff[2];P2=0;i++;break;case 3:P2 = 0xc0;P0 = 0x01;P2 = 0;P2=0xe0;P0 = LEDBuff[3];P2=0;i=0;break;default:break;
}}

STC15F2K60S2单片机相关推荐

  1. STC15F2K60S2单片机入门:编写头文件

    单片机入门:编写头文件 引言 具体操作 引言 软件知识小白,分享单片机入门的一些经验知识 问题描述 在STC15F2K60S2单片机开发使用过程中,常常会遇到使用单片机多种模块的情况.比如,同时使用D ...

  2. STC15F2K60S2单片机的串口通信程序及相关知识

    一.STC15F2K60S2单片机简介 中国深圳宏晶STC系列单片机是2005年推出中国本土的第一款具有全球竞争力的,且与MCS-51兼容的STC系列单片机.它完全兼容51单片机,是新一代增强型单片机 ...

  3. stc15系列c语言pwm编程,stc15f2k60s2单片机 pwm程序 可调占空比

    #include #define u8 unsigned char #define u16 unsigned int sbit PWM = P1^0; extern void InitLcd1602( ...

  4. 蓝桥杯单片机基础学习00_2

    三.功能模块 4.中断系统 中断系统 1)中断的概念:这是大家需要在脑子里有的一个印象,我们大致可以将中断描述成CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生):CPU暂时中 ...

  5. 【单片机】电子音乐播放器的设计与制作(说明书)

    前   言         这是本人在大学期间的<单片机控制技术>课程中,所作的结课作业项目,而我也正想要一个电子音乐播放器,而且这样设计的音乐播放器可以发出宜人的音乐旋律,能给生活增加不 ...

  6. 《蓝桥杯CT107D单片机竞赛板》:蜂鸣器模块

    蜂鸣器模块 实验简介 实验原理图 实验原理 实验程序 关闭蜂鸣器与继电器 简易报警器原理 实验简介 采用软件方式,使得CT107D单片机竞赛板上的蜂鸣器和继电器分别不发声和不吸附. 实验原理图 实验原 ...

  7. 单片机之基础编程 流水灯(二)

    我们在知道STC-B板的焊接一系列过程之后,我们现在就将使用一系列的代码及原理来使用我们的板子,我们就最先来接触最简单的流水灯案例吧 流水灯案例 我们可以先来看 实验板图片: 实验现象 其步骤为: 下 ...

  8. STM32F103单片机详细介绍

    一.简介 STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列.除了被我们熟知的S ...

  9. 微机原理及应用->STC25F2K60S2单片机增强型8051内核

    STC25F2K60S2单片机增强型8051内核 基本概念 增强型8051 本章英文符号 历史 功能概述 CPU结构 运算器 控制器 存储结构 程序存储器(程序Flash) 片内基本RAM 总结 并行 ...

最新文章

  1. 谈谈你对面向过程与面向对象的理解
  2. php数组删除重复的,从PHP中的数组中删除重复的元素
  3. 失败如何助你升入最高管理层
  4. ubuntu ip设置
  5. 一款简约图库开源代码
  6. CKEditor的使用-编辑文本
  7. modSecurity规则学习(四)——规则指令编写
  8. ipa apk.cn dbl.html,前端解析ipa、apk安装包信息 ―― app-info-parser
  9. 方阵的迹(trace)及其微分(导数)
  10. repeat mysql翻译_MySQL数据库中系统函数repeat有哪些功能呢?
  11. Day11 JaseSE File类的使用
  12. 【转】8段数码管引脚图,8段数码管动态显示详解
  13. 联想重装系统去掉保护_联想硬盘保护系统,小编教你联想硬盘保护系统怎么用...
  14. 手写MyBatis,纯手工打造开源框架(第三篇:运筹帷幄)
  15. 使用000webhost.com免费主机搭建一个WordPress站点
  16. Win10+Ubuntu18.04双系统安装配置教程(二)——磁盘分区
  17. 零成本搭建实验室、课题组网站教程(基于uniapp)
  18. day17-面向对象作业
  19. 数据治理工作的几种推进套路
  20. HTML5(李炎恢)学习笔记二 ------------- HTML5的结构

热门文章

  1. matlab读写xlsx文件和txt文件
  2. 《自然语言处理(哈工大 关毅 64集视频)》学习笔记:第一章 自然语言处理概论
  3. Jquery(终极完整版)
  4. java 解决跨越问题
  5. 图像局部特征学习(笔记1之SUSAN角点检测)
  6. DIV布局——化妆品商城-功能齐全(43页) HTML+CSS+JavaScript web大作业 静态网页
  7. JDBC编程(JDBC的使用)
  8. 工时管理:按工作时间还是完成的任务来跟踪员工的生产力?
  9. EAS F7控件弹出表格隐藏某列
  10. 中国区首发 | 规模化敏捷RTE(企业级敏捷教练/发布火车工程师)国际认证课程