好文档 - 专业文书写作范文服务资料分享网站

51单片机生产实习报告

天下 分享 时间: 加入收藏 我要投稿 点赞

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

***/

void write_cmd(BYTE cmd) {

BYTE dl; do {

dl=rd_com;

} while((dl&0x80)!=0); //判忙

wr_com= cmd; Delay(1); }

/**********************************************************************

Function name: write_data Descriptions: 写入数据

**********************************************************************/

void write_data(BYTE dat) {

BYTE dl; do {

dl=rd_com;

} while((dl&0x80)!=0); //判忙

wr_data= dat; Delay(1); }

/***********************************************************************

Function name: write_string Descriptions: 写入字符串

***********************************************************************/

void write_string(BYTE *s) {

while(*s != '\\0') //'\\0'为字符串结束标志

14文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

{

write_data(*s); s++; } }

/**********************************************************************

Function name: set_display_place Descriptions: 设置字符的显示位置

**********************************************************************/

void set_display_place(BYTE line,column) {

BYTE address; if(line == 1) {

address = 0x80 + column; }

else if(line == 2) {

address = 0xc0 + column; }

write_cmd(address); }

/******************************************************************* Function name: 将字符串写到指定的位置 Descriptions: 将字符串显示在lcd的特定位置

*******************************************************************/ void write_string_lcd(BYTE line,column,unsigned char *string) {

set_display_place(line,column); write_string(string); Delay(1); }

15文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

/****************************************************************** Function name: 将字符写到指定的位置 Descriptions: 将字符串显示在lcd的特定位置

*******************************************************************/ /*void write_data_lcd(BYTE line,column,dat) {

set_display_place(line,column); write_data(dat); Delay(1); } */

/*************************************************** ************液晶模块初始化****************************** ****************************************************/ void lcd_init(void) {

write_cmd(0x38);// write_cmd(0x38);// write_cmd(0x06);// write_cmd(0x0c);// write_cmd(0x01);// }

/*****************LED显示位置********************/ void main() {

//SP=0x60; lcd_init(); while(1) }

/*串行发送*/ #include

{write_string_lcd(1,1,\

write_string_lcd(2,1,\ }

16文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

#define uchar unsigned char #define uint unsigned int sbit LED1=P1^1; sbit LED2=P1^2; sbit K0=P1^0; sbit K4=P1^4;

uchar Operation_No=0; //操作代码 uchar //数码管代码 void delay(uint ms) {

uchar i; while(ms--); for(i=0;i<120;i++); }

//向串口发送字符

void Putc_to_SerialPort(uchar c) { SBUF=c;

while(TI==0); //收到时中断 TI=0; }

void uart_init() {

SCON=0x50; //串口模式1,允许接收 TMOD=0x20; //T1工作模式2 PCON=0x00; //波特率不倍增 TH1=0xfd; TL1=0xfd; TI=RI=0; TR1=1; }

//启动定时器

IE=0x90; //允许串口中断

//设置计数初值

//清除中断

code

DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

17文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

main() {

uart_init(); K4=0; LED1=LED2=1; while(1) {

delay(100);

if(K0==0) {

while(K0==0)

Operation_No=(Operation_No+1)%4;

switch(Operation_No) //根据操作代码发送A/B/C或停止发送 {

case 0: Putc_to_SerialPort('X'); LED1=LED2=1; break;

case 1: Putc_to_SerialPort('A'); LED1=~LED1;LED2=1; break;

case 2: Putc_to_SerialPort('B'); LED2=~LED2;LED1=1; break;

case 3: Putc_to_SerialPort('C'); LED1=~LED1;LED2=LED1; break; }

void uart_interrupt() interrupt 4 {

if(RI) {

}

}

}

18文档收集于互联网,如有不妥请联系删除.

51单片机生产实习报告

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.***/voidwrite_cmd(BYTEcmd){BYTEdl;do{dl=rd_com;}while((dl&0x80)!=0);//判忙wr_com=cmd;Delay(1
推荐度:
点击下载文档文档为doc格式
6ucie6sf06667gj1yjqg01k8300x4z01clz
领取福利

微信扫码领取福利

微信扫码分享