【2017年整理】单片机实验

上传人:豆浆 文档编号:11820883 上传时间:2017-10-15 格式:DOCX 页数:31 大小:162.72KB
返回 下载 相关 举报
【2017年整理】单片机实验_第1页
第1页 / 共31页
【2017年整理】单片机实验_第2页
第2页 / 共31页
【2017年整理】单片机实验_第3页
第3页 / 共31页
【2017年整理】单片机实验_第4页
第4页 / 共31页
【2017年整理】单片机实验_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《【2017年整理】单片机实验》由会员分享,可在线阅读,更多相关《【2017年整理】单片机实验(31页珍藏版)》请在金锄头文库上搜索。

1、 1.闪烁灯实验1 实验任务及原理图如图 1 所示:在 P1.0 端口上接一个发光二极管 led,使在不停地一亮一灭,一亮一灭的时间间隔为 1 秒。#include #define u16 unsigned int void delay(u16 num)u16 i,j;for(i=10; i0; i-)for(j=100; j0; j-);/延时子函数 ,num/1000ssbit led = P10;void main (void)led = 1; /初始化 P10,使之输出状态while(1) /大循环led = 0;/将 P10 输出低电平delay(500);led=1;delay(5

2、00); 2.模拟开关灯实验1 实验任务及原理图如图 2 所示,监视开关 key(接在 P2 端口上) ,用发光二极管LED(接在单片机 P1 端口上)显示开关状态,如果开关合上,LED亮,开关打开,LED 熄灭。#include #define u8 unsigned char#define u16 unsigned intsbit LED=P1; sbit key=P2;u8 temp;/定义中间变量void delay(u16 x)u16 i,j;for(i=10;i#define u8 unsigned char#define u16 unsigned intsbit K1=P33;s

3、bit L1=P10;void delay(u16 num)u16 i,j;for(i=10; i0; i-)for(j=100; j0; j-);/延时子函数,num/1000svoid main(void)while(1)if(K1=0);delay(10);if(K1=0);L1=0;elseL1=1; 4.流水灯实验1 实验任务及原理图让 8 个发光二极管按照一定顺序循环闪烁,时间间隔为 1s。用 8 芯排线连接到“八路发光二极管指示模块”区域中的 d1d8 端口上,要求:P1.0 对应着 L1,P1.1 对应着 L2,P1.7 对应着 L8。#include #include#def

4、ine u8 unsigned char#define u16 unsigned intu8 a,b;u8 i,j;void delay(u16 x)u16 i,j;for(i=110;i#include bit flag;unsigned char count;void dely500(void)unsigned char i;for(i=250;i0;i-)_nop_();void main(void)while(1)if(P3_3=0)for(count=200;count0;count-)P3_2=P3_2;dely500();for(count=200;count0;count-)P

5、3_2=P3_2;dely500();dely500(); 6.按键防抖1 实验任务及原理图每按下一次开关 KEY,计数值加 1,通过 AT89S51 单片机的 P1 端口的 P1.0 到 P1.7 显示出其的二进制计数值。 #include /定义一下,方便使用#define uchar unsigned char#define uint unsigned int#define LED P1 sbit KEY=P33; /按键接口定义sbit p2=P2;sbit Max7219_pinCLK = P22;sbit Max7219_pinCS = P21;sbit Max7219_pinDI

6、N = P20;uint x=0,e,f,g;uchar y=0;void delay(uint c) /延时,大约 c/1000suchar a,b,d;for(d=c;d0;d-)for(a=10;a0;a-)for(b=100;b0;b-);void Delay_xms(uint x)uint i,j;for(i=0;i=1;i-) Max7219_pinCLK=0;/p2.2Max7219_pinDIN=DATA&0x80;/p2.0DATA=DATA0;i-)max7219(i,10);Delay_xms(1);/主函数void main(void)/主函数delay(5);/等待系

