串口中断和定时中断,stc89c52最小系统,编程问题

STC89C52定时器使用方法
STC89C52定时器使用方法
定时器/计数器0 和定时器/计数器1 都可以在方式0、方式1、方式2 工作,而方式3
只有前者才能
当TMOD 中M1、M0 都为0 时,T/C 工作在方式0。
方式0 为13 位的T/C,由TH 提供高8 位,TL 提供低5 位,注意TL 的高3 位是无效的,计数溢出
值为2 的13 次方=8192,启动该计数器需要设置好计数初值。
当C/-- T该位为0 时,T/C 为定时器,振荡源12 分频的信号作为计数脉冲;当C/-- T该位为1 时,T/C
为计数器,对外部脉冲输入端的T0 或T1 引脚进行脉冲计数。
计数脉冲能否加到计数器上,受启动信号的控制。当GATE=0 时,只要TR=1,则T/C 启动;当GATE=1
时,启动信号受到TR 与INT 的双重控制。
T/C 启动后立即加1 计数,当13 位计数满时,TH 向高位进位。此进位将中断溢出标志TF 置位即
TF=1,产生中断请求,表示定时时间或计数次数到达。若T/C 开中断(ET=1)且CPU 开中断(EA=1),
则当CPU 自动转向中断服务函数时,TF 自动清零,不需要人工软件清零。
当TMOD 中M1、M0 为0、1 时,T/C 工作在方式1。
方式1 与方式0 基本相同,唯一不同的是方式0 是13 位计数方式,方式1 是16 位计数方式,TH 和
TL 都同时提供8 位(方式0 时TL 只提供低5 位,高3 位无效),计数溢出值为2 的16 次方=65536。
当TMOD 中M1、M0 为1、0 时,T/C 工作在方式2。
方式2 是8 位的可自动重装载的T/C,满计数值为2 的8 次方=256。在方式0 和方式1 中,当计数
满后,若要进行下一次定时/计数,必须通过软件向TH 和TL 重新装载预置计数值。方式2 中TH 和TL 被
当作两个8 位计数器。技术过程中,TH 寄存8 位初值并保持不变,由TL 进行8 位计数。计数溢出时,除
产生溢出中断请求外,还自动将TH 中初值重装到TL,即重装载。除此之外,方式2 也同方式0。
方式3 只适合于T/C0。当T/C0 工作在方式3 时,TH0 和TL0 成为两个独立的计数器。这时,TL0
可作定时器/计数器,占用T/C0 在TCON 和TMOD 寄存器中的控制位和标志位;而TH0 只能作定时器使用,
占用T/C1 的资源TR1 和TF1。在这种情况下,T/C1 仍可用于方式0/1/2,当不能够使用中断方式。
只有将T/C1 用作串行口的波特率方式器时,T/C0 才工作在方式3,以便增加一个定时器。
5. T/C2的工作方式
定时器/计数器2 包含一个16 位重载方式,T/C2 在计数溢出后,自动在瞬间重装载(像8 位自动重
载方式2)。自动重载可由外部引脚T2EX 的负跳变开始,这样外部引脚用于产生和其他硬件计数器的同步
信号。T/C2 可以看作看门狗或定时溢出的定时器。
T/C2 还有捕获方式。把瞬时计数值传到另外的CPU 可读取的寄存器对(RCAP2H、RCAP2L)。这样,
在读的过程中,两个字节的计数值无波动的危险。对于快速变化的计数,比如计数值在读取高字节时是16FF
时,到读取低字节时已变到1700,结果却得到1600。若16FF 瞬间捕获到另外的寄存器,则可以在CPU
空闲的时候取到16 和FF。
#include "stc.h" //加载stc.h 头文件
unsigned char i=0; //声明变量i
void main(void) //主函数,程序是在这里运行的
TH0=()/256; //计数寄存器高8 位
TL0=()%6; //计数寄存器低8 位
TMOD=0x01; //工作方式为16 位定时器
ET0=0x01; //允许T/C0 中断
EA=1; // 全部中断允许
TR0=1; // 启动T/C0 运行
while(1) // 进入死循环
if(i&7)i=0; //若i&7,则i=0
void Timer0IRQ(void) interrupt 1 //中断服务函数
TH0=()/256; //计数寄存器高8 位重新载入
TL0=()%6; //计数寄存器低8 位重新载入
P2=1&&i; //进入位移操作,熄灭相对应位的LED
i++; //i 自加1
T/C0 的初始化在main 函数中进行,在while(1)死循环当中,只有对i 变量检测,对LED
操作主要放置在T/C0 的中断服务函数Timer0IRQ,即P2=1&&i 就是对LED 灯进行操作。
很奇怪,main()函数里面基本对单片机的操作什么都没有,只有对变量i 的检测操作,几乎是空载
运作,但是为什么流水灯还是能够运行呢?那么答案只能有一个,Timer0IRQ()中断服务函数能够脱离主
函数独立运行。
大家很自然地想到为什么Timer0IRQ()函数独立于main()函数还能够运行,联系到在PC 机的C 语
言的编程是根本不可能的事,因为所有的运行都必选在main()函数体中运行。
只能告诉大家不同的平台自然有所不同,它们之间的不同必然会有各自的优点,还有例如AVR、ARM
单片机编程同样是“主程序+中断服务函数”组合的架构,更何况是8051 系列单片机编程。当然我们学会
了8051 系列单片机的编程,自然而然在AVR、ARM 或者更加多的单片机中的编程中得心应手,感觉就是
以不变应万变
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。21ic官方微信
后使用快捷导航没有帐号?
查看: 2125|回复: 4
STC89C52外部中断问题
&&已结帖(0)
主题帖子积分
初级技术员, 积分 87, 距离下一级还需 13 积分
初级技术员, 积分 87, 距离下一级还需 13 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级技术员, 积分 87, 距离下一级还需 13 积分
初级技术员, 积分 87, 距离下一级还需 13 积分
当给INT0高电平时,竟然触发了中断
#include &reg52.h&
#define unchar unsigned char
#define unint unsigned int
#define _10s 56320
#define _15s 51712
#define _20s 47014
#define _30s 37888
unchar sbuff[5];
sbit R_EN=P2^4;
void delay();
void shot_delay();
void init();
void timer0_confi(unint x);
void main()
& & & & init();
& & & & while (1)
& & & &&&{
& & & && & if(flag==1)
& & & && & {
& & & && & & & & && & flag=0;
& & & & & & & && & for(k=0;k&5;k++)
& & & & & & & && & {
& & & & & & & & & & & && &&&SBUF=sbuff[k];
& & & & & & & & & & & && &&&while(!TI);
& & & & & & & & & & & && &&&TI=0;
& & & & & & & && &&&}
& & & & & & & && &
& & & & & & & && &&&if (sbuff[0]==0x01)
& & & & & & & & & & & & {
& & & & & & & & & & & & & & & &
& & & & & & & && && &&&switch(sbuff[1])& & & & & & & &
& & & & & & & & & & & & & & & & {
& & & & & & & & & & & & & & & & & & & & case 0x01: time=_10s;
& & & & & & & & & & & & & & & & & & & & case 0x02: time=_15s;
& & & & & & & & & & & & & & & & & & & & case 0x03: time=_20s;
& & & & & & & & & & & & & & & & & & & & case 0x04: time=_30s;
& & & & & & & & & & & & & & & & & & & & default:& &time=_15s;
& & & & & & & & & & & & & & & & }
& & & & & & & & & & & && & timer0_confi(time);
& & & & & & & & & & & && & switch(sbuff[2])
& & & & & & & & & & & && & {
& & & & & & & & & & & & & & & & & & & & case 0x02:& & & & P1=0x0A;
& & & & & & & & & & & & & & & & & & & & case 0x01:&&P1=0x10;cnt=0;
& & & & & & & & & & & & & & & & & & & & default:P1=0x10;
& & & & & & & & & & & && & }
& & & & & & & & & & & && & ET0=1;
& & & & & & & & & & & && & TR0=1;
& & & & & & & & & & & &
& & & & & & & & & & & & }
& & & && && & }
& & & && &}& & & &
void init()
& & & & P1=0x10;& & & &
& & & & SCON=0x50;
& & & & TMOD=0x21;//定时器0工作在方式1,定时器1工作在方式2
& & & & TH1=0xFD;//波特率为9600
& & & & TL1=0xFD;
& & & & ET1=0;& & & &&&//禁止定时器1中断
& & & & TR1=1;& & & &&&//打开定时器1
& & & & TR0=0;& & & & //定时器0
& & & & ET0=1;&&//开放定时器0中断
& & & & R_EN=0; //485接收使能
& & & & shot_delay();
& & & & EA=1;//开总中断
& & & & ES=1;//开串口中断
& & REN=1;&&//串口允许接收
& & & & EX0=0;//关闭外部中断0
& & & & shot_delay();
& & & & EX0=1;//打开外部中断
& & & & IE0=0;//关闭中断请求
& & & & IT0=1;//选择下降沿触发外部中断0
& & & & for (i=0;i&5;i++)//初始化接收缓存
& & & & & & & & & & & & sbuff[i]=0x00;
& & & & time=_30s;
void int0() interrupt 0
& & & & EX0=0;
& & & & P1=0x0A;
& & & & ET0=1;
& & & & TR0=1;
& & & & IE0=0;
主题帖子积分
初级技术员, 积分 87, 距离下一级还需 13 积分
初级技术员, 积分 87, 距离下一级还需 13 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级技术员, 积分 87, 距离下一级还需 13 积分
初级技术员, 积分 87, 距离下一级还需 13 积分
请问有谁知道这是为什么吗?
主题帖子积分
资深工程师, 积分 10256, 距离下一级还需 9744 积分
资深工程师, 积分 10256, 距离下一级还需 9744 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
资深工程师, 积分 10256, 距离下一级还需 9744 积分
资深工程师, 积分 10256, 距离下一级还需 9744 积分
不会吧?那保持高电平,不是一直中断了?这么老的MCU,还是检查下程序吧
主题帖子积分
初级技术员, 积分 87, 距离下一级还需 13 积分
初级技术员, 积分 87, 距离下一级还需 13 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
初级技术员, 积分 87, 距离下一级还需 13 积分
初级技术员, 积分 87, 距离下一级还需 13 积分
coody 发表于
不会吧?那保持高电平,不是一直中断了?这么老的MCU,还是检查下程序吧
后来发现是电平给错了。。
主题帖子积分
助理工程师, 积分 1499, 距离下一级还需 501 积分
助理工程师, 积分 1499, 距离下一级还需 501 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
助理工程师, 积分 1499, 距离下一级还需 501 积分
助理工程师, 积分 1499, 距离下一级还需 501 积分
一片天空,
技术高手奖章
人才类勋章
时间类勋章
精英会员奖章
等级类勋章
奔腾之江水
发帖类勋章
技术领袖奖章
人才类勋章
时间类勋章
技术奇才奖章
人才类勋章
欢快之小溪
发帖类勋章
时间类勋章
社区建设奖章
等级类勋章
热门推荐 /4君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于STC89C52的定时器
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口恩智浦半导体大中华区产品市场经理陈筠仪表示,恩智浦AC/DC快充解决方案在充...
智能汽车会刊
如今,物联网浪潮已然席卷至汽车电子产业,发动机控制系统、底盘...
蓝牙技术联盟亚太区市务高级经理李佳蓉女士表示:“面对IoT领域的机会,蓝牙...
第三届·无线通信技术研讨会
2015o第二届中国IoT大会
ETFo智能硬件开发技术培训会
ETFo第三届&消费电子电池管理系统技术论坛
ETFo智能安防技术论坛
成都&智能工业创新应用论坛
移入鼠标可放大二维码
一种简单实用的STC89C52RC编程器设计方案
来源:电子技术网
作者:黄同,邵思飞日 11:35
[导读] 本文提出了一种基于CH340T的单片机编程器设计方案。该编程器主要由单片机子系统、CH340T 转换系统和供电系统组成。它通过USB 接口与PC 上位机通讯,用户只需要通过PC 上位机GUI 的简单操作,就可以实现对STC 89C/S51XX/52XX 等系列单片机的擦除、编程、校验和加密。经过STC89C52RC 等单片机反复测试,该编程器功能稳定、速度快、价格低和易用性强等优点。
  1 引言
  STC(宏晶科技)公司推出的STC 89C/S 51XX/52XX 等系列单片机,具有价格便宜、无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等优点,其指令代码完全兼容传统8051 单片机,片内资源非常丰富,且均内置可反复擦写的Flash 存储器,并提供了ISP(In-System Programming)编程模式。STC89C52RC 作为STC 89C/S51XX/52XX 系列单品机的一个典型代表,其特征主要有,8K 字节可编程闪烁存储器、1000 次写/ 擦循环寿命、10 年的数据保留时间、三级程序存储器锁定、512 内部RAM、32 可编程I/O 线、两个16 位定时器/ 计数器、5 个中断源、可编程串行通道、低功耗的闲置和掉电模式以及片内振荡器和时钟电路等。因而这款功能强大和超高性价比的单片机,在国内应用极为广泛。
  ISP 在线编程是一种彻底颠覆了传统的编程模式的技术,它不会损坏芯片的引脚,同时下载速度很快,从而缩短了设计时间,降低了研发成本、加速了产品的上市,大大提高了工作效率。一般编程器的采用方法都是使用PL2303、CP2102、FT232 等主控芯片,但往往成本较高,而且有的芯片稳定差,极少数芯片固件版本有Bug,鉴于此,本文提出以国产CH340T 芯片为主体的ISP 编程器的设计方案,经过STC89C52RC 等芯片反复测试,功能稳定,性能出色。
  2 系统硬件设计
  2.1 系统总体结构图
  系统总体结构图如图1 所示。其中USB 供电和数据传输模块主要负责为单片机和CH340T 等模块供电,并将来自计算机的USB串行数据经CH340T 转换为串口数据后和单片机通信,为单片机编程提供数据通道。
  2.2 核心芯片CH340T 介绍
  CH340T 是南京沁恒电子有限公司设计生产的一款接口转换及单片机外围芯片,支持USB2.0.可以实现USB 转串口、扩展计算机异步串口和USB 转IrDA 红外等功能。本设计仅作USB 转串口使用,转换后的串口为全双工串口,内置收和发缓冲区,支持通讯波特率从50bps 到2Mbps,发送允许波特率误差《 0.3%,接收允许波特率误差《2%.其使用方法比较简单,外围元器件只需要晶体、电阻和电容即可。
  CH340T 有20 个标准引脚接口。主要有1、UD+ 和UD- 引脚,这些引脚内置了USB 上拉电阻,可以直接接到USB 总线上。2、GND和VCC,即接地和电源引脚,支持5V 或者3.3V 电源电压。3、数据传输引脚TXD 和RXD,分别为串口数据发送和接收引脚。输入空闲时,一般RXD 是高电平,但是如果R232 引脚为高电平,且启用辅助RS232 功能,RXD 引脚内部会自动插入一个反相器,默认变成低电平;输出空闲时,一般TXD 是高电平。4、其他引脚。包括MODEM 联络信号引脚和辅助引脚。
  2.3 系统原理图
  原理图如图2 所示。
  图中,USB 接口P1 除用于数据传输外,还经过LM7805 稳压后为CH340T 芯片和单片机和其他部件供电,当使用5V 工作电压时,CH340 芯片的VCC 引脚输入外部 5V 电源,并且V3 引脚应该外接容量为4700pF 或者 0.01uF 的电源退耦电容。CH340T 转接芯片将UD1+ 和UD1- 转换为串口信号串口数据和单片机串口进行通信。需要注意的是,CH340T 芯片的串行接收口CRXD 需要和单片机的P3.1(串行输出口TXD)通过PNP 三极管Q1 接成射极发生器的形式,以到达数据的缓冲和隔离的作用。
  单片机子系统,采用40 引脚的试验用插座,为了正常编程,外接必备的单片机复位电路和晶振电路。特别地,为提高编程器的适用性,晶振电路采用跳线开关J1 为单片机提供12MHz 和11.0592M共2 种工作频率。
  3 系统测试
  ISP 编程涉及的软件主要有USB 驱动程序、单片机固件程序和计算机应用程序三部分构成。单片机固件程序用来实现计算机读取和编程STC 单片机内部的E2PROM(数据Flash),已提前固化在单片机内部。
  测试之前,必须首先安装USB 驱动软件USB DriverInstaller.exe,该驱动可以将接入计算机USB 接口的编程映射为虚拟串口,一般是COM3 或COM4.然后安装STC 单片机在线编程烧录软件STC-ISP.STC-ISP 是针对STC 系列单片机而设计的软件,可下载STC89 系列、12C2052 系列和12C5410 等系列的STC 单片机,功能强大,使用简便。本编程器要求版本在V3.0 以上。
  测试步骤是,将单片机STC89C52RC 插入编程器插座,整体插入计算机USB 接口(或用USB 线将编程器和计算机连接)。然后打开STC-ISP 软件,依次在主界面中选择MCU 单片机型号(MCUTYPE),导入Hex 文件(Open File/ 打开文件),选择串口(COM :
  COM3 或COM4 等)和波特率,最后点击下载按钮。下载成功的主界面如图3 所示。
  经过多次反复测试本方案所设计的编程器,功能正常,性能可靠。
  4 结束语
  本文介绍了一种简单实用、价格低的ISP 编程器设计方案。经过反复测试本方案所设计的编程器具有功能稳定、速度快、价格低和易用性强等优点,适合STC 89C/S51XX/52XX 等系列单片机的程序烧录。另外,本系统扩展性较好,原理图稍加改动,借助于SPI 接口,实现对Atmega8515/ Atmega162(AVR 芯片)等更多的单片机的ISP 编程下载。
