行业资讯
#includereg51.h
unsigned char UART_RX; //定义串口接收数据变量
unsigned char RX_flag; //定义穿行接收标记
函数名:UART串口初始化函数
调 用:UART_init();
参 数:无
返回值:无
结 果:启动UART串口接收中断,允许串口接收,启动T/C1产生波特率(占用)
备 注:振荡晶体为6MHz,PC串口端设置 [ 2400,8,无,1,无 ]
/**********************************************************************************************/
void UART_init (void){
EA = 1; //允许总中断(如不使用中断,可用//屏蔽)
ES = 1; //允许UART串口的中断
TMOD = 0x20; //定时器T/C1工作方式2
SCON = 0x50; //串口工作方式1,允许串口接收(SCON = 0x40 时禁止串口接收)
TH1 = 0xF3; //定时器初值高8位设置
TL1 = 0xF3; //定时器初值低8位设置
PCON = 0x80; //波特率倍频(屏蔽本句波特率为1200)
TR1 = 1; //定时器启动
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:UART串口接收中断处理函数
调 用:[SBUF收到数据后中断处理]
参 数:无
返回值:无
结 果:UART串口接收到数据时产生中断,用户对数据进行处理(并发送回去)
备 注:过长的处理程序会影响后面数据的接收
/**********************************************************************************************/
void UART_R (void) interrupt 4 using 1{ //切换寄存器组到1
RI = 0; //令接收中断标志位为0(软件清零)
UART_RX = SBUF; //将族拿接收到的数据送入变量 UART_data
RX_flag=1; //标记接收
//用户函数内容(用户可使用UART_data做数据处理)
//SBUF = UART_data; //将接收的数据发送回去(删除//即生效)
/消瞎/while(TI == 0); //检查发送中断标志位
//TI = 0; //令发送中断标志位为0(软件清零)
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:UART串口发送函数
调 用:UART_T (?);
参 数:需要UART串口发送的数据(8位/1字节)
返回值:无
结 果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式
备 注:
/**********************************************************************************************/
void UART_T (unsigned char UART_data){ //定义串口发送数据变量
ES=0; //禁止穿行中断
SBUF = UART_data; //将接收的数据发送回去
while(TI == 0); //检查发送中断标志位
TI = 0; //令发兆桥搭送中断标志位为0(软件清零)
ES=1; //打开穿行中断
}
/*********************************************************************************************
函数名:UART串口发送字符串函数
调 用:UART_S (?);
参 数:需要UART串口发送的数据(8位/1字节)
返回值:无
结 果:将参数中的数据发送给UART串口,确认发送完成后退出,采用非中断方式
备 注:
/**********************************************************************************************/
void UART_S(unsigned char *str)
{
while(1)
{
if(*str=='\0') break;
UART_T(*str++);
}
}
/*********************************************************************************************
函数名:主函数
调 用:main();
参 数:
返回值:无
结 果:
备 注:
/**********************************************************************************************/
void main()
{
unsigned char Buf_data[]={" welcome to MCU world. \n\r"};
UART_init();
UART_S(Buf_data);
while(1){
if(RX_flag==1)
{
UART_T(UART_RX);
RX_flag=0;
}
}
} hp=(不等于)UART
蝴蝶效应1:thunder://QUFmdHA6Ly82OjZAZnRwLmthbjY2LmNvbTo0MTI5LyVFMyU4MCU5MDZ2JUU3JTk0JUI1JUU1JUJEJUIxd3d3LmR5MTMxLmNvbSVFMyU4MCU5MSVFOCU5RCVCNCVFOCU5RCVCNiVFNiU5NSU4OCVFNSVCQSU5NDFCRCVFNCVCOCVBRCVFOCU4QiVCMSVFNSU4RiU4QyVFNSVBRCU5NzEyODAlRTklQUIlOTglRTYlQjglODUucm12Ylpa
蝴蝶效应2:thunder://QUFmdHA6Ly9keWdvZDE6ZHlnb2QxQGQxMjAuZHlnb2QuY246MzA1OC8lRTglOUQlQjQlRTglOUQlQjYlRTYlOTUlODglRTUlQkElOTQyLlslRTQlQjglQUQlRTglOEIlQjElRTUlOEYlOEMlRTUlQUQlOTcuMTAyNCVFNSU4OCU4NiVFOCVCRSVBOCVFNyU4RSU4N10vWyVFNyU5NCVCNSVFNSVCRCVCMSVFNSVBNCVBOSVFNSVBMCU4Mnd3dy5keWdvZC5jbl0uJUU4JTlEJUI0JUU4JTlEJUI2JUU2JTk1JTg4JUU1JUJBJTk0Mi5bJUU0JUI4JUFEJUU4JThCJUIxJUU1JThGJThDJUU1JUFEJTk3LjEwMjQlRTUlODglODYlRTglQkUlQTglRTclOEUlODddLnJtdmJaWg==
蝴蝶效应3:thunder://QUFmdHA6Ly82OjZAZnRwLmthbjY2LmNvbTo0MTI5L+OAkDZ255S15b2xd3d3LmR5MTMxLmNvbeOAkeidtOidtuaViOW6lDNCROS4reiLseWPjOWtlzEyODDpq5jmuIUucm12Ylpa
链接:
?pwd=fnbr提取码:fnbr
40年代的美国,“教父”维托·柯里昂(马龙·白兰度 饰)是黑手党柯里昂家族的首领,带领家族从事非法的勾当,但同时他也是许多弱小平民的保护神,深得人们爱戴。因为拒绝了毒枭索洛索的毒品交易要求,柯里昂家族和纽约其他几个黑手党家族的矛盾激化。圣诞前夕,索洛索劫持了“教父”的参谋汤姆,并派人暗杀“教父”;因为内奸的出卖,“教父”的大儿子逊尼被仇家杀害;小儿子麦克(阿尔·帕西诺 饰)也被卷了进来,失去爱妻。黑手党家族之间的矛盾越来越白热化。
MCU的嵌入式开发是与传统的MCU开发方式相对应的开发方式,传统的开发方式是采用仿真MCU(例如:我们目前常见的51系列开发装置,就是利用仿真装置的MCU的插头在插在应用板的MCU插座上,用仿真器代替应用板上的MCU),这类仿真器对于DIP和PLCC封橘烂装的MCU,同时MCU的工作段岩时钟较低时,是十分有效的,但是对于表贴的MCU就不一定适用(当然可以用表贴的接插件,但价格很贵,圆燃漏只适应用于开发用)。
MCU的嵌入式开发是指MCU自身内嵌仿真调功能,如JTAG,BDM接口和软件的monitor。在开发这一类MCU时只需要一根JTAG线或者RSS232
TO
TTL
线就行了。
MCU的嵌入式开发将集应用与开发一体,它是一种非常有效的新型开发方式,目前许多MCU,如:ARM
TI的DSP,C80C51F
M430
一部份AVR......。等都是具用的JTAG开发方式。JTAG已成为IEEE标准。
至于采用UART的monitor方式算不算嵌入式开,我想这是一个定义问题。但这种方式也是一种有效的方式,如富士通的MB90FXX,KEIL
51中的ISD51,和一些ARM开发都是采用UART与软件接合进得的。
故障:MCU/ HVPS通讯故障。
解决方案:
1、检查+5 VDC从P/ J574-5至P/ J574-4对HVPS控制PWB
2、 断开 P/ J574.Is有+5 VDC从第j574-5到J574-4
3、检查电线从J411-5到J574-5的对地短路
4、切断电源,并检查这些电线的断路或短路接地以下
5、HVPS控制电路板P / J574-9到MCU板P / J411-1
6、HVPS控制电路板P / J574-8到MCU板P / J411-2
7、HVPS控制电路板P / J574-7到MCU板P / J411-3
8、HVPS控制电路板P / J574-6到MCU板P / J411-4
9、检查开路或P / J411之间的5 VDC电源线连接松动,针脚5和6;和P / J574,针脚5和4
10、如果这不能解决问题,请更换高压电源控制电路板和发动机控制板
004-345
MCU/HVPS Communication Fail.
SOLUTION:
Check +5 VDC from P/J 574-5 to P/J 574- 4 on the HVPS Control PWB 2.Disconnect P/J 574.Is there +5 VDC from J 574-5 to J 574-4 3.Check the wire from J411-5 to J574-5 for a short circuit to ground 4.Switch off the power and check these wires for an open or short circuit to ground for the following: 5.HVPS Control PWB P/J574-9 to MCU PWB P/J411-1 6.HVPS Control PWB P/J574-8 to MCU PWB P/J411-2 7.HVPS Control PWB P/J574-7 to MCU PWB P/J411-3 8.HVPS Control PWB P/J574-6 to MCU PWB P/J411-4 9.Check for open circuit or loose connections in the 5 VDC supply wires between P/J411, pins 5 and 6; and P/J574, pins 5 and 4. 10.If this does not resolve the problem, replace the HVPS Control PWB Engine control Board
关键词:tomcu
一点销电子网
Yidianxiao Electronic Website Platform