7、统稳定Delay_xms(50);Init_MAX7219();sxxs();KEY=1;/将 P37 置高EA=1;/开总中断EX1=1;/开外部中断LED=0xfe;while(1)if(y255)y=0;LED=y;if(y/定义一下,方便使用#define uchar unsigned char#define uint unsigned int#define LED P1 sbit KEY=P33; /按键接口定义sbit p2=P2;sbit Max7219_pinCLK = P22;sbit Max7219_pinCS = P21;sbit Max7219_pinDIN = P20

8、;uint x=0,e,f,g;uchar y=0;void delay(uint c) /延时子程序,大约10msuchar a,b,d;for(d=c;d0;d-)for(a=100;a0;a-)for(b=200;b0;b-);void Delay_xms(uint x)uint i,j;for(i=0;i=1;i-) Max7219_pinCLK=0;/p2.2Max7219_pinDIN=DATA&0x80;/p2.0DATA=DATA0;i-)max7219(i,10);Delay_xms(1);/主函数void main(void)/主函数delay(5);/等待系统稳定Dela

9、y_xms(50);Init_MAX7219();sxxs();KEY=1;/将 P33 置高EA=1;/开总中断EX1=1;/开外部中断/LED=0xfe;while(1)if(y99)y=0;/LED=y;if(y/定义一下,方便使用#define uchar unsigned char#define uint unsigned int#define LED P1bit flag;uint count;sbit KEY=P33; /按键接口定义sbit p2=P2;sbit Max7219_pinCLK = P22;sbit Max7219_pinCS = P21;sbit Max7219

10、_pinDIN = P20;uint x=0,e,f;uchar y=0;void delay(uint c) /延时子程序,大约10msuchar a,b,d;for(d=c;d0;d-)for(a=100;a0;a-)for(b=255;b0;b-);void Delay_xms(uint x)uint i,j;for(i=0;i=1;i-) Max7219_pinCLK=0;/p2.2Max7219_pinDIN=DATA&0x80;/p2.0DATA=DATA0;i-)max7219(i,10);Delay_xms(1);/主函数void main(void)/主函数/delay(50

11、);/等待系统稳定Delay_xms(50); Init_MAX7219();sxxs()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1)if(flag=1) y+;if(y60)y=0;elsey=20)count=0;flag=1; 9.串口实验 1 实验任务及电路原理图使用 USB 代替九针孔接口做调试 #include #define XTAL 11059200 / CUP 晶振频率 #define baudrate 9600 / 通信波特率 void main(void)un

12、signed char c; TMOD = 0x20; / 定时器 1 工作于 8 位自动重载模式, 用于产生波特率 TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate);TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate); / 定时器 0 赋初值 SCON = 0x50; PCON = 0x00; TR1 = 1;IE = 0x00; / 禁止任何中断 while(1) while(RI = 0); RI = 0; c = SBUF; / 从缓冲区中把接收的字符放入 c

13、中 SBUF = c; / 要发送的字符放入缓冲区 while(TI = 0); TI = 0; 10. 1602 液晶显示1 实验任务及电路原理图外接单片机 P2,P3 端口调试 #includetypedef unsigned int u16;typedef unsigned char u8;#define DATA P0 sbit rs = P37;sbit rw = P36;sbit en = P35;void delay(u16 num)u16 x,y;for (x=num; x0; x-)for(y=110; y0; y-);void write_cmd (u8 cmd)rs =

14、0;rw = 0;DATA = cmd;delay(5);en = 1;delay(5);en = 0;void write_data (u8 dat)rs = 1;rw = 0;DATA = dat;delay(5);en = 1;delay(5);en = 0;void lcd_init (void)write_cmd(0x02);write_cmd(0x06);write_cmd(0x0c);write_cmd(0x38);write_cmd(0x01);int main (void)rw = 0;rs = 0;en = 0;lcd_init();write_cmd(0xc0);write_data(J);write_data(i);write_data( );write_data(X);write_data(i);write_data(e);write_data( );write_data(2);write_data( );write_data(B);write_data(a);write_data(n);while(1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 经济/贸易/财会 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号