单片机实验开发板设计(包含各模块C程序).docx_第1页
单片机实验开发板设计(包含各模块C程序).docx_第2页
单片机实验开发板设计(包含各模块C程序).docx_第3页
单片机实验开发板设计(包含各模块C程序).docx_第4页
单片机实验开发板设计(包含各模块C程序).docx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验开发板设计(包含各模块C程序)该程序包含有:液晶、24C02、LED、键盘扫描等。#include#include#include#define uintunsigned int#define uchar unsigned char#define led RD#define key_rec T1#define BUZZER INT0uchardata_com,data_show;uchar dat1,dat2,dat3,dat4,dat5;uchar a,b;long temp1;uint c=0;sbit led_1=P27;sbit led_2=P25;sbit led_3=P26;sbit led_4=P24;sbit led_5=P23;sbit led_6=P22;sbit led_7=P21;sbit led_8=P20;sbit CS1=P10;sbit CS2=P11;sbit CS3=P12;sbit clk_adc=P00;sbit dout_adc=P01;sbit lcd_data=P17;sbit lcd_rw=P16;sbit lcd_clk=P15;bit key1_black,key2_black,key3_black,key4_black,key1_blue,key2_blue,key3_blue,key4_blue,key5_blue,key6_blue,keyon,keyoff,buzzer1,point;uchar key1_state,count,temp;ucharcode order4=0x38,0x01,0x06,0x0C;ucharcode data117=0x20,0x20,0x20,0x54,0x69,0x6D,0x65,0x3A,0x45,0x54,0x46,0x4D,0x3A,0x20;ucharcode data216=0x77,0x77,0x77,0x2E,0x79,0x64,0x64,0x7A,0x33,0x31,0x35,0x2E,0x63,0x6F,0x6D,0x20;uchar code T0_H16=0xFF,0xFB,0xFB,0xFC,0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE;uchar code T0_L16=0xF1,0x4,0x90,0xC,0x44,0xAC,0x9,0x34,0x82,0xC8,0x06,0x22,0x56,0x85,0x9A,0xC1;uchar code music32=8,0,8,9,8,0xB,0xA,0,8,0,8,9,8,0xC,0xB,0,8,0,8,0xF,0xD,0xB,0xA,9,0xE,0,0xE,0xD,0xB,0xC,0xB,0x0;uchar code music_L32=2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4,2,1,1,4,4,4,4,4;uintLED1_data,LED2_data,LED3_data,LED4_data,LED_data,LED5_data,LED6_data,LED7_data,LED8_data;uint second,minute;long t0count;uchar code led_segment13=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x0,0xFF,0x7F;void delay(uint v)while(v!=0) v-;void delay1(uint j)while(j!=0)j-;delay(200);void delay2(uint j)while(j!=0)j-;delay1(80);/*液晶写指令程序*/write_com (uchar data_com)lcd_rw=0;lcd_data=0;lcd_clk=1;P0=data_com;delay(500);lcd_clk=0;/*液晶写数据程序*/write_data(uchar data_show)lcd_rw=0; lcd_data=1; lcd_clk=1; P0=data_show;delay(500);lcd_clk=0;/*液晶初始化程序*/init_lcd(void)write_com(order0);write_com(order1);write_com(order2);write_com(order3);/*频率设置状态下液晶显示程序*/lcd_set_display(char cursor_shift) write_com(0x0D);write_com(0x80);for(c=0;c8;c+)write_data(data1c);/ write_data(LED1_data+0x30); write_data(LED2_data+0x30); write_data(0x3A); write_data(LED3_data+0x30); write_data(LED4_data+0x30); write_com(0xc0); for(c=0;c16;c+) write_data(data2c); write_com(0xC0+cursor_shift);uchar tlc549_read()uchar i,adcdata;CS2=0;CS1=0;adcdata=0;for(i=0;i8;i+)adcdata=adcdata1;if(dout_adc) adcdata+;clk_adc=1;clk_adc=0;CS2=1;return adcdata;void display()led=1;led_1=1;led_2=1;led_3=1;led_4=1;led_5=1;led_6=1;led_7=1;led_8=1;/*LED1_data=minute/10;LED3_data=minute%10;LED2_data=second/10;LED4_data=second%10;LED1_data=5;LED3_data=4;LED2_data=3;LED4_data=2;LED5_data=9;LED6_data=8;LED7_data=7;LED8_data=6;*/CS1=0;P0=LED_data;delay(3);CS1=1;led=0;delay(27);CS1=0;P0=led_segmentLED1_data;delay(3);CS1=1;led=1;led_1=0;delay(27);CS1=0;if(point=1)P0=led_segmentLED2_data&0x7F;else P0=led_segmentLED2_data;delay(3);CS1=1;led_1=1;led_2=0;delay(27);CS1=0;P0=led_segmentLED3_data;delay(3);CS1=1;led_2=1;led_3=0;delay(27);CS1=0;P0=led_segmentLED4_data;delay(3);CS1=1;led_3=1;led_4=0;delay(27);CS1=0;P0=led_segmentLED5_data;delay(3);CS1=1;led_4=1;led_5=0;delay(27);CS1=0;P0=led_segmentLED6_data;delay(3);CS1=1;led_5=1;led_6=0;delay(27);CS1=0;P0=led_segmentLED7_data;delay(3);CS1=1;led_6=1;led_7=0;delay(27);CS1=0;P0=led_segmentLED8_data;delay(3);CS1=1;led_7=1;led_8=0;delay(27);CS1=0;void read_key()keyon=0;key_rec=1;CS1=1;if(INT1=0) key1_black=1;keyon=1;keyoff=1;if(T0=0)key2_black=1;led=1;led_1=1;led_2=1;led_3=1;led_4=1;led_5=1;led_6=1;led_7=1;led_8=1;P0=0xFE;delay(3);if(key_rec=0)key3_black=1;P0=0xFD;delay(3);if(key_rec=0)key4_black=1;P0=0xFB;delay(3);if(key_rec=0)key1_blue=1;P0=0xF7;delay(3);if(key_rec=0)key2_blue=1;P0=0xEF;delay(3);if(key_rec=0)key3_blue=1;P0=0xDF;delay(3);if(key_rec=0)key4_blue=1;P0=0xBF;delay(3);if(key_rec=0)key5_blue=1;P0=0x7F;delay(3);if(key_rec=0)key6_blue=1;CS1=0;KeyBlackProcess()while(keyoff) /*防连击程序*/read_key();if(keyon=0)keyoff=0;if(key1_black=1)key1_state+;count+;if(key1_state=3)key1_state=0;if(count=200) count=0;key1_black=0;KeyBlueProcess()uint i;uchar k,n,m;/*if(key1_blue=1)LED1_data=minute/10;LED2_data=minute%10;LED3_data=second/10;LED4_data=second%10;*/*00000000初始 清平*/if(key1_blue=0&key2_blue=0&key3_blue=0&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED5_data=11;LED6_data=11;LED7_data=11;LED8_data=11;LED_data=0xFF;BUZZER=1;ET0=0;TR0=0;ET1=0;TR0=1;minute=0;second=0;t0count=0;point=0;count=0;/* 100000 八个发光二极管点亮*/if(key1_blue=1&key5_blue=0&key4_blue=0&key3_blue=0&key2_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED5_data=11;LED6_data=11;LED7_data=11;LED8_data=11;LED_data=0;/* 010000 数码管显示1234*/if(key1_blue=0&key2_blue=1&key3_blue=0&key4_blue=0&key5_blue=0&key6_blue=0)LED5_data=1;LED6_data=2;LED7_data=3;LED8_data=4;LED1_data=5;LED2_data=6;LED3_data=7;LED4_data=8;LED_data=0xFF;/* 110000 蜂鸣器发声*/if(key1_blue=1&key2_blue=1&key3_blue=0&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED_data=0xFF;ET1=1;TR1=1;for(k=0;k32;k+)n=musick;m=music_Lk;a=T0_Hn;b=T0_Ln;delay2(m);/*001000 防连击键处理 按键在松开瞬间发光二极管亮灭 黑键1*/if(key1_blue=0&key2_blue=0&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED_data=0xFF;ET0=0;TR0=0;BUZZER=1;LED_data=0x0;if(key1_state=1) LED_data=0xFF;/* 101000 按键连击方式 按下发光二极管灭 黑键2*/if(key1_blue=1&key2_blue=0&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=11;LED3_data=11;LED4_data=11;LED_data=0xFF;BUZZER=1;if(key2_black=1) LED_data=0xFF;else LED_data=0x0;/* 011000 按键计数 黑键1*/if(key1_blue=0&key2_blue=1&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)LED1_data=11;LED2_data=count/100;LED3_data=count%100;LED3_data=LED3_data/10;LED4_data=count%10;LED_data=0xFF;BUZZER=1;/* 111000 流水灯 黑键1切换变换方式*/if(key1_blue=1&key2_blue=1&key3_blue=1&key4_blue=0&key5_blue=0&key6_blue=0)ET0=1;TR0=1;BUZZER=1;key_rec=0;BUZZER=1;led=0;if(key1_state=0)for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFE;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFD;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFB;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xF7;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xEF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xDF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xBF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x7F;else if(key1_state=1)for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xFC;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xF9;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xF3;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xE7;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0xCF;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x9F;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x3F;for(i=0;i100;i+)display();read_key();KeyBlackProcess();else if(key1_state=2)LED_data=0xAA;for(i=0;i100;i+)display();read_key();KeyBlackProcess();LED_data=0x55;for(i=0;i100;i+)display();read_key();KeyBlackProcess();/*000100 时钟显示*/if(key1_blue=0&key2_blue=0&key3_blue=0&key4_blue=1&key5_blue=0&key6_blue=0)ET0=1;TR0=1;BUZZER=1;LED1_data=minute/10;LED2_data=minute%10;LED3_data=second/10;LED4_data=second%10;/*100100 跑表 黑键1控制*/if(key1_blue=1&key2_blue=0&key3_blue=0&key4_blue=1&key5_blue=0&key6_blue=0)if(key1_state=1)ET0=1;TR0=1;else if(key1_state=2)ET0=0;TR0=0;elseET0=0;TR0=0;minute=0;second=0;t0count=0;count=0;BUZZER=1;LED5_data=minute/10;LED6_data=minute%10;LED7_data=second/10;LED8_data=second%10;LED1_data=12;LED2_data=t0count/100;LED3_data=t0count%100;LED3_data=LED3_data/10;LED4_data=t0count%10;LED_data=0xFF;/*010100 数字电压表 */if(key1_blue=0&key2_blue=1&key3_blue=0&key4_blue=1&key5_blue=0&key6_blue=0)ET0=0;TR0=0;BUZZER=1;LED1_data=11;LED_data=0xFF;LED4_data=11;point=1;CS2=0;temp=tlc549_read();temp1=temp*2;LED2_data=temp1/100;LED3_data=temp1%100;LED3_data=LED3_data/10;LED4_data=temp1%10;LED1_data=11;LED5_data=11;LED6_data=11;LED7_data=11;LED8_data=11;LED_data=0xFF;display();/*LCD显示*/if(key1_blue=1&key2_blue=1&key3_blue=0&key

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论