


免费预览已结束,剩余36页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为0.5s。#include#include#define uchar unsigned charuchar T_count=0;/定时中断void toProc() interrupt 1TH0=(8192-5000)/32; /恢复初值TL0=(8192-5000)%32;if(+T_count=100)/0.5s移动一位P0=_crol_(P0,1);T_count=0;/主函数void main()TMOD=0; TH0=(8192-5000)/32; /5ms定时TL0=(8192-5000)%32;EA=1;ET0=1;TR0=1;P0=0xfe;while(1);2.完成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7K1=0,K2=0K1=0,K2=1K1=1,K2=0K1=1,K2=1#include#define uint unsigned int#define uchar unsigned charsbit k1=P32;sbit k2=P33;/延时void delay(uint x)uchar i;while(-x)for(i=0;i120;i+);/主函数void main()while(1) if(k1=0)&(k2=0) /K1、K2同时按下P1=0x00;delay(10);else if(k1=0)&(k2=1) /K1按下,K2不按P1=0xcc;delay(10);else if(k1=1)&(k2=0) /K2按下,K1不按P1=0xf0;delay(10);elseP1=0xff;delay(10);3.在一个数码管上循环显示“H”“E” “L” “L” “O” ,循环的时间为1s。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0xf6,0xf9,0xb8,0xb8,0xbf;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)P0=tabi;i=(i+1)%5;T_count=0;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);4.在6个数码管上分别显示自己学号的后六位数字。#include#include#define uchar unsigned char#define uint unsigned intuchar code tab=;/学号自己设置/延时void delay(uint x)uchar i;while(x-)for(i=0;i100;i+);/主函数void main()uchar k;uchar wei=0x01;P0=tab0;P2=0x01;delay(1000);while(1)for(k=1;k6;k+)wei=wei1;P0=tabk;/发送数字段码P2=wei;/发送位码delay(1000);5.做一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。#include#define uchar unsigned charvoid delay1s()uchar i;for(i=0;i0;i-) t=(i/10)4)|(i%10); /高四位显示十位,低四位显示个位 P1=t; delay1s(); 6.使用外中断0来控制,去实现下列功能。其中K1为按键,P1口对应8个发光二极管的状态P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7无按键按下(循环)有按键按下#include#define uint unsigned int#define uchar unsigned charuchar code tab=0xcc,0x30;sbit k1=P32;/延时void delay(uint x)uchar i;while(-x)for(i=0;i120;i+);void int0Proc() interrupt 0P1=0xf0;/主函数void main()uchar j;EA=1; EX0=1;IE0=1;while(1)if(k1=1) /未按下for(j=0;j2;j+)P1=tabj; delay(500);8. 采用定时器方式1使得8个发光二极管按如下方式点亮,循环的时间为2sP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7#include#define uchar unsigned char#define uint unsigned intuchar code tab=0x0f,0xf0,0xcc,0x00;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=20)P0=tabi;i=(i+1)%4;T_count=0;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);9.在一个数码管上循环显示“0” “1” “5” 3个数字,循环的时间为1s。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0xbf,0x86,0xed;uchar T_count=0;uchar i=1;void intoProc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)P0=tabi;i=(i+1)%3;T_count=0;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;TR0=1;ET0=1;P0=tab0; /初始化P0口while(1);10.在4个数码管上稳定显示出“A” “C” “E” “P” 四个字符。#include#define uchar unsigned char#define uint unsigned intvoid delay(uint x)uchar i;while(x-)for(i=0;i100;i+);void main()while(1)P0=0xf7; /AP2=0xb9; /CP3=0xf9; /EP1=0xf3; /Pdelay(500);12.做一个20s的简易秒表,当按键K1按下时,秒表暂停计数,K2按下时,开始计数。#include#define uint unsigned int#define uchar unsigned charuchar tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit k1=P32;sbit k2=P33;uchar T_count=0;uchar i=0;void delay(int x)uchar i;while(x-)for(i=0;i100;i+);void t0Proc() interrupt 1TH0=0x3c; /恢复定时器0初值TL0=0xb0;if(+T_count=10) /100ms*10=1s转换状态i+;P0=tabi/10;P2=tabi%10;if(i=20) i=0; T_count=0;void main()P0=tabi;P2=tabi;TMOD=0x01;TH0=0x3c; TL0=0xb0;while(1)if(k1=0 & k2=1)EA=0;ET0=0;TR0=0;break;else if(k1=1 & k2=0)EA=1;ET0=1;TR0=1;break;14.使用外中断1来控制,当无按键按下时8个发光二极管循环点亮,循环点亮的时间为1s,有按键按下时,8个发光二极管全部熄灭。#include#include#define uchar unsigned char#define uint unsigned intsbit k1=P32;uchar code tab=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;uchar T_count=0;uchar i=1;/T0定时void T0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)P1=tabi;i=(i+1)%8;T_count=0;/INT1中断函数void Int1Proc() interrupt 2P1=0xff;EA=0;EX1=0;IT1=0;ET0=0;TR0=0;/主程序void main()TMOD=1;EA=1;ET0=1; TR0=1;TH0=0x3c;TL0=0xb0;EX1=1;IT1=1;P1=0xfe;while(1);16. 完成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7K1=0,K2=0K1=0,K2=1K1=1,K2=0K1=1,K2=1#include#define uint unsigned int#define uchar unsigned charsbit k1=P32;sbit k2=P33;/延时void delay(uint x)uchar i;while(-x)for(i=0;i120;i+);/主函数void main()while(1) if(k1=1)&(k2=1)/都未按下0:未按下,1:按下P1=0x00;delay(10);else if(k1=1)&(k2=0) /k2按下,k1未按下P1=0xf0;delay(10);else if(k1=0)&(k2=1) /k1按下,k2未按下P1=0xcf;delay(10);else if(k1=0)&(k2=0) /都按下P1=0x55;delay(10);17.完成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为1s,状态2显示的时间为2s,状态3显示的时间为3s,如此循环P1.0P1.1P1.2状态1状态2状态3#include#define uchar unsigned char#define uint unsigned intuchar code tab=0x05,0x06,0x03;uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;switch(State)case 0:if(+T_count=10)P1=tabi;i=(i+1)%3;T_count=0;State=1;break;case 1:if(+T_count=20)P1=tabi;i=(i+1)%3;T_count=0;State=2;break;case 2:if(+T_count=30)P1=tabi;i=(i+1)%3;i=1;T_count=0;State=0;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=tab0;while(1);18.彩灯系统,实现8个发光二极管从左到右点亮,每个发光二极管点亮的时间为2s,然后从右到左亮,每个发光二极管点亮的时间为1.5s.#include#include#define uchar unsigned charuchar code tab=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code tab1=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;uchar State=0;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;switch(State)case 0:if(+T_count=20)P2=tabi;i=(i+1)%8;if(i=7)State=1;T_count=0;break;case 1:if(+T_count=15)i=(i+1)%8;P2=tab1i;if(i=7)State=0;i=1;T_count=0;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P2=tab0;while(1);19. 在4个数码管上显示出当天的日期。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0x06,0x5b,0x06,0x6f;void delay(int x)uchar i;while(x-)for(i=0;i120;i+);void main()P0=tab0;P2=tab1;P3=tab2;P1=tab3;delay(500);20. 完成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为3s,状态2显示的时间为1s,状态3显示的时间为0.5s,状态4显示的时间为0.1s,如此循环P1.0P1.1P1.2P1.3状态1状态2状态3状态4#include#define uchar unsigned char#define uint unsigned intuchar code tab=0x0c,0x0e,0x0f,0x00;uchar T_count=0;uchar State=0;uchar i=1;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;switch(State)case 0:if(+T_count=30)P1=tabi;i=(i+1)%4;T_count=0;State=1;break;case 1:if(+T_count=10)P1=tabi;i=(i+1)%4;T_count=0;State=2;break;case 2:if(+T_count=5)P1=tabi;i=(i+1)%4;T_count=0;State=3;break;case 3:if(+T_count=1)P1=tabi;i=(i+1)%4;T_count=0;State=0;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=tab0;while(1);23. 数码管数字显示控制程序设计。控制要求:用按键K1和K2分别控制数码管显示数字09的顺序,当按下K1键时按从0到9的顺序显示,当按下K2时按从9到0的顺序显示。时间间隔均为1秒。硬件电路如图所示。#include#define uchar unsigned char#define uint unsigned intuchar code tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code tab2=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;uchar T_count=0;sbit k1=P10;sbit k2=P11;uchar i=0;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=10)T_count=0;i=(i+1)%10;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P0=0x3f;while(1)if(k1=0 & k2=1)P0=tab1i;else if(k1=1 & k2=0)P0=tab2i;24. 89C51与PC通过串口通信,单片机采用方式3串行通信,晶振都采用12MHz,波特率为1200Baud。要求:当单片机收到PC发来的数据“S”后,将30H-3FH的16个字节发送给乙机,当单片机收到“P”H时就发40H-5FH的32个字节数据。#include#includechar *startPoint;char *endPoint;void sendData()if(startPoint = endPoint)SBUF=*startPoint;+startPoint;void startSend(char *start ,char *end)startPoint=start;endPoint = end;sendData();void serialPorc() interrupt 4if(TI)TI=0;sendData();elseRI=0;if(0x53=SBUF)startSend(0x30,0x3f);else if(0x50=SBUF)startSend(0x40,0x5f);void main()TMOD=0x20;TH1=0xe6;TL1=0xe6;TR1=1;SCON=0xd0;EA=1;ES=1;while(1);25. 交通控制系统,如下图所示,是交叉路口,要求:绿灯亮9秒后,黄灯闪3秒,后红灯亮9秒,两个数码管分别显视各种灯所剩余时间。#include#define uchar unsigned char#define uint unsigned intuchar code tab=0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f;uchar code tab1=0x4f,0x5b,0x06,0x3f;sbit RED_A=P00; sbit YELLOW_A=P01;sbit GREEN_A=P02;sbit RED_B=P03; sbit YELLOW_B=P04;sbit GREEN_B=P05;uchar Operation_Type=1; /操作类型变量uchar T_count=0;uchar i=0;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;switch(Operation_Type)case 1:/红灯亮RED_A=0;YELLOW_A=1;GREEN_A=1;RED_B=0;YELLOW_B=1;GREEN_B=1;if(+T_count=90)T_count=0;Operation_Type=2;i=0;if(T_count%10=0)P3=tabi;P1=tabi;i=(i+1)%10;break;case 2: /黄灯闪RED_A=1;YELLOW_A=YELLOW_A;GREEN_A=1;RED_B=1;YELLOW_B=YELLOW_B;GREEN_B=1;if(+T_count=30)T_count=0;Operation_Type=3;i=0;if(T_count%10=0)P3=tab1i;P1=tab1i;i=(i+1)%3;break;case 3: /绿灯亮RED_A=1;YELLOW_A=1;GREEN_A=0;RED_B=1;YELLOW_B=1;GREEN_B=0;if(+T_count=90)T_count=0;Operation_Type=1;i=0;if(T_count%10=0)P3=tabi;P1=tabi;i=(i+1)%10;break;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;P1=tab0;P3=tab0;while(1);26用外部中断1实现加计数功能,并将计数值输出到数码管上显示。#include#define uchar unsigned char#define uint unsigned int/09的段码uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/计数值分解后各个待显示的数位uchar DSY_Buffer=0,0,0;uchar Count=0;sbit Clear_Key=P36;/数码管上显示计数值void Show_Count_ON_DSY()DSY_Buffer2=Count/100; /获取3个数DSY_Buffer1=Count%100/10;DSY_Buffer0=Count%10;if(DSY_Buffer2=0) /高位为0时不显示DSY_Buffer2=0x0a;if(DSY_Buffer1=0) /高位为0,若第二位为0同样不显示DSY_Buffer1=0x0a;P0=DSY_CODEDSY_Buffer0;P1=DSY_CODEDSY_Buffer1;P2=DSY_CODEDSY_Buffer2;/主程序void main()P0=0x00;P1=0x00;P2=0x00;EA=1;EX1=1;IT1=1; /下降沿触发while(1)if(Clear_Key=0) Count=0; /清0Show_Count_ON_DSY();/INT1中断函数void EX_INT1() interrupt 2Count+; /计数值递增28. LED灯要求亮2秒钟,灭2秒钟,要求使用定时计数器,要求写主程序与中断程序,fosc = 6MHz#include#define uchar unsigned charuchar T_count=0;sbit LED=P10;void t0Proc() interrupt 1TH0=0x3c;TL0=0xb0;if(+T_count=20)T_count=0;LED=LED;void main()TMOD=1;TH0=0x3c;TL0=0xb0;EA=1;ET0=1;TR0=1;while(1);29利用外部中断0,每申请一次中断使P0口连接的发光二极管点亮一个,从低位到高位,同时使P1口连接的发光二极管熄灭一个,从高位到低位#include#define uchar unsigned charuchar code tab=0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff;uchar i=0;/INT1中断函数void EX_INT1() interrupt 2P0=tabi;P1=tabi;if(+i=8)i=0;/主程序void main()P0=0xff;P1=0x00;EA=1;EX0=1;IT0=1; /下降沿触发while(1);31. 用定时计数器T1定时,由P0控制8个指示灯,首先依次点亮,每个指示灯点亮1秒,8个灯点亮完后,接着是间隔点亮,指示灯点亮0.5秒,上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030俄罗斯跨境电商物流通道效率与清关成本比较报告
- 2025-2030二手奢侈品鉴定标准体系建设进展报告
- 2025-2030中国青年公寓行业技术应用与创新模式研究报告
- 2025-2030中国青年公寓行业展会效应与品牌曝光报告
- 2025-2030中国青年公寓市场区域分布及投资热点分析报告
- 2025-2030中国青年公寓公共设施配套与用户体验优化报告
- 营销策略的年度规划与执行
- 化学能源转化规程
- 种植植物的知识和技巧
- 水资源调查数据处理细则
- 数字信号处理理论与应用练习题集
- 处方药销售管理制度2023年零售药店管理制度
- 2025年黑龙江省嫩江铁路有限责任公司招聘笔试参考题库含答案解析
- 2025年度汽车销量目标达成合作协议模板
- 《生物技术在环境保护中的应用》课件
- 2025年华能上海电力检修有限责任公司招聘笔试参考题库含答案解析
- 保洁日常标准培训
- 人教版八年级物理上册《第一章机械运动》单元测试卷(含答案)
- 全国第三届职业技能大赛(工业机器人系统操作项目)选拔赛理论考试题及答案
- 高一 人教A版 数学 第三章《幂函数》课件
- 氩气瓶的安全使用要求
评论
0/150
提交评论