已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机实验、设计(按PPT上的顺序,有的程序不是很简略,有的也不是我自己写的,仅供参考)1、并行口控制八个LED灯的轮流亮灭(书本148有类似)#include #include #define uchar unsigned char#define uint unsigned int#define out P2 void delay(uint);void main() uchar i,temp; while(1) temp=0xfe; for(i=0;i8;i+) out=temp; delay(200); temp=_crol_(temp,1);/正向 temp=0x7f; for(i=0;i0;k-) for (i= 142;i0;i-) for(j=2;j0;j-) ;2、(书本73)P2口既作为输入口也作为输出口,通过四个开关,分别控制四个LED的亮与灭。#include #define uint unsigned int #define uchar unsigned char void delay(uchar k) uchar x;for(;k0;k-)for(x=110;x0;x-); void main() while(1)P2=0xff;if(P2!=0xff)P2=P24;delay(2); 3、双数码管显示:模拟十字路口的两位信号灯显示计数(00-99),数字间隔时间不做特殊要求。#include#define uchar unsigned char#define uint unsigned intuchar code table=0xc0,0xf9,0xA4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uchar num,tt,ge,shi;void display(uchar sh,uchar g);void delay(uint i)uint j;for(;i0;i-) for(j=110;j0;j-);void init()P3=0xff;num=0;tt=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void main() init();while(1) display(shi,ge); void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(tt=20)/1stt=0;num+; if(num=100) num=0; ge=num%10; shi=num/10;void display(uchar sh,uchar g)P3=0x02;P2=tableg;delay(1);P3=0x01;P2=tablesh;delay(1); 4、设计一个4*4矩阵键盘,双数码管显示,其键值为“0016”。按下按键后,数码管显示相应的键值。(书本140)#include#define uchar unsigned char#define uint unsigned intsbit shiwei=P30;sbit gewei=P31;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,;uchar code key_table=0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;void delay(uchar k) uchar i;for(;k0;k-) for(i=110;i0;i-); void delay0() uint n=1000;while(n-); void main() uchar temp,key,num,i; P3=0xff; while(1) P1=0xf0; if(P1!=0xf0) delay0(); if(P1!=0xf0) temp=P1; P1=0x0f; key=temp|P1; for(i=0;i16;i+) if(key=key_tablei) num=i; break; P3=0x01; P2=tablenum/10;delay(1);P3=0x02; P2=tablenum%10;delay(1);P2=0xff; 5、外部中断每发生一次,led由亮转灭。#include#define uchar unsigned charsbit led=P20;void delay(uchar k)uchar j;for(;k 0;k- ) for(j=110;j0;j-);void main()EA=1;EX0=1;IT0=0;led=0;while(1) led=0; void INT_0() interrupt 0EX0=0;led=1;delay(20);EX0=1;6、外部中断每发生一次,在共阴数码管上显示一个数字,且每中断一次显示的数值增加1或减少1#include #define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;int count= 0;void delay(uchar k)uchar i;for(;k0;k-)for(i=110;i0;i-);void init()P1=0;EA=1;EX0=1;IT0=1;EX1=1;IT1=1;void main()init();while(1)void INT_0() interrupt 0EX0=0;delay(5);count+;if(count=10)count=0;P1=tablecount;delay(2);EX0=1;void INT_1() interrupt 2EX1=0;delay(5);count-;if(count0)count=0;P1=tablecount;delay(2);EX1=1;7、将外部中断0端口P3.2,扩展成三个中断入口,并且当中断发生时,能识别是哪个中断源发生的中断事件(书本94)8、中断嵌套:设置两个外部中断(INT0和INT1)按键,优先级IP=0x04。合上INT0的开关,则led依次循环点亮;按下INT1按键,则led全体闪烁三次,然后继续依次循环点亮。(书本90)9、8051内部定时计数器T0,按计数器模式和方式1 工作,对P3.4(T0)引脚进行计数。将其数值P1 口驱动LED 灯上显示出来#include #define uchar unsigned charuchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x01;uchar count=0;void main(void)TMOD=0X05;TH0=0;TL0=0;TR0=1;while(1)P0=tableTL0%10;10、用51单片机的P1.0 口接1 个发光二级管,编写程序,控制发光二级管闪烁,时间间隔1S,要求AT89C51 内部定时器计时。(书本111)下面是自己简化的#include #define uchar unsigned charuchar code table=0xc0,0xf9,0xA4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uchar count;void delay(uchar k)uchar i;for(;k0;k-)for(i=110;i0;i-);void main()count=0;P0=0xff;EA=1;EX0=1;IT0=1;while(1) void INT_0() interrupt 0count+;if(count=10)count=0;P0=tablecount;delay(2);11、数字时钟系统设计要求:采用8位的7段数码管显示数字时钟的时、分、秒(24小时制)。(比较长,如果需要私聊)12、利用两个8051单片机串口相连,实现数据在两机之间的串口通信。(老师上实验课传过给我们的,开关送数的)13、ADC0808#include #define uchar unsigned char#define out P1 #define led P0 sbit START=P21;sbit EOC=P23;sbit OE=P27;sbit add_a=P24;sbit add_b=P25;sbit add_c=P26;sbit clock=P20;void main()uchar temp;add_a=0;add_b=0;add_c=0;OE=0;while(1) START=0;START=1;START=0;while(1)clock=!clock; if(EOC=1)break;OE=1;temp=out;OE=0;led=temp;14、DAC0832中断方式(波形不正常,老师说可能是仿真器的原因)#include #define uchar unsigned charsbit cs=P37;sbit wr=P36;uchar k;void delay(uchar m) while(m-); void main() cs=0;wr=0;k=0;EA=1;EX0=1;IT0=0;EX1=1;IT1=0;while(1) while(1)P0=k+;delay(100);if(k=0xff)break;while(1)P0=k-;delay(100);if(k=0)break; void INT_0() interrupt 0uchar x; EX0=0;x=0; while(1)P0=x+;delay(100);if(x=0xff)break;EX0=1;void INT_1() interrupt 2 uchar x; EX1=0;x=0xff;while(1)P0=x-;delay(100);if(x=0)break; EX1=1;上半部分的图和下面的一样。查询方式#include #define uchar unsigned char sbit cs=P37; sbit wr=P36; uchar t,k;void delay(uchar k) while(k-); void delay(uchar k); void main() cs=0;wr=0;k=0;EA=1;while(1)dis(); void dis()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白细胞减少与粒细胞缺乏的病因及标准化检查流程
- 2026年重庆市北师大版高中物理必修第一册单元测试卷
- 2025-2026年浙江省部编版高二物理选修三第一章运动学测试题
- 2025-2026年四川省苏教版三年级语文下册第6单元课后练习题
- 2026年河北省人教版初中语文第6章同步练习题
- 2025-2026年金融法规与政策综合测试题库
- 2026年北京市高中物理高三一轮复习力学基础题库
- 2026年四川省人教版初中物理上册第10章力学基础同步练习题
- 再生锌原料波动对水龙头铸造成本敏感度的量化对冲策略
- 产业基金介入真丝锭子并购重组中的尽职调查盲点与价值重估逻辑
- 1.1疆域 课件(共56张内嵌视频) 人教版(2024) 地理八年级上册
- 2026秋季新学期班干部聘任仪式
- 2026秋新教材统编版九年级上册道德与法治第二课 坚持以人民为中心 教案
- EN IEC 60034-30-1 完整版中文版(EN IEC 60034-30-1-2025)(能效 IE 分级标准原文 + 实操解读)
- 第7课《培养德智体美劳全面发展的社会主义建设者和接班人》课件
- 新版部编人教版四年级上册道德与法治(课件)11学会合理消费
- 2026年高考真题-物理(四川卷) 含解析
- 广东2026公需课《加快培育发展新质生产力》题库及答案
- 2026中国国际航空股份有限公司地面服务部就业见习岗位招聘笔试历年参考题库附带答案详解
- 2026贵州省农业发展集团有限责任公司招录(第一批)岗位65人农业考试备考题库及答案解析
- 静脉输液操作流程课件
评论
0/150
提交评论