




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电路图用张毅刚版教材里给的图!1、流水灯#include#includevoid delay() unsigned char i,j; for(i=0;i255;i+) for(j=0;j255;j+);void main() P2=0xfe; while(1) P2=_crol_(P2,1); delay(); 2、 单个外部中断#include#includevoid delay(unsigned char delay_time) unsigned int i,j; for(i=0;i=delay_time;i+) for(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 0 P1=0xfe; while(!INT0) P1=_crol_(P1,1);delay(200); P1=0xff;3、 定时器#includeunsigned char t=20;sbit button=P32;sbit yellowled=P10; /*定义接口*/void main() TMOD=0x01; /*选择中断方式*/ EA=1; ET0=1; TH0=0x3c; TL0=0x0b; while(button=0) TR0=1; yellowled=1;void tx() interrupt 1 TH0=0x3c; TL0=0xb0; t-; if(t=0) yellowled=yellowled; t=20; 4、 双机串行通信#include#define uchar unsigned char#define uint unsigned int#defineoutk P1#define out1 P0#define out2 P2uchar code seg=0xc0,0xf9,0xa4,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=segrec; uchar scan(void) uchar k=10,m,n,in; delay(10); outk=0x07; if(outk&0x07)!=0x07) for(m=0;m3;m+) outk=(0x01(m+3); for(n=0;nn; 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(;j0;j-) i=250; while(-i); i=249; while(-i); void ext0()interrupt 0 EX0=0; key=scan(); if(key!=10)send=key+1; EX0=1;void ext1()interrupt 2 ES=0; SBUF=send; while(!TI); TI=0; ES=1;void com()interrupt 4 RI=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(void)unsigned char m,n;for(m=0;m250;m+)for(n=0;n250;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 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=pb_8255; /*锁存*/ pa_8255=temp; void delay(uint j) /*延时函数*/ uchar i;for(;j0;j-) i=250; while(-i); i=249; while(-i);7、 矩阵键盘#includeunsigned char code table=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=0;j=25;j+);unsigned char key_scan() unsigned char key0,key1; unsigned char key_num=0; P1=0x0f; 先将p1.0P1.3置高 key0=P1; if(key0!=0x0f) 如果P1.4P1.7不全为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: 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: 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 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 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(;j0;j-) while(-i); i=249; while(-i); i=250; void check_busy(void) uchar dt;do dt=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_command(0x3c);write_command(0x0C);write_command(0x14);write_command(0x01);delay(1);void string(uchar ad,uchar *s) write_command(ad);while(*s0) 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 P0#define out P1sb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知识付费全网课件9.9
- 钻戒销售基础知识培训课件
- 2025年安全员证报考指南及模拟试题答案
- 知识产权师培训心得课件
- 2025年教师资格证考试(高中化学)教育案例分析模拟试题
- 2025年教师招聘考试教育知识与能力专项训练试题集
- 2025新安全生产法知识考试题库及参考答案
- 2025年生态修复植被重建技术成果社会效益鉴定报告
- 2025年智能建筑系统集成节能降耗在数据中心空调系统中的应用报告
- 钢铁基础知识培训教材课件
- 公司合同协议变更
- 儿科护理不良事件警示案例
- 2025届吉林市高三第三次模拟考试生物试卷(原卷版+解析版)
- DBJ-T13-483-2025 预拌流态固化土技术标准
- 支持青少年身心健康的家庭指南 资讯、建议和资源 -促进中小学学生(K-12)家庭的心理健康意识和身心健康
- 加气站气瓶充装质量保证体系手册2024版
- 2025至2031年中国卧式振动电机行业投资前景及策略咨询研究报告
- 消防工程深化设计管理体系及保障措施方案
- 中国卫星网络集团有限公司介绍
- 手术室常用药品管理
- 福建省南平市(2024年-2025年小学六年级语文)部编版期末考试(下学期)试卷及答案
评论
0/150
提交评论