ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:365.71KB ,
资源ID:11654140      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11654140.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(新概念51单片机C语言教程例题.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

新概念51单片机C语言教程例题.docx

1、新概念51单片机C语言教程例题例利用for语句延时特性,编写第一个发光二极管以间隔 1S亮灭闪动的程序P42 )错误!未定义书签。例编写程序使第一个发光二极管以间隔 500ms亮灭闪动。(P48 )错误!未定义 书签。例编写程序使第一个二极管以亮 200ms灭800ms的方式闪动。P49)错误 味 定义书签。例利用C51自带库_crol_(),以间隔500ms实现流水灯程序(P53 )错误!未定义书签。例利用定时器 0 工作方式 1,在实验板上实现第一个发光管以 1s 亮灭闪烁。例用定时器0的方式1实现个第一发光二极管以200ms间隔闪烁,用定时器1按下S2键一次,数值加1;每按下S3键一次,

2、数值减1;每按下S4键一次,数值归零;按下S5键一次,利用定时器功能使数值开始自动每秒加 1,再次按下错误!未定义书签。S5 键,数值停止加 1,保持显示原数。( P82 )例 实验班上电时,数码管不显示,顺序按下矩阵键盘后,数码管上依次显示例用单片机控制ADC08044行数模转换,当拧动实验板上 A/D旁边的电位时,错误!未定义书签。在数码管的前三位以十进制方式显示出 A/D转换后的数字量(8位A/D转换后数值在0255变化) 。 ( P107)例用单片机控制DAC0832芯片输出电流,让发光二级管D12由灭均匀变到最亮,再由最亮均匀熄灭。在最亮和最暗时使用蜂鸣器分别警报一声,完成整个周期时

3、例在上位机上用串口调试助手发送一个字符 X,单片机收到字符后返回给上位机“I get X ”,串口波特率设为9600bps。( P137).错误味定义书签。例单片机上电后等待从上位机串口发来的命令,同时在数码管的前三位以十进制方式显示 A/D 采集的数值,在未收到上位机发送来的启动 A/D 转换命令之前数 码管始终显示 000。当收到上位机以十六进制发送来的 01 后,向上位机发送字 符串“ Turn on ad! ”同时间隔1s读取一次A/D的值,然后把A/D采集回来的8 位二进制转换成十进制表示的实际电压浮点数,并且从串口发送给上位机,形式 如“ The voltage is ”,发送周期

4、也是一秒一次,同时在数码管上也要每秒刷 新现实的数值。当收到上位机以十六进制发送过来的 02后,向上位机发送字符串“ Turn off ad! ”,然后停止发送电压值 ,数码管上显示上次结束时保持的值。当收到上位机发来的其他任何数时,向上位机发送字符串“ Error! ”。 错误!未定义书签。义书签。Welcome to here! ”,移入速度自定,然后停留在屏幕上。 ( P154) 错误!未定义书签。例实现 12232 液晶的第一行显示“ I LOVEMCU”! ,第二行显示“我爱单片机”。P160 )错误!未定义书签。例实现 12232液晶第一行从右侧移入“ Hello everyone

5、! ”,同时第二行从右侧移入“欢迎大家来学习!”移入速度自定,最后停留在屏幕上。 (P163)错误!未定义书签。例实现在 12864液晶上第一行显示“ 09”,并且让每一位数字随机变化,第二行显示“,第三行显示“天祥电子”,第四行对应第三行显示出下划线。 ( P173)错误!未定义书签。将这个变化的数写入板上 AT24C02内部。当关闭实验板电源,并再次打开实验板电源时,单片机先从AT24C02中将原来写入的数读取出来,接着此数继续变化并例利用定时器 0 工作方式 0,在实验板上实现第一个发光管以 1s 亮灭闪烁。例利用定时器 0 工作方式 2,在实验板上实现第一个发光管以 1s 亮灭闪烁。实

