本 科 毕 业 设 计
参 考 文 献
第 26 页 共 35 页
1周立功等. 增强型80C51单片机速成与实战.北京: 北京航空航天大学出版社, 2003.7.
2马忠梅, 籍顺心, 张凯,马岩. 单片机的C语言应用程序设计(修订版). 北京: 北京航空航天大学出版社, 1998.10 .
3胡汉才. 单片机原理及接口技术. 北京: 清华大学出版社, 2004.2 .
4李光, 丛培田. 基于共振解调的滚动轴承故障诊断的研究与实现. 机械工程师, 2006.
5朱磊, 刘东. C8051F340与Labview基于API的USB通信. 单片机与嵌入式系统, 2007.
6屈梁生.机械故障的全息诊断原理[M].北京:科学出版社,2007.
7刘泽九,贺士荃,李兴林,等.滚动轴承应用手册[K].2版.北京:机械工业出版社,2006.
8温诗铸,黎明.机械学发展战略研究[M].北京:清华大学出版社,2003. 9周仲荣,雷源忠,张嗣伟.摩擦学发展前沿[M].北京:科学出版社,2006. 10斌.滚动轴承振动监测与诊断——理论·方法·系统[M].北京:机械工业出版社,1995.
11今培,肖健华.智能故障诊断与专家系统[M].北京:科学出版社,1997.
12 Hasan Ocak.Fault Detection, Diagnosis and Prognosis of Rolling Element Bearings: Frequency Domain Methods and Hidden Markov Modeling[D]. Ph.D. Dissertation, Case Western Reserve University,U.S.A.,2004.
13 LI Xing-lin, QUAN Yong-xin, JIN Xi-zhi. Monitoring Test of the Wear Condition of Rolling Bearing Friction Pairs[M]. Proceedings of the Japan International Tribology Conference,1990.
本 科 毕 业 设 计
海交通大学,2006.
第 27 页 共 35 页
14周福昌.基于循环平稳信号处理的滚动轴承故障诊断方法研究[D].上海:上
15李兴林.点接触滚动摩擦副磨合过程的试验研究及其理论分析[D].杭州:浙江大学,1987.
16 HUANG Run-qing,XI Li-feng,LI Xing-lin,et al. Residual Life Predictions for Ball Bearings Based on Self-organizing Map and Back Propagation Neural Network Methods[J]. Mechanical Systems and Signal Processing, 2007(21):193-207
17 梅宏斌,滚动轴承振动监测与诊断。北京:机械工业出版社,1995. 18 李海波,丛培田,C8051F340单片机在轴承故障诊断中的应用。沈阳理工大学学报,2008.
19 肖宛昂,嵌入式系统中FFT算法研究。单片机与嵌入式系统应用。2002. 20 张志勇等,精通MATLAB6.5版。北京,北京航空大学出版社,2003.
本 科 毕 业 设 计
附录
串口通信程序:
第 28 页 共 35 页
#define uchar unsigned char #define uint unsigned int #include \#include \ #include \ #include \
int UART1printf(const char *fmt, ...); sbit LED1 = P2^1; char Uart0Str[20]; uchar UartCnt = 0; int Time0Cnt = 0; void PORT_Init (void) {
XBR0 = 0x03; //使能UART0 XBR1 = 0x40; //使能交叉开关 XBR2 = 0x01; //使能UART1
P0MDOUT = 0x10; //配置端口P0.4(TX0)输出方式为推挽输出 P0SKIP = 0xC0; P1SKIP = 0xFF; P2SKIP = 0xFF;
P3SKIP = 0x03; }
void Timer_Init() {
TCON =0X50; //启动定时器0/1
TMOD = 0x22; //Time0及Time1都是自动重装8位计数器\\定时器 CKCON = 0x02; //系统时钟/48 TL0 = 0x64; TH0 = 0x30; TMR2CN = 0x20; TMR2RLL = 0xFF; TMR2RLH = 0xFF; }
void UART0_Init (void) {
本 科 毕 业 设 计
SCON0 |= 0x10;
TH1 = 0x98; //波特率为4800
TL1 = TH1; TR1 = 1; TI0 = 1; TR0 = 1; }
void UART1_Init (void) {
SBRLL1 = 0x3C; SBRLH1 = 0xF6;
SCON1 = 0x10; //允许UART1接收 SMOD1 = 0x0E; SBCON1 = 0x43; }
void Oscillator_Init() {
int i = 0;
FLSCL = 0x90; CLKMUL = 0x80;
for (i = 0; i < 20; i++); // Wait 5us for initialization CLKMUL |= 0xC0;
while ((CLKMUL & 0x20) == 0); CLKSEL = 0x03; OSCICN = 0x83; }
void Interrupts_Init() {
IP = 0x1A;
EIE1 = 0x08; //允许ADC转换结 EIE2 = 0x02; EIP2 = 0x02; IE = 0x92; }
void sleep(unsigned int count) //24.5M下延时1ms {
unsigned int i,j;
for(i=0;i for(j=0;j<1361;j++) { ; } } 第 29 页 共 35 页 本 科 毕 业 设 计 第 30 页 共 35 页 } void UART0SG(void) interrupt 4 //串口0中断(中断号4仅仅限于C8051F340,参考芯片pdf资料P82和Kill51用户手册 的中断函数P126) { if (RI0) { Uart0Str[UartCnt] = SBUF0; if(++UartCnt > 19) { UartCnt = 0; } else { Uart0Str[UartCnt] = '\\0'; } RI0 = 0; } } void Time0_Out(void) interrupt 1 //定时器0溢出中断(中断号1仅仅限于C8051F340,参考芯片pdf资料P82和 Kill51用户手册的中断函数P126) { if(++Time0Cnt > 10000) { Time0Cnt = 0; } } void main() { uchar UartCntOld = 99; PCA0MD &= ~0x40; //禁止看门狗定时器 Timer_Init(); PORT_Init(); UART0_Init(); UART1_Init(); Oscillator_Init(); Interrupts_Init(); //以下代码将VDD监视器设置为复位源-----------防止程序丢失得重要措施 VDM0CN |= 0x80; //使能VDD监视器 sleep(1); //延时1毫秒等待VDD监视器启动并稳定(VDD监视器启动时间为 100uS)