久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5278|回復: 5
打印 上一主題 下一主題
收起左側

[求助]51單片機與PC串口通信程序,T1作為波特率發生器時,T0無法中斷

[復制鏈接]
跳轉到指定樓層
樓主
ID:23515 發表于 2013-4-13 18:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include <stc89.h>
#define uchar unsigned char
#define uint  unsigned int
uint tjs;

void init_time()//定時器模式初始化
{
EA=1;  //開總中斷
TMOD=0x02;//設定時器0模式2定時 100um
TH0=TL0=155;//置定時器0初值,中斷后,TH0中的值重新裝入TL0,THO中值不變
TR0=0; //啟動定時器0
ET0=1; //允許T0中斷
SCON =0x50 ;  //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |=0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
PCON |=0x80 ; //SMOD=1;
IE |=0x10;   //串行口中斷 (IE |=0x10;)開啟  (IE &=0xEF;)關閉
TH1 =0xf3 ;   //晶振=12MHz波特率4800
}
/////////////////////////////////////

void sendchar(uchar ch){
TR1=1;     //啟動定時器1
ET1=1;    //不允許T1中斷
TI=0;
SBUF=ch;
while (TI==0) P05=0;  //為什么會卡在這里?( P05腳的發光管一直亮!)
TR1= 0 ;     ////啟動定時器1
ET1=0;    //不允許T1中斷
}

//////////////////////////////
void main(void){
P14=0;   //允許LED亮
init_time();//初始化定時器
TR0=1; //啟動定時器T0
while(1){
if(tjs==5000){P01=~P01;tjs=0;}
if(tjs==1000)  sendchar(0x39);
} }

void t0_int(void) interrupt 1
{tjs++;}

 

 

 


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:7485 發表于 2013-4-15 09:38 | 只看該作者

你這是一個完整的程序?P05、P01、P14定義了嗎?

應該是:TH0=0XFF;  TL0=155;

你或者:th0=(65535-100)/256;

           tl0=(65535-100)%256;

回復

使用道具 舉報

板凳
ID:7485 發表于 2013-4-15 10:46 | 只看該作者

剛才沒注意,你是用的是模式2。100us初值設165,不是155(0xa5) 。

要設置波特率。

void initUart(void)       //波特率9600  晶振11.0592
{
 TMOD|=0x20;
 SCON=0x50;
 PCON|=0x80;
 TH1=0xfa;
 TL1=0xfa;
 TR1=1;
}

回復

使用道具 舉報

地板
ID:7485 發表于 2013-4-15 15:18 | 只看該作者

你的程序問題太多。

 

 

給你改了一下。試過了,可以正常運行。

#include "STC89C5xRC.H"
#define uchar unsigned char
#define uint  unsigned int
 sbit P05=P0^5;
 sbit P14=P1^4;
 sbit P01=P0^1;
uint tjs;
void init_time()//定時器模式初始化
{
EA=1;  //開總中斷
TMOD=0x02;//設定時器0模式2定時 100um
TH0=0xA5;
TL0=0XA5;//置定時器0初值,中斷后,TH0中的值重新裝入TL0,THO中值不變
TF0 = 0;  //清除TF0標志
TR0=0; //啟動定時器0
ET0=1; //允許T0中斷

 PCON |= 0x80;  //使能波特率倍速位SMOD
 SCON = 0x50;  //8位數據,可變波特率
 TMOD &= 0x0F;  //清除定時器1模式位
 TMOD |= 0x20;  //設定定時器1為8位自動重裝方式
 TL1 = 0xF9;  //設定定時初值
 TH1 = 0xF9;  //設定定時器重裝值
 ET1 = 0;  //禁止定時器1中斷
 TR1 = 1;  //啟動定時器1
}

void sendchar(uchar ch)
{
SBUF=ch;
while(!TI)  P05=0;
TI = 0;  //為什么會卡在這里?( P05腳的發光管一直亮!)
P05=1;

}

//////////////////////////////
void main(void){
P14=0;   //允許LED亮
init_time();//初始化定時器
TR0=1; //啟動定時器T0
while(1){
if(tjs==5000)
{
P01=~P01;
tjs=0;
}
if(tjs==1000)  sendchar(0x39);
} }

void t0_int(void) interrupt 1
{

tjs++;
}

回復

使用道具 舉報

5#
ID:62967 發表于 2014-6-15 16:49 | 只看該作者
ahshmj 發表于 2013-4-15 15:18
你的程序問題太多。
&nbsp;
&nbsp;

撿個現成的呵呵               
回復

使用道具 舉報

6#
ID:62967 發表于 2014-6-15 16:50 | 只看該作者
ahshmj 發表于 2013-4-15 15:18
你的程序問題太多。
&nbsp;
&nbsp;

撿個現成的呵呵               
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日摸夜夜添夜夜添精品视频 | 中文字幕第十页 | 日韩欧美第一页 | 日本一本在线 | 亚洲一区在线观看视频 | 国产激情三区 | 日韩爱爱网站 | 国产日韩中文字幕 | 手机av网| 日本成人二区 | 久久国产精品精品国产色婷婷 | 日本aaaa| 中文字幕一区二区三区在线视频 | 久草在线在线精品观看 | 国产精品美女久久久免费 | 成人免费av在线 | 97人人草 | 久久久免费在线观看 | 黄色网址在线免费播放 | 久久久久久国模大尺度人体 | 国产精品精品视频一区二区三区 | 日韩在线91| 久久精品女人天堂av | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 国产成人久久精品一区二区三区 | 国产一区二区三区久久久久久久久 | 亚洲精品视频一区 | 国产精品久久久久久福利一牛影视 | 91在线精品一区二区 | 国产免费一区二区三区网站免费 | 欧美一级二级在线观看 | 在线欧美a| 自拍亚洲 | 麻豆精品久久久 | 日韩一区在线观看视频 | 欧美 日韩 在线播放 | 91免费看片 | 国产精品网页 | 亚洲精品在线91 | 国产精品一区视频 | 久草视频网站 |