编程器相关文章
编程器相关下载
STC89C52相关文章
STC89C52相关下载
技术交流、积极发言! 发表评请遵守相关规定。
IoT将会在未来10年内创造出500亿个联网设备,如何确保这些巨量联网设备的安全性和连接性,正是今天业界面临的2大主要挑战,本文重点将讨论基于ARM的...
一直以来,智能手机上实现4K视频、欣赏AR和VR都是不可能的任务,因为不可能在有限的移动设备功耗预算内,足够长时间地运行高清内容。但是,ARM新推出...
创新实用技术专题
Copyright &
.All Rights Reserved当前位置: >>>
STC15F104E单片机如何进行串口通信? 次单片机不带串口寄存器。
stc 002 金发美女 - [27P]stc002金发美女 - STC15F104E单片机如何进行串口通信? 次单片机不带串口寄存器。
#include "stc12c5a.h"
//包含STC12C5A60S2单片机寄存器定义文件
unsigned char data ge _at_ 0x30;
//四位七段数码管个位数据存放
unsigned char data shi _at_ 0x31;
//四位七段数码管十位数据存放
unsigned char data bai _at_ 0x32;比如
电脑打HOW ARE YOU
单片机回答FINE THANKS
头文件怎么配置
最好指点下程序阿
谢谢楼主也太懒了,连单片机的初始化特殊寄存器也懒得查 ORG 0000H SJMP START ORG 0023h AJMP RCV ;串行接收中断子程序 ORG 0038H START: mov SP,CC002-10T-NS CC002-20T-NS CC002-25T-NS CC002-30T-NS荷重元STC产品在中国推广配套已有10年时间,业绩逐年增加,以其完美的工艺、超长的stc单片机中 用c语言 interruput X 语句
X是中断标号
计算公式是 :(地址-3)/8=中断标号
我想问的是
地址是什么地址啊?stc单片机中 用c语言 interruput X 语句 X是中断标号 计算公式是 :(地址串口中断,入口地址为0023H(十进制为35),对应中断标号4 追问 那入口地址是
STC15F104E单片机如何进行串口通信? 次单片机不带串口寄存器。
AJMP RCV ;串行接收中断子程序 ORG 0038H START: mov SP,#STC15F104E的手册里就有例程啊。 评论 | 串口通信的相关知识2009..什么情况下会跳到中断地002BH去执行中断程序。什么情况下会跳到中断地002BH去执行中断程序。分享到:
22:41 提问者采纳 确实,STC11F-10FXX系列不提供ADC中断功能,如果你用STC12C系列就单片机是STC89C52,编程语言怎么写
11:29 济铁技校 | 分类0023H;串口002BH;定时器23、正式的主程序一般要避开中断向量地址,所以一般哪位大师帮我免费设计 一个艺术签名(连笔签名),我叫张椿梨,谢谢了!邮箱:
17:15 yatelantis | 分类:书画美术
菊花 金发泡
null 金发美女
金发晶手链天然
为什么金发女郎会晕倒?为什么她会如此烦恼?
畅游在湖水里的金发"美人鱼"吸引了众人的目光
null 金发美女
夏季新款 刀疤金发
null 金发美女
国际金发美女大会
夏季新款 刀疤金发
hdtv][中英字幕]
null 金发美女
菊花 金发泡
夏季新款 刀疤金发
查看淘宝正品代购 刀疤金发
夏季新款 刀疤金发
夏季新款 刀疤金发
菊花 金发泡
夏季新款 刀疤金发
菊花 金发泡
------分隔线----------------------------

我要回帖

更多关于 stc89c52 的文章

 

随机推荐