6、现第一个发光管以1s亮灭闪烁,用TH0计数器对应的8位定时器实现第二个例利用计数器0工作方式1,在实验板上实现:用一根导线一端连接 GND引脚,另一端去接触T0引脚,每接触一下,计数器计一次数,将所计的数值实时显示 在数码管的前两位,计满100时清0,再从头计起。(P 214 )错误!未定义书 签。例设置单片机串行口的工作模式 0,间隔循环发送十六进制数 0xAA,然后用双例用交叉串口线连接两块实验板,或直接用短线交叉线连接连个单片机的和口共地)。在一块板上编写矩阵键盘扫描程序,当扫描到有键按下时,将键值通过串口发送出去,另一块板上单片机收到串口发送来的键值后,将对应键值以例编写程序实现:开启

7、两个外部中断,设置低电平触发中断,用定时器计数并且显示在数码管的前两位,当计数到 5时,使单片机进入空闲(休眠)模式,同时关闭定时器,当单片机响应外部中断后,从空闲(休眠)模式返回,同时开启定时器。(错误!未定义书签。例实验板上实现如下描述:程序启动后设定看门狗溢出时间为 2s,然后点亮第一个发光二极管,稍延时一会,然后熄灭发光二极管,使程序进入等待死循环状 态,并且在死循环中大约每隔 1s 喂狗一次,看程序运行是否正常。 错 误 !未 定 义书签。例在实验板上实现:操作 STC单片机自带的E2P ROMf储一组按秒递增的两位数据,并且将数据实时显示在数码管上,数据每变化一次就往 E2P RO

8、中写入一次,当关闭实验板电源并再次开启电源时,从 E2P RO中读取先前存储的数据,接着递增显示。错误!未定义书签。例系列单片机的A/D转换功能。时钟,转换结果以16进制形式输出到串行口,可以用串行口调试程序,观察输出结果 (本代码摘自宏晶科技芯片手册,经作者错误!未定义书签。调试可正常运行)。例给出一个STC12C5412A应用的参考程序。(P287).错误味定义书签。程序使用TX-1C实验板上的DS18B20温度传感器设计温控系统 C语言源代码P349 )错误!未定义书签。例使用TX-1C实验板上两个独立按键调节直流电机的转速,同时在实验板的数错误!未定义书签。码管上象征性的显示相应的转速

9、值。通过控制单片机输出不同占空比的 PWMl!号来控制直流电机的转速(感性认识) 。( P434)例舵机应用C语言程序设计实例:开机时舵机角度自动转为 0度,通过实验板上的独立按键调节舵机的角度转动,并且在实验板数码管上显示相应的角度。本错误!未定义书签。例仅演示 5 个角度的控制,若想实现任意角度控制请大家自行编程实验。程序代 码如下:( P453)错误 !未指定书签。错误 !未指定书签。错误 !未指定书签。 All rights reserved.Modification according to DataSheet from April 1999 - SFRs AUXR and AUXR

10、1 added for 80C51RX+ derivatives*/ /* BYTE Registers */sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0= 0x8A;sfr TL1= 0x8B;sfr TH0= 0x8C;sfr TH1= 0x8D;sfr IE = 0xA8;sfr IP = 0xB

11、8;sfr SCON = 0x98;sfr SBUF = 0x99;/* 80C51Fx/Rx Extensions */ sfr AUXR = 0x8E;/* sfr AUXR1 = 0xA2; */ sfr SADDR = 0xA9;sfr SADEN = 0xB9;sfr T2MOD = 0xC9;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;/* BIT Registers */ /* PSW */ sbit CY = P SWT; sbit AC = P SWy sbit F0 = P SWy sb

12、it RS1 = P SWM;sbit RS0 = P SW3;sbit OV = P SW2;sbit P = P SWS;/* TCON */sbit TF1=TCONA7;sbit TR1=TCONW;sbit TF0=TCONpsbit TR0=TCONM;sbit IE1=TCONA3;sbit IT1=TCON2;sbit IE0=TCONM;sbit IT0=TCONP;sbit WR = P 3八6;sbit T1 = P 3八5;sbit TO = P 3八4;sbit INT1 = P 3八3;sbit INTO = P 3八2;sbit SMO=SCONA7; #in c

