




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件升级及维护合同
- 交通协管员聘用合同协议书
- 家禽购销合同
- 货品抵款结算协议书
- 应对市场变化的解决方案研究
- 兰州房屋租赁合同
- 机械租赁协议合同
- 第19课 治学须有疑无疑不成学-《怀疑与学问》(教学设计)九年级语文上册同步高效课堂(统编版)
- 第一单元学习任务《如何阐述自己的观点》教学设计 2023-2024学年统编版高中语文必修下册
- Unit 4 Fun with numbers 第二课时(教学设计)-2024-2025学年外研版(三起)(2024)英语三年级上册
- 有温度的护理人
- 1《挑战第一次》第1课时 说课稿 -2023-2024学年道德与法治二年级下册统编版
- 预防性试验四措一案及施工方案
- 第十八届“地球小博士”全国地理知识科普竞赛题库(附答案)
- 新人教版一年级数学下册全册教案(表格式)
- 尿碘检测临床意义
- 2022年山东司法警官职业学院单招语文试题及答案解析
- 2023版北京协和医院重症医学科诊疗常规
- 钢网验收报告
- 防水补漏工程合同(合同版本)
- 铁路局中间站管理手册
评论
0/150
提交评论