proteus仿真计时器中断出现问题,无法实现中断。

Mark0904 2010-05-15 05:04:53

这是我的电路图。。
下面是我的代码
#include<reg52.h>
#include<intrins.h>
#define UINT unsigned int

UINT cnt = 0;
void main()
{
TMOD = 0X01;
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
EA = 1;
ET0 = 1;
TR0 = 1;
P1 = 0x0f;
if(cnt == 2)
{
cnt = 0;
P1 = ~P1;
}

}

void timer0() interrupt 1
{
TH0 = (65536 - 50000) / 256;
TL0 = (65536 - 50000) % 256;
cnt++;
}

我的芯片是AT89C52
运行后一直是前4个led灯亮,无法实现计时中断。。请问怎么回事呢。是不是电路图出现问题了。请大家帮帮忙啊。。
...全文
904 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mark0904 2010-05-15
  • 打赏
  • 举报
回复

Peasant_Lee
谢谢你了。。
就是这里出现问题了。。
唉呀。真晕。。竟然忘了加个大循环。。
谢谢。。
Mark0904 2010-05-15
  • 打赏
  • 举报
回复
http://hiphotos.baidu.com/e3399/pic/item/475f84da53fed50f32fa1c37.jpg
原理图在这里。。怎么看不到呢?
Peasant_Lee 2010-05-15
  • 打赏
  • 举报
回复
首先,原理图看不到。你的代码有问题。因为你的代码的判断没有在循环中判断。你开启了中断之后,应该要在循环中判断计数值 cnt 是否等于 2。
修改如何:

。。。。
。。。。
TR0 = 1;
P1 = 0x0f;
while(1)
{
if(cnt == 2)
{
cnt = 0;
P1 = ~P1;
}
}

这样,程序经常在while(1)中跑,才会检测cnt的值。还有,顺便讲讲,为了以后的代码扩大后,减少漏洞,你判断cnt的值,不应该是等于,而是大于或者等于。if(cnt >= 2)
Mark0904 2010-05-15
  • 打赏
  • 举报