13、ludeoAII rights reserved.Modification according to DataSheet from April 1999 - SFRs AUXR and AUXR1 added for 8OC51Rx+ derivatives*/* BYTE Registers */sfr PSW = OxDO;sfr ACC = OxEO;sfr B = OxFO;sfr SP = Ox81;sfr PCON = Ox87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0= 0x8A;sfr TL1= 0x8B;sfr TH0= 0x8C;sfr

14、 TH1= 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;/* 80C51Fx/Rx Extensions */ sfr AUXR = 0x8E;/* sfr AUXR1 = 0xA2; */ sfr SADDR = 0xA9;sfr IPH = 0xB7;sfr SADEN = 0xB9;sfr T2CON = 0xC8;sfr T2MOD = 0xC9;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;/* BIT Regis

15、ters */sbit AC = P SWy sbit F0 = P SWy sbit RS1 = P SWM;sbit RS0 = P SW3;sbit OV = P SW2;sbit P = P SWS;/* TCON */sbit TF1=TCONA7;sbit TR1=TCONW;sbit TF0=TCONpsbit TR0=TCONM;sbit IE1=TCONA3;sbit IT1=TCON2;sbit IE0=TCONM;sbit IT0=TCONP;/* P3 */sbit RD=P 3八7;sbit WR=P 3八6;sbit T1=P 3八5;sbit T0=P 3八4;s

16、bit INT1 = P 3八3;sbit INTO = P 3八2;sbit TXD = P 3;sbit RXD = P 39sbit SMO = SCONA7; /alternatively FEsbit FE = SCONA7;sbit TI = SCON;sbit RI = SCONS;sbit T2EX = P Ml;sbit T2 = P19/* T2CON */ sbit TF2 = T2CONA7;sbit EXF2 = T2CONA6;sbit RCLK = T2CONA5;sbit TCLK = T2CONA4;sbit EXEN2 = T2CON3;sbit TR2 =

17、 T2CONA2;sbit C_T2 = T2CONA1;sbit CP _RL2= T2CONAO;/* PCA Pin */ sbit CEX3 = P 2八4;sbit CEX1 = P 3八5;sbit CEXO = P 3八7;sbit ECI = P 3八4;/* IE */ sbit EA = IE7;sbit EP CA_LVD = 06;sbit EADC_S PI = 05;sbit ES = 04;sbit ET1=03;sbit EX1=02;sbit ETO=IE;sbit EXO=00;/* IP */ sbit PP CA_LVD = IP 八6;sbit P A

18、DC_S PI = IPpsbit PS = IP%;sbit PT0#include #include sbit cs_4004 = P 0八0;sbit sclk_4004= P 0八3;sbit mosi_4004= P 0八1;sbit miso_4004= P 0八2;sbit rac_4004 = P 0八4;延时程序sbit in t_4004 = P 0八5;void delay(unsigned int i) /while(i-);void stopmode() / 停止unsigned char m,i,j;cs_4004=1;sclk_4004=0;cs_4004=0;m

19、=0x30;for(i=0;i8;i+)m=_cror_(m,1);mosi_4004=CY;sclk_4004=0;sclk_4004=1;cs_4004=1;void powerdown() / 下电unsigned char m,i,j;cs_4004=1;sclk_4004=0;cs_4004=0;m=0x10;for(i=0;i8;i+)m=_cror_(m,1);j=m1;mosi_4004=CY;sclk_4004=0;sclk_4004=1;cs_4004=1;void powerup()/ 上电unsigned char m,i,j;cs_4004=1;sclk_4004=0

