版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 51单片机的学习是一个动手实践的过程,很多同学在学习单片机的初期总是觉得很难,无法入门。本人根据自己的学习经历,结合自己刚学习单片机的体验,写下几个小的程序供大家参考,如能掌握如下几个小程序的思想与精髓,那么就已经探踏入了单片机的大门。学习单片机的核心就是动手实践,当我们通过自己的努力把第一个LED点亮时,我们就会信心加倍,之后的学习就会变得轻松!希望对大家有所帮助。一个LED闪烁#include<reg51.h>sbit led=P03;unsigned int a;void main() P0=0x00; while(1)a=100000;led=1;while(a-);a=
2、10000;led=0;while(a-);两个led闪烁#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay();void main() while(1) P0=0xaa; delay(); P0=0x00;delay(); void delay()uchar x,y;for(x=110;x>0;x-)for(y=120;y>0;y-);流水灯#include<reg51.h> #include<intrins.h> void delay(
3、); void main() unsigned char temp; P0=0xef;temp=P0;delay();while(1) temp=_crol_(temp,1);delay(); void delay() unsigned char x,y; for(x=40;x>0;x-) for(y=200;y>0;y-); 键控移位信号灯#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigd neintsbit k1=P10;sbit k2=P1
4、1;void delay(uchar z);void main() P0=0X18; while(1) if(k1)P0=_crol_(P0,1);if(k2)P0=_cror_(P0,1); void delay(uchar z)uchar x,y;for(x=z;x>0;x-)for(y=120;y>0;y-);中断的简单应用1. 利用定时器中断实现LED闪烁#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit led1=P10;uchar num;void main()
5、P1=0x00;TMOD=0x01;TH0=(65536-45872)/265;TL0=(65536-45872)%256;EA=1;ET0=1;TR0=1;while(1);void T0_time()interrupt 1TH0=(65536-45872)/256;TL0=(65536-45872)%256;num+;if(num=20)num=0;led1=led1;2. 数码管记录LED闪的次数#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit led=P12;void disp
6、lay(uchar,uchar);uchar num=0,num1=0,num2=0,shi=0,ge=0;uchar code array10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07;void main()TMOD=0x11;TH0=(65536-45872)/256;TL0=(65536-45872)%256;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1);display(shi,ge);void display(uchar shi,u
7、char ge)P2=0x03;/P10=arrayshi;/ P11=arrayge;/*void delay(z)uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-); */void Time0() interrupt 1 TH0=(65536-45872)/256;TL0=(65536-45872)%256;num+;if(num=4) num=0; led=led;void Time1() interrupt 2TH1=(65536-45872)/256;TL1=(65536-45872)%256;num1+;if(num1=20)num1=
8、0;num2+;if(num2=60)num2=0;shi=(num2)/10;ge=(num2)%10;数码管的动态显示#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code duan9=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07;void delay();void main() while(1) P2=0x7f; P0=0x3f; delay(); P2=0xbf; P0=0x06; delay(); P2=0xdf; P0=0x5b; d
9、elay(); P2=0xef; P0=0x4f; delay(); P2=0xf7; P0=0x66; delay(); P2=0xfb; P0=0x6d; delay(); P2=0xfd; P0=0x7d; delay(); P2=0xfe; P0=0x07; delay(); void delay()uint x,y;for(x=10;x>0;x-)for(y=10;y>0;y-);数码管的静态显示#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code arr
10、y10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void delay(uint z);void main()P2=0x00;while(1)uchar i;for(i=0;i<10;i+)P0=arryi;delay(500);void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);数码管显示8#include<reg51.h> void main() P2=0x7f; /位选端低电平有效P0=0x7f; /段选高电平有效(共阴)while(
11、1); AD转换#include<reg51.h>#include<intrins.h>#define uchar unsigned charsbit wr=P36;sbit rd=P37;sbit dula=P26;sbit wela=P27;uchar code shuma=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delay(uchar z)uchar x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void
12、display(uchar bai,uchar shi,uchar ge) dula=1;P0=shumabai;dula=0;P0=0xff;wela=1;P0=0x7e;wela=0;delay(10);dula=1;P0=shumashi;dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delay(10);dula=1;P0=shumage;dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delay(10); void main() uchar A,B,C,i,adresult;float wela=1; P0=0x7f;/开ADCSw
13、ela=0;while(1) wr=1; _nop_(); wr=0; _nop_(); wr=1; _nop_(); for(i=0;i<10;i+) display(A,B,C); P1=0Xff; rd=1; _nop_(); rd=0; _nop_(); rd=1; adresult=P1;/ =(adresult*5)/256; A=adresult/256; B=adresult%256/16; C=adresult%256%16; LCD1602显示#include<reg52.h>#define uchar unsigned charsbit lcden=P3
14、4; /使能端sbit lcdrs=P35;/写数据,写命令控制端/sbit lcdrw=P36;#define lcd P0void delay(uchar z)/延时函数uchar x,y;for(x=z;x>0;x-) for(y=120;y>0;y-);void write_data(uchar Data)/写数据lcden=0;lcdrs=1;lcden=1;delay(10);lcd=Data;lcden=0;delay(10); void write_commend(uchar com) /写命令lcden=0;lcdrs=0;lcden=1;delay(10);lc
15、d=com;lcden=0;delay(10);void initial() /初始化函数 、 write_commend(0x01);/清屏 write_commend(0x38); write_commend(0x0c); write_commend(0x06);void main() uchar i,j; uchar fei="wudian" uchar benfei="jia you!" ;/ lcdrw=0;initial();/while(1); write_commend(0x80);/write_data('f');/wr
16、ite_data('e');/write_data('i');/write_data('f');/write_data('e');/write_data('i');/write_data('f');/write_data('l'); for(j=0;j<6;j+)write_data(feij);write_commend(0xc2);for(i=0;i<11;i+) write_data(benfeii);1602显示AD转换结果#include<reg52.h&
17、gt;#define uchar unsigned charsbit lcden=P34; /使能端sbit lcdrs=P35;/写数据,写命令控制端/sbit lcdrw=P36;#define lcd P0void delay(uchar z)/延时函数uchar x,y;for(x=z;x>0;x-) for(y=120;y>0;y-);void write_data(uchar Data)/写数据lcden=0;lcdrs=1;lcden=1;delay(10);lcd=Data;lcden=0;delay(10); void write_commend(uchar co
18、m) /写命令lcden=0;lcdrs=0;lcden=1;delay(10);lcd=com;lcden=0;delay(10);void initial() /初始化函数 、 write_commend(0x01);/清屏 write_commend(0x38); write_commend(0x0c); write_commend(0x06);void main() uchar i,j; uchar fei="wudian" uchar benfei="jia you!" ;/ lcdrw=0;initial();/while(1); write
19、_commend(0x80);/write_data('f');/write_data('e');/write_data('i');/write_data('f');/write_data('e');/write_data('i');/write_data('f');/write_data('l'); for(j=0;j<6;j+)write_data(feij);write_commend(0xc2);for(i=0;i<11;i+) write_dat
20、a(benfeii);直流电机#include<reg51.h>#define uchar unsigned charsbit wr=P36;sbit csda=P32;sbit s1=P34;/加速/sbit s2=P35;/减速sbit wela=P27;sbit dula=P26;uchar num2,num1,n,A2,A3;uchar k=5;uchar code shumaguan10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07;uchar code shudu5=0x00,0x0f,0x8f,0xf0,0xff;void delay(uchar z)uchar x,y;for(x=z;x&g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 病房消防应急预案方案
- 病人的清洁护理课程设计
- 班车线路设计外包方案
- 2024年中频转杯纺纱机项目申请报告
- 班级管理实践课程设计
- 班级小主人主题课程设计
- 玻璃反光的研究报告
- 玻璃人基因疗法研究报告
- 猜数游戏EDA课程设计
- 滨水景观公园课程设计
- 单人徒手心肺复苏操作评分表(医院考核标准版)
- 教育数字化背景下的创新教学方法及效果评估研究
- 第五章班级活动的设计-与实施
- 小学语文-示儿教学设计学情分析教材分析课后反思
- 《初二班会课件:班级管理与自我管理》
- 食材配送服务方案(技术方案)
- 生物 七年级 人教版 生物体的结构层次 单元作业设计
- 小学英语-My father has short hair教学课件设计
- Unit4+Understanding+Ideas+Click+for+a+friend 高中英语外研版(2019)必修第一册
- 新教科版科学六年级上册期末综合测试卷(五)
- HACCP风险评估报告样板
评论
0/150
提交评论