当前位置:首页 > 从零开始 > 正文

非常简短而且入门级的51单片机程序,但是有谁能解答我的疑问?

2023-01-08 14:55:43  来源:网络   热度:

一、非常简短而且入门级的51单片机程序,但是有谁能解答我的疑问?

var =4之后var的值就没再变过,!var永远为假 所以if不会执行,相当于

void main()

{

int var =4;

while(1)

{

delay(100);

P0=table_d[var];

}

}

二、如何设计8051单片机应用系统的复位电路

第十六课:51单片机的复位

51单片机高电平复位。以当前使用较多的AT89系列单片机来说,,在复位脚加高电平2个机器周期(即24个振荡周期)可使单片机复位。复位后,主要特征是各IO口呈现高电平,程序计数器从零开始执行程序。

复位方式有两种。

1. 手动复位:按钮按下,复位脚得到VCC的高电平,单片机复位,按钮松开后,单片机开始工作。

2. 上电复位:上电后,电容电压不能突变,VCC通过复位电容(10μF电解)给单片机复位脚施加高电平5V,同时,通过10KΩ电阻向电容器反向充电,使复位脚电压逐渐降低。经一定时间后(约10毫秒)复位脚变为0V,单片机开始工作。

参考资料:

三、51单片机,串口调试时为什么开始老是从80开始。。视频上是从0开始的【附代码】。

检查波特率 还有你的串口写的对吗

四、51单片机计时器溢出后是不是就自动重新从零开始计时了?

标准的51单片机,不管LZ是否说错,不管计数、还是计时,所谓溢出,都是指计数值从 FF→00的跳变,既然是 跳到00了,自然就是从0开始计时了。

不过,现在增强型的定时器,可以设置目标值(如 0xaa),定时器从0计到 0xaa,就产生中断,此时 计时值 并不是 00,如果不操作该值,那么定时器将继续计数,到0xab、0xac……0xff,从0xff 到 0 的时候,不会再产生中断,等下一次计到 0xaa 时 又产生中断。

五、利用51单片机,5个数码管设计一个秒表,要求在数码管上显示的数据从0开始每0.1秒加1,有启动,暂停,清零键 谢谢大家了。。要个完整的程序!!!谢谢了

//开始 P2^0//暂停 P2^1//清零 P2^2

#include <AT89X52.H>unsigned char Lcd_code[8];unsigned char code disp_code[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90};unsigned char c_flag;void scanf(void);

void InitTimer0(void){ TMOD = 0x01; TH0 = 0xf8; TL0 = 0x30; EA = 1; ET0 = 1; TR0 = 1;}

void main(void){InitTimer0();while(1);}

void Timer0Interrupt(void) interrupt 1 //5ms{static unsigned char Seg,Sec;unsigned char i; TH0 = 0xf8; TL0 = 0x30;if(++Seg>=8)Seg=0;//P3=~(0x01<<Seg); //数码位选 我的单片机是8550驱动的这里要取反P3=0x01<<Seg; //数码位选if(Seg==6) P0=disp_code[Lcd_code[Seg]]&0x7f; //输出的数+点else P0=disp_code[Lcd_code[Seg]]; //输出的数if(c_flag==1) { if(++Sec>=50) { P2_7=~P2_7; for(i=8;i>0;i--) { if(Lcd_code[i-1]<9){Lcd_code[i-1]++;break;} else Lcd_code[i-1]=0; } Sec=0; } }if(c_flag==2) { for(i=0;i<8;i++){Lcd_code[i]=0x00;} Sec=0; }scanf();}

void scanf(void){static unsigned char wait;unsigned char key_code;key_code=P1&0x07;if(key_code!=0x07) { if(++wait>=100) { wait=0; } if(wait==2) { switch(key_code) { case 0x06:c_flag=1;break; case 0x05:c_flag=0;break; case 0x03:c_flag=2;break; default:break; } } }else wait=0;}

一周热门