20、;cs_4004=0;m=0x20;for(i=0;i8;i )m=_cror_(m,1);j=m1;mosi_4004=CY;sclk_4004=0;sclk_4004=1;cs_4004=1;void record4004(unsigned int address) / 录音 address- 录音地址 0-2400unsigned char i,m,j;unsigned int datasoute=0;powerup();powerup();cs_4004=1;sclk_4004=0;m=0xa0;cs_4004=0;for(i=0;i16;i+)address=_iror_(addre

21、ss,1);datasoute=address1;mosi_4004=CY;sclk_4004=0;sclk_4004=1;for(i=0;i8;i+)m=_cror_(m,1);j=m1;mosi_4004=CY;sclk_4004=0;sclk_4004=1;cs_4004=1;sclk_4004=0;m=0xb0;cs_4004=0;for(i=0;i8;i+)m=_cror_(m,1);j=m1;mosi_4004=CY;sclk_4004=0;sclk_4004=1;cs_4004=1;P0=0xff;datasoute=0;while(int_4004=1) / 存储地址换行标志i

22、f(rac_4004)/ 记录本次录音所占的行数 ( 也就是本次录音有多大 )delay(20000);datasoute+;/ 在这里应该加上自己的程序,就是录音退出程序放音程序/while end;void audioout(unsigned int address) /unsigned char i,m,j;unsigned int datasoute;powerup();cs_4004=1;sclk_4004=0;cs_4004=0;m=0xe0;for(i=0;i16;i+)address=_iror_(address,1);datasoute=address1;sclk_4004=

23、0;mosi_4004=CY;sclk_4004=1;for(i=0;i8;i+)m=_cror_(m,1);j=m1;sclk_4004=0;mosi_4004=CY;sclk_4004=1;cs_4004=1;sclk_4004=0;m=0xf0;cs_4004=0;for(i=0;i8;i )m=_cror_(m,1);j=m1;sclk_4004=0;mosi_4004=CY;sclk_4004=1;cs_4004=1;P0=0xff;while(int_4004=1)void main()record4004(0);audioout(0);while(1);例使用 TX-1C 实验板

24、上两个独立按键调节直流电机的转速,同时在实验板的数码管上象征性的显示相应的转速值。通过控制单片机输出不同占空比的 PWM信号来控制直流电机的转速(感性认识)。( P434 )#include #define uchar unsigned charsbit dula=P 2八6; /数码管显示段选 I/O 口定义sbit wela=P 2八7; /数码管显示段选 I/O 口定义sbit dianji=P 1八7; /控制电机 I/O 口定义sbit jia_key=卩3八6; /加速键uchar num=0,show_num=1,gao_num=1,di_num=3;uchar code tab

25、le=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar j,k;for(j=i;j0;j-)for(k=125;k0;k-);dula=0;P0=tableshow_num;dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table0;dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);P0=table0;dula=1;dula=0;P0=0xfb;wela=1;wela=0

26、;delay(5);P0=table0;dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(5);if(jia_key=0)if(jia_key=0)if(num=4)while(jia_key=0);/ 等待按键松开if(jian_key=0)delay(5);if(jian_key=0)num-;elsenum=0; / 已经达到最小 0,则保持while(jian_key=0);switch(num)case 0:show_num=1; /数码管第一位显示的数据gao_num=1; /PWM信号中高电平持续时间标志为 1di_num=3; /PWM信号中低

27、电平持续时间标志为 3,此时速度最慢break;case 1:show_num=2;gao_num=2;di_num=2;break;case 2:show_num=3;gao_num=3;di_num=1;break;case 3:show_num=4;gao_num=4;di_num=0; / 此时速度最快break;uchar i;if(di_num!=0)for(i=0;idi_num;i+)dianji=0; /实现PW信号低电平输出display(); /利用显示函数起延时作用,这样也不影响数码管显示,一举两得for(i=0;igao_num;i+)dianji=1; /实现PWM

28、&号高电平输出display();void main()while(1)dianji=0;key();dispose();qudong();例步进电机应用C 语言程序设计( P444 )#include #define uchar unsigned charuchar num=0,show_num=2,maichong=4,table_begin=0;uchar code table1=0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01;/uchar code table1=0x09,0x03,0x06,0x0c,0x08,0x04,0x02,0x01;/uchar code table1=0x01,0x04,0x02,0x08,0x08,0x02,0x04,0x01;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar j,k;for(j=i;j0;j-)for(k=125;k0;k-);dula=0;P0=tableshow_num;dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table0;dula=1;dula=0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1