


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年电镀行业重金属监测合规考核试卷
- 市场承包经营合同(标准版)
- 学校商店供货合同(标准版)
- 买卖继续合同(标准版)
- 城建指挥部工作总结
- 综合解析人教版八年级物理《运动和力》章节测试试题(解析版)
- 重难点解析人教版八年级物理上册第6章质量与密度-密度章节测评试卷(解析版含答案)
- 陈学智心电图课件
- 2025年建筑学结构测试题及答案
- 2024年省燃气经营企业从业人员考试(压缩天然气场站工)仿真试题及答案
- 2025年社区工作总结及2026年工作计划
- 2025年及未来5年中国压裂装备行业发展运行现状及投资潜力预测报告
- 第一讲 决胜“十四五”奋发向前行
- 生产计划员月度汇报
- 2025年及未来5年中国特钢棒材制造市场深度评估及行业投资前景咨询报告
- 幼儿园课件:《体能大循环的有效开展策略》
- 2025见证取样员考试试题带答案
- 医疗器械委托生产课件
- 招投标自查报告和问题整改指导
- 《人工智能语言与伦理》章节测试题及答案
- 高校实验室安全基础(华东理工大学)学习通网课章节测试答案
评论
0/150
提交评论