《单片机原理及应用(C51)》(4)
void delay(unsigned char k) { unsigned char i,j; for(i=0;i<255;i++) for(j=0;j 2:如下图,编程实现开关控制 LED 说明:开关 S1 和 S2 分别控制 LED1 和 LED2 #include { LED1=S1; LED2=S2; } } 3:如下图,编程实现8个发光二极管先按状态1的形式点亮,经过一段时间延时,再按状态2的形式点亮,点亮形式见下表 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 P1口引脚 灭 亮 灭 亮 灭 亮 灭 亮 对应灯的状态1 对应灯的状态2 亮 灭 #include void main( ) { while(1) { P1=0xaa; delay(500); P1=0x55; delay(500); } } 亮 灭 亮 灭 亮 灭 C130pFX1CRYSTALU1C2D1LED-REDD29LED-REDD3RST30pF18XTAL219XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R10C310k293031PSENALEEALED-REDD422uFLED-REDD5U2:A18161412Y0Y1Y2Y3A0A1A2A3OE2468112345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51A0A1A2A3OE1113151719LED-REDD6LED-REDD7975374LS240U2:BY0Y1Y2Y3LED-REDD8LED-REDR81kR71kR61kR51kR41kR31kR21kR11k74LS24016 4:如下图,编程实现LED循环显示字符:“H” →“L” →“E”。 #include char led_ mod[]={0x76,0x38,0x79}; //LED显示字模 void delay( unsigned int time) { unsigned int j = 0; for(; time>0;time--) for( j=0;j<200;j++); } void main(void) { char i=0; while(1) {for(i=0;i<=2;i++) { P0=led_mod[i]; delay(500); } }} 5、开机时LED全熄,然后根据按键动作使相应灯亮,并将亮灯保持到按压其它键时为止。 #include R5R6R7R8void main() { U1 char key = 0; P2=0; while(1){ key = ~P0 & 0x0f; //读取按键状态 R1D1 if (key != 0) P2 = key; //显示到led R2D2 } R3D3} R4D4 6、在P0口连接一个共阴极数码管,使之循环显示0~9数字。 #include 7、设计一个开关控制报警器:用K1开关控制报警器,程序控制P1.0输出两种不同频率的声音,模拟很逼真的报警效果. C2C1#include 22uF193930pF#define uchar unsigned char XTAL1P0.0/AD038X1P0.1/AD137CRYSTALP0.2/AD2C31836sbit SPK=P1^0; XTAL2P0.3/AD335R1P0.4/AD4341kP0.5/AD53330pFsbit K1=P1^7; P0.6/AD6932RSTP0.7/AD721void Alarm(uchar t) //发声函数 P2.0/A822P2.1/A923P2.2/A10U12924{ uchar i,j; PSENP2.3/A113025ALEP2.4/A12312680C51EAP2.5/A1327 for(i=0;i<200;i++) //循环次数控制音频的持续时间 P2.6/A1428P2.7/A15LS1110 { SPK=~SPK; P1.0P3.0/RXD211P1.1P3.1/TXD312P1.2P3.2/INT0413 for(j=0;j void main() { SPK=0; while(1) { if(K1==1) { Alarm(90); Alarm(150); } } } 8、设单片机的fosc=12MHz,采用T0定时方式1在P1.0脚上输出周期为2ms的方波。 分析:1ms定时的计数初值应为: a = 216 – t* fos / 12 = 216 – 1000* 12/ 12 = 64536 = 0xfc18 TH0 = 0xfc TL0 = 0x18 ① 查询法: U?#include timer0 () interrupt 1 //T0中断函数 { P1_0 = !P1_0; //P1.0取反 TH0 = 0xfc; //装载计数初值 18 TL0 = 0x18; } main () { TMOD = 0x01; //T0定时方式1 TH0 = 0xfc; //装载计数初值 TL0 = 0x18; EA=1; //开总中断 ET0=1; //开T0中断 TR0=1; //启动T0 while(1); } 9、使用T1,分别用工作方式1、方式2 、方式0实现1s延时函数,晶振频率为12M. 19 C130pFX1CRYSTALC310uFR110k10、程序运行开始时先显示“00”,随后显示数值逐渐增大。待计数到59后,自动从“00”开始。 //定时中断方式实现的电子秒表 #include unsigned char t=0; //定义中断次数计数器 unsigned char second=0; //定义秒计数器 unsigned char code table[]={0x3f,0
…… 此处隐藏:2879字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