回复
我刚学单片机。近来在看郭天祥的视频。。
想自己画电路图来尝试一下。就实现不了中断了。。
如果是我的电路图出现问题了,那应该怎么改呢。我问的问题很菜。请大家帮帮我啊。。
300个C51单片机设计proteus仿真源码软件源码: 100000秒以内的计时程序 10秒的秒表 12864LCD图形滚动演示 128X64LED 160128LCD图文演示 1602字符液晶滚动演示程序 1602液晶显示的DS1302实时时钟 16×16点阵(滚动显示) 16×16点阵2(滚动显示) 2io5键盘模拟音量数码管显示 2×20串行字符液晶演示 32x16汉字 44行列键盘 485全双工通信 4×4键盘矩阵控制条形LED显示 4个独立式按键控制LED开关 4个独立式按键控制LED移位 4只数码管滚动显示0~3 555可调PWM发生器 555的应用 6264扩展内存 6个16×16点阵 74HC154译码器应用 74HC595 74HC595串入并出芯片应用 74LS138译码器应用 74LS148扩展中断 8051双机通信简例 8255并行口扩展实例 89C51PWM 8x8LED汉字显示 8x8点阵做的贪吃蛇游戏 8×8LED点阵屏显示数字 8只数码管同时显示不同字符 8只数码管显示多个不同字符 8只数码管滚动显示8~F 8只数码管滚动显示单个数字 8只数码管滚动显示数字串 8只数码管闪烁显示 8通道自动温度检测系统仿真(含原程序) ADC0808 PWM实验 ADC0809模数转换与显示 ADC0832模数转换与显示 AT89C51对直流电动机的驱动 AVR_Uart BCD译码数码管显示数字 c51 可预设电压的数控电源(功能强大) clock Conter CPU控制的独立式键盘扫描实验 da、ad。液晶,传递函数模型综合应用的实例 DIY51式数控电源 DS1621温度传感器实验 ds18b20 DS18B20温度传感器实验 DS18B20温度检测及其液晶显示 HorseLight I2C IIC-24C04与数码管 IIC-24C04与蜂鸣器 INT0与INT1中断计数 INT0中断3位计数 INT0及INT1中断计数 INT0和INT1控制条形LED INT1中断5位计数 IO并行口直接驱动单个数码管 K1-K4 分组控制LED K1-K4 控制LED移位 K1-K4 控制数码管加减演示 K1-K4 控制数码管移位显示 K1-K4 键状态显示 key_lcd ks0108 液晶12864 LCD频率计仿真 LED代码查询V1[1].1 LED模拟交通灯 LED闪烁 M16_AN_Compare M16_EEPROM M16_Horse MAX7221控制数码管动态显示 my16key_c NT0中断控制LED NT0中断计数 NumberDisplay P3口流水灯 PCF8574 PCF8583+LCD1602 PCF8591模数与数模转换实验 proteus ADDC的练习程序 PWM PWMLED PWM控制LED的亮度仿真程序 PWM控制马达的方法 PWM波输出(可调) PWM电机正反转 pwm程序实例 PWM调温 RAM扩展练习 sscom32串口调试 TIMER0与TIMER1控制条形LED TIMER0控制LED二进制计数 TIMER0控制单只LED闪烁 TIMER0控制四只LED滚动闪烁 TIMER0控制流水灯 ULN2803 usart_t 《lcd1602仿真实例》 一个数控直流稳压电源 一个步进电机的仿真 一步一步教你51_PC串口通信 万能逻辑电路实验 三机通讯 串口仿真mcu_pc 串口方式1 串行数据转换为并行数据 交通灯 从左到右的流水灯 光藕隔离驱动电机 内部函数intrins.h应用举例 净水控制器仿真电路 刚做好的十个字的led屏模拟有程序 包含单片机寄存器的头文件 单只按键控制单只数码管滚动显示 单只数码管循环显示0-9 单只数码管循环显示0~F 单片机与PC机串口通讯仿真 单片机之间双向通信 单片机向PC发送数据 单片机向主机发送字符串 单片机接收PC发出的数据 单片机控制的电动自行车驱动系统 单片机数据发送程序 发一个用定时器做的PWM 基于1602+ds12b80+ds1302+音乐+电子书+流水灯的多功能电子表 基于ADC0832的数字电压表 基于AT24C02的多机通信 基于AT89C51+MAX7219的频率计 附带proteus仿真电路图 实际硬件电路测试通过 基于DS1302的日历时钟 基于yjwpm测试过的DS18B20仿真实例 多功能电子钟 多点温度测量 多路开关状态指示 大屏幕仿真 子电路做的一个H型电机驱动电路 字符串函数string.h应用举例 字符函数ctype.h应用举例 宏定义应用举例 定时器中断控制的独立式键盘扫描实验 定时器控制交通指示灯 定时器控制数码动态显示 定时器控制数码管动管显示 对I2C总线上挂接多个AT24C0
Proteus单片机设计仿真51单片机220个Proteus仿真实例源码文件: 100000秒以内的计时程序.DSN 10秒的秒表 (2).DSN 10秒的秒表.DSN 12864LCD显示24C08保存的开机画面.DSN 12864LCD显示EPROM2764保存的开机画面.DSN 12864LCD显示计算器键盘按键实验.DSN 12864图形液晶滚动演示.DSN 160128LCD中文显示温度与时间.DSN 160128LCD图文演示.DSN 160128液晶中文显示ADC0832两路模数转换结果.DSN 160128液晶显示当前压力.DSN 160128液晶曲线显示ADC0832两路模数转换结果.DSN 1602LCD显示仿手机键盘按键字符.DSN 1602LCD显示电话拨号键盘按键实验.DSN 1602LCD显示的秒表.DSN 1602LCD随机模拟显示乘法口诀.DSN 1602字符液晶滚动演示程序.DSN 1602液晶显示DS1302实时时钟.DSN 16×16点阵屏-四块8x8并排的效果.DSN 24C04与数码管.DSN 2×20串行字符液晶演示.DSN 4×4键盘矩阵控制条形LED显示 (2).DSN 4×4键盘矩阵控制条形LED显示.DSN 555定时器实验.DSN 6264扩展内存.DSN 74HC154译码器应用.DSN 74HC595串入并出芯片应用.DSN 74LS138译码器应用.DSN 74LS148扩展中断.DSN 8×8LED点阵屏仿电梯数字滚动显示.DSN 8×8LED点阵屏显示数字.DSN 8只数码管显示多个不同字符.DSN 8只数码管滚动显示单个数字 (2).DSN 8只数码管滚动显示单个数字.DSN 8只数码管滚动显示数字串.DSN ADC0808 PWM实验.DSN ADC0809模数转换与显示.DSN ADC0832模数转换与显示.DSN BCD译码数码管显示数字.DSN DS1621温度传感器实验.DSN DS18B20温度传感器实验.DSN LED模拟交通灯 (2).DSN LED模拟交通灯.DSN MAX7221控制数码管动态显示.DSN PCF8591模数与数模转换实验.DSN T0控制LED实现二进制计数.DSN TIMER0与TIMER1控制条形LED.DSN TIMER0控制单只LED闪烁 (2).DSN TIMER0控制单只LED闪烁.DSN TIMER0控制四只LED滚动闪烁.DSN TIMER0控制流水灯 (2).DSN TIMER0控制流水灯.DSN tu1.DSN 串口发送数据到2片8×8点阵屏滚动显示.DSN 串行数据转换为并行数据.DSN 交通灯控制器.DSN 从左到右的流水灯 (2).DSN 从左到右的流水灯.DSN 光耦控制点亮和延时关闭照明设备.DSN 单只数码管循环显示0-9 (2).DSN 单只数码管循环显示0-9.DSN 单片机与PC机串口通讯仿真.DSN 单片机之间双向通信.DSN 单片机向主机发送字符串.DSN 单片机系统中自制硬件字库的应用.DSN 可以调控的走马灯.DSN 可演奏的电子琴.DSN 字符液晶显示的频率计.DSN 定时器控制交通指示灯.DSN 定时器控制数码管动态显示 (2).DSN 定时器控制数码管动态显示.DSN 左右来回的流水灯 (2).DSN 左右来回的流水灯.DSN 左右来回的流水灯.PWI 并行数据转换为串行数据.DSN 开关控制12864LCD串行模式显示.DSN 开关控制LED.DSN 开关控制报警器.DSN 报警器与旋转灯.DSN 按键发音.DSN 按键控制8×8LED点阵屏显示图形.DSN 按键控制定时器选播多段音乐.DSN 按键控制定时器选播多段音乐.PWI 按键选播电子音乐.DSN 按键选播电子音乐.PWI 播放一段音乐 (2).DSN 播放一段音乐.DSN 数码管显示4×4键盘矩阵按键 (2).DSN 数码管显示4×4键盘矩阵按键.DSN 数码管显示拨码开关编码.DSN 数码管显示的温控电机.DSN 数码管显示的频率计.DSN 数码管闪烁显示.DSN 数码管随机模拟显示乘法口诀.DSN 模拟射击游戏.DSN 正反转可控的步进电机.DSN 正反转可控的直流电机.DSN 温度控制直流电机转速.DSN 演奏一段音阶.DSN 用1602LCD与DS18B20设计的温度报警器.DSN 用1602LCD设计的可调式电子钟.DSN 用24C04与1602LCD设计电子密码锁.DSN 用74HC595与74LS154设计的16×16点阵屏.DSN 用8051与1601LCD设计的计算器.DSN 用8255与74LS154设计的16×16点阵屏.DSN 用8255实现接口扩展.DSN 用ADC0808设计的调温报警
单片机C语言程序设计实训100例基于8051+Proteus仿真源码: 第 01 篇 基础部分 01 闪烁的LED 02 从左到右的流水灯 03 左右来回的流水灯 04 花样流水灯 05 LED模拟交通灯 06 单只数码管循环显示0-9 07 8只数码管滚动显示单个数字 08 8只数码管显示多个不同字符 09 8只数码管闪烁显示 10 8只数码管滚动显示数字串 11 K1-K4 控制LED移位 12 K1-K4 键状态显示 13 K1-K4 分组控制LED 14 K1-K4 控制数码管移位显示 15 K1-K4 控制数码管加减演示 16 4×4键盘矩阵控制条形LED显示 17 数码管显示4×4键盘矩阵按键 18 开关控制LED 19 继电器控制照明设备 20 数码管显示拨码开关编码 21 开关控制报警器 22 按键发音 23 播放一段音乐 24 INT0中断计数 25 INT0中断控制LED 26 INT0及INT1中断计数 27 TIMER0控制单只LED闪烁 28 TIMER0控制流水灯 29 TIMER0控制四只LED滚动闪烁 30 TIMER0控制LED二进制计数 31 TIMER0与TIMER1控制条形LED 32 10秒的秒表 33 用计数器中断实现100以内的按键计数 34 100000秒以内的计时程序 35 定时器控制数码动态显示 35 定时器控制数码管动管显示 36 8×8LED点阵屏显示数字 37 按键控制8×8LED点阵屏显示图形 38 用定时器设计的门铃 39 演奏一段音阶 40 按键控制定时器选播多段音乐 41 定时器控制交通指示灯 42 报警器与旋转灯 43 串行数据转换为并行数据 44 并行数据转换为串行数据 45 甲机通过串口控制乙机LED闪烁 46 单片机之间双向通信 47 单片机向主机发送字符串 48 单片机与PC机串口通讯仿真 第 02 篇 硬件应用 01 74LS138译码器应用 02 74HC154译码器应用 03 74HC595串入并出芯片应用 04 74LS148扩展中断 05 IIC-24C04与蜂鸣器 06 IIC-24C04与数码管 07 6264扩展内存 08 用8255实现接口扩展 09 555的应用 10 BCD译码数码管显示数字 11 MAX7221控制数码管动态显示 12 1602字符液晶滚动演示程序 13 1602液晶显示的DS1302实时时钟 14 12864LCD图形滚动演示 15 160128LCD图文演示 16 2×20串行字符液晶演示 17 开关控制12864LCD串行模式显示 18 ADC0832模数转换与显示 19 ADC0808 PWM实验 20 ADC0809模数转换与显示 21 用DAC0832生成锯齿波 22 用DAC0808实现数字调压 23 PCF8591模数与数模转换实验 24 DS1621温度传感器实验 25 DS18B20温度传感器实验 26 正反转可控的直流电机 27 正反转可控的步进电机 28 键控看门狗 第 03 篇 综合设计 01 可以调控的走马灯 02 按键选播电子音乐 03 可演奏的电子琴 04 1602LCD显示仿手机键盘按键字符 05 1602LCD显示电话拨号键盘按键实验 06 12864LCD显示计算器键盘按键实验 07 数码管随机模拟显示乘法口诀 08 1602LCD随机模拟显示乘法口诀 09 用数码管设计的可调式电子钟 10 用1602LCD设计的可调式电子钟 11 用DS1302与数码管设计的可调电子表 12 用DS1302与1602LCD设计的可调式电子日历与时钟 13 用DS1302与12864LCD设计的可调式中文电子日历 14 用PG12864LCD设计的指针式电子钟 15 高仿真数码管电子钟 16 1602LCD显示的秒表 17 数码管显示的频率计 18 字符液晶显示的频率计 19 用ADC0832调节频率输出 20 用ADC0832设计的两路电压表 21 用数码管与DS18B20设计温度报警器 22 用1602LCD与DS18B20设计的温度报警器 23 数码管显示的温控电机 24 温度控制直流电机转速 25 用ADC0808设计的调温报警器 26 160128LCD中文显示温度与时间 27 用DAC0808设计的直流电机调速器 28 160128液晶中文显示ADC0832两路模数转换结果 29 160128液晶曲线显示ADC0832两路模数转换结果 30 串口发送数据到2片8×8点阵屏滚动显示 31 用74HC595与74LS154设计的16×16点阵屏 32 用8255与74LS154设计的16×16点阵屏 33 8×8LED点阵屏仿电梯数字滚动显示 34 用24C04与1602LCD设

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