


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电路图用张毅刚版教材里给的图! !1、流水灯#include<>#include<>void delay()unsigned char i,j;for(i=0;i<255;i+)for(j=0;j<255;j+);void main()P2=0xfe;while(1)P2=_crol_(P2,1);delay();2、单个外部中断#include<>#include<>void delay(unsigned char delay_time)unsigned int i,j;for(i=0;i<=delay_time;i+)for
2、(j=0;j<=100;j+);void init_tx()EA=1;EX0=1;IT0=0;void main()P1=0x00;init_tx();delay(200);while(1)P1=P1;delay(200);void tx0() interrupt 0P1=0xfe;while(!INT0)P1=_crol_(P1,1);delay(200);P1=0xff;3、定时器#include<> unsigned char t=20;sbit button=P32;sbit yellowled=P10; /* 定义接口 */ void main()TMOD=0x01
3、; /* 选择中断方式 */ EA=1;ET0=1;TH0=0x3c;TL0=0x0b;while(button=0)TR0=1;yellowled=1;void tx() interrupt 1TH0=0x3c;TL0=0xb0;t-;if(t=0)yellowled=yellowled;t=20;4、双机串行通信#include<>#define uchar unsigned char#define uint unsigned int#define outk P1#define out1 P0#define out2 P2uchar code seg=0xc0,0xf9,0xa
4、4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;uchar key,send,rec;uchar scan(void);void delay(unit);void main(void)TMOD=0X20;/*设置定时器 T1 为方式 2*/TH1=0XF2;/*给定时器 T1赋初值 */TH1=0XF2;TR1=1;/*接通定时器 T1*/SCON=0X50;/*串行口方式 1, REN=1允许接收 */PCON=0X00;/* SMOD=0*/EA=1;ES=1;EX1=1;EX0=1;while(1)outk=0x07;out1=segsend;out2
5、=segrec;uchar scan(void)uchar k=10,m,n,in;delay(10);outk=0x07;if(outk&0x07)!=0x07)for(m=0;m<3;m+)outk=(0x01<<(m+3);for(n=0;n<3;n+)in=outk;in=in>>n;if(in&0x01)=0)if(in&0x01)=0)k=n+m*3;break;if(k!=10)break;return(k);void delay(uint j)uchar i;for(;j>0;j-)i=250;while(-i)
6、;i=249;while(-i);void ext0()interrupt 0EX0=0;key=scan();if(key!=10)send=key+1;EX0=1;void ext1()interrupt 2ES=0;SBUF=send;while(!TI);TI=0;ES=1;void com()interrupt 4RI=0;rec=SBUF;5、单片机与 PC串行通信#include <>void send(unsigned char dat) SBUF=dat;while(TI=0);TI=0;void init_tx()EA=1;EX0=1;void delay(vo
7、id)unsigned char m,n; for(m=0;m<250;m+) for(n=0;n<250;n+)void main(void)init_tx();TMOD=0x20;SCON=0x40;PCON=0x00;TH1=0xfd;TL1=0xfd;TR1=1;while(1);void tx0() interrupt 0unsigned char i=0;send(0x01);delay();i+;6、扩展 82c55 并行 IO 接口#include<> #include<>#define uchar unsigned char#define
8、uint unsigned intsbit rst_8255=P35;#define con_8255 XBYTE0x7003 /*0x7003 为 82C55 的控制寄存器地址 */#define pa_8255 XBYTE0x7000 /* 以下定义 pa、pb 的端口地址 */#define pb_8255 XBYTE0x7001void reset_8255(void);void delay(uint);void main(void)uchar temp;rst_8255=1; /* 复位 */delay(1);rst_8255=0;con_8255=0x82;while(1)temp
9、=pb_8255; /* 锁存 */pa_8255=temp;void delay(uint j) /* 延时函数 */uchar i;for(;j>0;j-)i=250;while(-i);i=249;while(-i);7、矩阵键盘#include<>codeunsigned chartable=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1, 0x86,0x8e;void delay()unsigned char i,j;(延时)for(i=0;i<=25;i+)for(j
10、=0;j<=25;j+);unsigned char key_scan()unsigned char key0,key1;unsigned char key_num=0;P1=0x0f;先将 置高key0=P1;if(key0!=0x0f) 如果不全为 1,可能有键按下delay();key0=P1;if(key0!=0x0f)P1=0xf0;key1=P1;if(key0=0x0e)switch(key1)case 0xe0: key_num=0;break;case 0xd0: key_num=1;break;case 0xb0: key_num=2;break;case 0x70:
11、 key_num=3;break;default: key_num=0;break;else if(key0=0x0d)switch(key1)case 0xe0: key_num=4;break;case 0xd0: key_num=5;break; ( 处理 5 号键 )case 0xb0: key_num=6;break;case 0x70: key_num=7;break;default: key_num=0;break; (无效按键,如多个键同时按下)else if(key0=0x0b)switch(key1)case 0xe0: key_num=8;break;case 0xd0:
12、 key_num=9;break;case 0xb0: key_num=10;break;case 0x70: key_num=11;break;default: key_num=0;break;else if(key0=0x07)switch(key1)case 0xe0: key_num=12;break;case 0xd0: key_num=13;break;case 0xb0: key_num=14;break;case 0x70: key_num=15;break;default: key_num=0;break;return key_num;void main()unsigned
13、char key_num;dokey_num=key_scan();P2=tablekey_num;while(1);8、1602 液晶显示#include<>#include<>#define uchar unsigned char#define uint unsigned int#define out P0sbit RS=P20;sbit RW=P21;sbit E=P22;void lcd_initial(void);void check_busy(void);void write_command(uchar com);void write_data(uchar
14、dat);void string(uchar ad,uchar *s);void lcd_test(void);void delay(uint);void main(void)lcd_initial();while(1)string(0x82,"Hello Welcome"); string(0xC2,"To China"); delay(100);write_command(0x01);delay(100);void delay(uint j)uchar i=250;for(;j>0;j-)while(-i);i=249;while(-i);i=
15、250;void check_busy(void)uchar dt;dodt=0xff;E=0;RS=0;RW=1;E=1;dt=out;while(dt&0x80);E=0;void write_command(uchar com)check_busy();E=0;RS=0;RW=0;out=com;E=1;_nop_();E=0;delay(1);void write_data(uchar dat)check_busy();E=0;RS=1;RW=0;out=dat;E=1;_nop_();E=0;delay(1);void lcd_initial(void)write_comma
16、nd(0x3c);write_command(0x0C);write_command(0x14);write_command(0x01);delay(1);void string(uchar ad,uchar *s)write_command(ad);while(*s>0)write_data(*s+);delay(100);9、DA转换#include<>#define uchar unsigned char#define uint unsigned int#define out P1sbit DAC_cs=P20;sbit DAC_wr=P21;void main(void)uchar temp,i=255;while(1)out=temp;片选端,芯片被选中 */选通,并被锁存 */以下开始转换 */延时函数!,老师帮改的 */DAC_cs=0;/*DAC_wr=0;/*DAC_cs=1;/*DAC_wr=1;temp+;while(-i);/*10、AD转换#include<> #define uchar unsigned char#define uint unsigned int#define LED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度反馈绩效协议
- IT系统安全审计检查清单模板
- 家具产品购销与安装合同
- 2026届湖南省长沙市岳麓区湖南师范大学附中化学高二第一学期期中质量跟踪监视模拟试题含解析
- 雨露计划申请书
- 父母恩情重如山读理解父母有感650字(11篇)
- 岗位职责说明书
- 技术项目开发阶段性评审报告表
- 企业行政办公物资申请与采购模板
- 初中诗歌朗诵技巧指导:以静夜思为例教学教案
- 医疗废物与污水处理培训
- 康复科疾病护理
- 4S店员工职业卫生培训
- 地下通道水泵房管理制度
- 溺水患者急救培训
- 2026版步步高大一轮高考数学复习讲义第十章 §10.1 计数原理与排列组合含答案
- 人力公司营销策划方案
- 医院医疗用房管理制度
- 股权代持协议终止协议书
- 捡土豆装车合同协议书
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
评论
0/150
提交评论