
备 注:例:UART_TC("d9887321"); 此函数需要#include <string.h>头文件支持。 /*****************************************************************************/ void UART_TC (unsigned char *str) { while(*str != '\0') { UART_T(*str); *str++; } *str = 0; } /*****************************************************************************/ 中断入口说明 [中断入口说明] interrupt 0 外部中断 0(ROM 入口地址:0x03) interrupt 1 定时/计数器中断 0(ROM 入口地址:0x0B) interrupt 2 外部中断 1(ROM 入口地址:0x13) interrupt 3 定时/计数器中断 1(ROM 入口地址:0x1B) interrupt 4 UART 串口中断(ROM 入口地址:0x23) (更多的中断依单片机型号而定,ROM 中断入口均相差 8 个字节) using 0 使用寄存器组 0using 1 使用寄存器组 1 using 2 使用寄存器组 2 using 3 使用寄存器组 312.外部中断 INT 初始化函数/****************************************************************************** 函数名:外部中断 INT 初始化函数 调 用:INT_init(); 参 数:无 返回值:无 结 果:启动外部中断 INT1、INT0 中断,设置中断方式 备 注: /*****************************************************************************/ void INT_init (void) { EA = 1; //中断总开关 EX1 = 1; //允许外部中断 1 中断 EX0 = 1; //允许外部中断 0 中断 IT1 = 1; //1:下沿触发 0:低电平触发 IT0 = 1; //1:下沿触发 0:低电平触发 } /*****************************************************************************/13.外部中断 INT1 中断处理程序/****************************************************************************** 函数名:外部中断 INT1 中断处理程序 调 用:[外部引脚 INT1 中断处理] 参 数:无 返回值:无 结 果:用户处理外部中断信号 备 注: /*****************************************************************************/ void INT_1 (void) interrupt 2 using 2 //切换寄存器组到 2 { //用户函数内容 } /*****************************************************************************/14.外部中断 INT0 中断处理程序/****************************************************************************** 函数名:外部中断 INT0 中断处理程序 调 用:[外部引脚 INT0 中断处理] 参 数:无 返回值:无 结 果:用户处理外部中断信号 备 注: /*****************************************************************************/ void INT_0 (void) interrupt 0 using 2 //切换寄存器组到 2 { //用户函数内容 } /*****************************************************************************/15.普通 I/O 口模拟 PWM 生成程序/****************************************************************************** 函数名:普通 I/O 口模拟 PWM 生成程序 调 用:display (?) 备 注: /*****************************************************************************/ void display (unsigned int a) //显示程序(50ms 的 PWM 宽度) { DY_PORT = 0x00; //LED 小灯亮 delay (a); //延时 a 的长度 DY_PORT = 0xff; //LED 小灯灭 delay (DY_PWM-a); //延时总 PWM 长度减 a } /*****************************************************************************/16.LCD 驱动/*****************************************************************************/ //LCD 驱动(DY12864CBL 液晶显示屏并口驱动程序) /*****************************************************************************/ void chk_busy() //检查忙位(底层) { RS=0; RW=1; E=1; Lcd_Bus=0xff;while((Lcd_Bus&0x80)==0x80); E=0; } /*****************************************************************************/ void write_com(unsigned char cmdcode) //写命令到 LCD(底层) { chk_busy(); RS=0; RW=0; E=1; Lcd_Bus=cmdcode; E=0; } /*****************************************************************************/ void write_data(unsigned char Dispdata) //写数据到 LCD(底层) { chk_busy(); RS=1; RW=0; E=1; Lcd_Bus=Dispdata; E=0; } /*****************************************************************************/ void lcm_init() //初始化 LCD 屏(被调用层) { write_com(0x30); //选择 8bit 数据流 write_com(0x0c); //开显示(无游标、不反白) write_com(0x01); //清除显示,并且设定地址指针为 00H } /*****************************************************************************/ void lcm_w_word(unsigned char *s) //向 LCM 发送一个字符串,长度 64 字符之内。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-89445-3.html
福喜都不知道把肉送去检测太单纯了