51单片机 用stc烧写 我的是学习板 然后 扫描不到串口 怎么破如图 我也是不

51单片机 用stc烧写 我的是学习板 然后 扫描不到串口 怎么破如图 我也是不,第1张

问题一:单片机开发板上的硬件怎么使用 首先,你需要仔细看开发板的原理图。你需要把单片机插到开发板的芯片座上,芯片座的引脚会和PCB板连接,PCB板上的走线会将芯片座的引脚连接到具体硬件上。开发板上的硬件设备都是通过开发板的PCB走线连接好的,你只需要在原理图上寻找具体硬件连接到单片机的管脚关系。

目测你的开发板是51开发板,可能用的是STC单片机。你需要准备类似Keil这样的开发工具,C和汇编都可以编程的。具体怎么编程,建议你去图书馆借阅书籍:新概念51单片机C语言教程(教你怎么用C编程)、单片机原理与实践指导(教你怎么用汇编编程)、C Programming Language(经典,教你C语言的)

另外你的这个开发板完全配套郭天祥的视频,建议你买本郭天祥的书《新概念51单片机C语言教程》,参照郭天祥的视频来学习这个开发板会快一些。

你的开发板看起来和下图这个开发板布线一致,

你把图放大来看,上图PCB的丝印层都有每个模块的简单说明的。

如果看不清,请参阅下面的描述:

1 单片机最小系统:可以使用51单片机如STC89C52,AT89S52,也可以使用AVR单片机如AT mega 16,AT mega 128等系列。

2 流水灯模块:我们使用了8个红色led,可以进行闪关灯实验,流水灯实验。

3 独立键盘模块:4个小按键组成,可以做外中断INT0、INT1 ,外定时器T0、T1 实验。

4 矩阵键盘模块:16个小按键组成可以做外中断INT0、INT1 ,外定时器T0、T1 实验。

5 数码管模块:由6个一位一体数码管组成,可以显示0,1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f等简单信息,构成信息交流的人机界面。

6 蜂鸣器模块:可以用来做报警实验,也可以对歌曲进行编码,用来唱歌。

7 AD模块:主芯片为ADC0804,采集模拟信号(1路输入),并转化为数字信号,内置8位转换器(分辨率为8位)。

8 DA模块:主芯片为DAC0832, 把数字信号转化为模拟信号,分辨率为8位。

9 串口通信模块:主芯片我们使用了MAX232的升级版MAX3232,通信性能更好。MAX3232把TTL电平转换为RS232电平。

10 1602液晶显示模块:每行显示16个字符,可以显示两行。这款单片机使用并行接口。

11 12864液晶显示模块:并行 *** 作方式,可以在液晶的任意位置显示数字,符号,汉字,图像。

12 E2PROM模块:使用I2C总线通信协议(51单片机模拟),主芯片为ATMEL公司的AT24C02N,可以进行数据存储实验。

13 定时器/计数器模块。

14 DS18B20温度采集模块:采用单总线协议。

15 红外遥控器DS18B20模块:包括红外接收头,可以进行短程遥控。

16 直流电机驱动模块:本款开发板含有直流电机驱动模块,可以直接驱动直流电机(本款开发板赠送直流电机)。

17 步进电机驱动模块:本款开发板含有步进电机驱动模块,可以直接驱动步进电机。

18 继电器驱动模块:本款开发板含有继电器驱动模块,可以做继电器相关实验。

19 LED点阵显示模块:本款开发板赠送88点阵。

20 LM7805 5V稳压模块,可以使用外接电源,方便单片机在无电脑供电时正常使用可以输入5-18V外电源。

21 USB转TTL电平模块:使用CH340T主芯片,可以保证一根USB线就可以下载。

22 RTC实时时钟DS1302模块:可以进行实时时钟>>

问题二:单片机开发板有哪些功能 我学的是吴鉴鹰单片机开发板,是51的,功能是很全面的,我把这个板子的功能列举下

资源介绍

1、一个CH340的USB转UART芯片,实现USB下载程序,为无串口的笔记本电脑提供下载方便。

2、板子上电源入口有一个自恢复保险丝,可以有效的保护您的电脑主板和开发板。加上这个保险,作为初学的你,即使不小心短路了,也不会烧主板和单片机。

3、板子自带单片机,一个STC89C52RC,有8K的程序空间和512字节的数据空间

4、板子上共有18个LED小灯,其中一个是USB电源指示灯,插上电源就亮。还有一个是单片机电源指示灯。

5、板子上共有8个数码管,可以用来做数码管的简单秒表实验,计算器功能,显示温度时间等等。

6、板子上配有一个数字旋转编码器,可以通过旋转完成数据的加、减以及作为确认按键使用。

7、板子上配套一个DS1302实时时钟芯片,可以用来做实时时钟实验,弄懂电子表的工作原理。

8、板子上配一个24C02的EEPROM芯片,用来保存掉电后不准丢失的重要数据,用来学习IIC通信实验。

9、板子上配有一个PCF8591,这个芯片集成了AD和DA,可以用来通过AD来进行电压采集实验,通过DA来产生方波、三角波、正弦波信号。

10、板子上集成1602液晶屏,可以用来学习液晶显示,做温度显示实验,秒表显示实验等。

11、板子上共集成有21个按键,其中1个单片机复位按键,16个矩阵按键。分为0到F共16按键,还有四个独立式按键,通过与门74HC08将按下信息送给单片机中断口。

12、板子上有一个无源蜂鸣器,可以用来做音乐输出实验让你充分了解生日贺卡的工作原理。

13、板子上集成一个DS18B20温度传感器,用来学习实现数字温度计。

14、板子上集成一个红外接收管,用来学习红外通信的原理。

15、板子上共4个74HC595芯片,用来驱动16个LED,8个数码管,74HC595在工控领域的显示很常用,可以节约大量的IO口资源,为实现一个复杂系统化工作打下基础。

问题三:初学者怎样使用单片机开发板 我也是在用这本书在学,因为你是高三毕业个人建议是买一块配套的板子,虽然确实是贵了一点,但确可以节省不少麻烦。而且那板子还行,最少工能够齐。

就比如 郭天祥要教你做第14章的时钟那你有可能也想来个掉电保护,那么你须要一块AT24C02这一类型的芯片;别的板子不一定有,你又没有实验室。那要么不用,要么在淘宝上买,先不说价格,你也没工具焊接啊!!

像上图,你能用到红外等别的东西时,你也差不多可以换板子了!!

问题四:51单片机开发板的使用! 单片机开发板要正常工作,一般需要这几个基本条件:

1供电电源;

一般开发板上提供两种供电方式,USB供电梗专用电源供电。使用USB供电你只要用一根USB线将开发板USB电源接口与电脑的USB接口相连即可;使用专用电源(一般开发板配带)供电只要将专用电源一头接220V市电一头接开发板专用电源供电接口即可;

2系统时钟;

检查你的开发板上晶振是否正确连接,晶振频率是否正确;

3复位电路;

检查你的开发板上复位电路是否正常;

4程序下载;

要将编写好的C源程序下载到单片机内执行,你需要:

(1)硬件连接:一般使用出串口下载方式,用串口线一头接开发板上程序下载串口一头接电脑上任一串口;

(2)软件准备:编辑好的C源文件,利用集成开发环境(keil C使用较广)调试无误后,编译连接生成相应的hex文件,程序下载软件(如stc isp v488)做相应设置,如选择要下载的hex文件,设置下载速度,选择单片机型号等等),保证前3个条件具备,点击下载,出现提示后给开发板上电,等待程序下载成功。复位开发板运行程序。

注:以上回答仅针对一般情况(如采用USB下载,不同集成开发环境,非STC51系列单片机等这些情况会略有差异,可留言咨询)

问题五:单片机开发板怎么使用? 这个我就不具体回答你了。

可以参考经验:jingyanbaidu/c

问题六:自己做单片机开发板需要什么东西 51还是算了吧,直接做一个avr的学就可以了

电路从几个简单部分入手:

1电源,用个7805神马的,网上多的是电路,LM7805三端稳压电源,几个电容二极管神马的搞定了

2复位电路,加个按键手动复位,按键按下拉低reset引脚,要加个电阻上拉的,1k就可

3仿真和下载程序接口,有仿真器建议将jtag口引出到5x2端子,avr的jtag引脚说明网上可以百度到,单片机手册也有。没有仿真器用isp方式下载程序,要将isp用到的引脚引出到端子,ourdev可查到,有很多做开发板的例子,甚至有pcb

4将所有io口引出,用插针把芯片围上,方便试验,再搞8个发光二极管,几个按键引到IO口

5其他的就看你的需要了,有很大的发挥空间,比如加个232芯片和DB9端子,到时让单片机和电脑通信,要准备串口线。想玩液晶神马的,用杜邦线就搞定了,不用做到板子上。

大体上就这么多东西,想加上神马再看相应资料。我手上有一块淘宝买的atega128的开发板,有原理图和例程,资料挺全,有不明白留言啊,希望能帮到你。

问题七:单片机开发板如何焊接?什么工具? 用刀口的电烙铁,然后弄05mm左右粗细的锡线,开始不熟悉的时候拿废板子练手,熟悉了就能自己焊接了,一般烙铁温度开到400,焊MCU的时候可以调低点郸350左右,不要太高。还需要的工具有,尖嘴的镊子,吸锡器,万用表(测电压和开路短路),松香(用来清除多余的锡)等。

问题八:拿到单片机开发板后,该如何开始学习 编一些小程序,最简单的像流水灯、加法运算器、抢答器什么的,电脑编译一下,传到开发板上,演示一下就可以了,程序暂时还不会编,可以网上搜一些,要想认真学习单片机,推荐你一本书 《单片机应用技术》中国劳动社会保障出版社出版 劳动和社会保障部教材办公室组织编写,我自己感叮这本书特别容易理解接受,而且里边详细讲了好多实用性很强的小例子,在开发板上都可以实现,试试吧,祝你早日学好单片机,加油I(^ω^)J!

问题九:51单片机开发板的功能介绍 1、8个LED灯,可以练习基本单片机IO *** 作,在其他程序中可以做指示灯使用。2、2个四联8段数码管,显示温度数据,HELLO欢迎词、时钟等。3、高亮88点阵,如练习数字,字母,显示,或者小游戏的开发如贪吃蛇等。4、4个独立按键,可以配置为中断键盘,为程序的按键扫描节省更多的时间。5、8个AD按键,主要设计为游戏开发如推箱子等,去掉了矩阵键盘,AD键盘在实际中的应用相当广泛,如电视机加减搜台等都是采用AD键盘,一根AD线可以扩展几百个按键,更接近工程。6、PCF8591具有AD/DA功能,其采用IIC总线协议,可练习IIC总线的 *** 作。7、DS18B20:单线多点检测支持。8、光敏电阻测试光线强度,感受白天黑夜的区别。9、FM收音机:能接收80M到110MHz之间的FM频段。可实现自动搜台和手动搜台。10、DS1302时钟芯片提供实时时钟,带3V电池,在掉电的情况下,时钟仍然可以继续运行。11、可读写SD卡文件系统,保存数据显示到TFT液晶屏等。12、继电器可以控制高电压的设备,高压危险,请小心使用。13、直流电机接口,控制直流电机。14、步进电机接口,控制步进电机运行。15、蜂鸣器,可以做电子琴、音乐发声等。16、74HC595芯片练习串行转并行数据扩展。17、74HC573锁存扩展芯片,可以扩展接口。18、ULN2003电机驱动芯片。(这里用它来驱动步进电机,直流电机,继电器和蜂鸣器)19、MAX232串口数据传输延长发送距离。(可与计算机通信,同时也可做为STC单片机下载程序的接口)20、PL2303下载单片机,一线下载,直接的USB下载方式,高速下载。21、TFT液晶屏,单片机也可以控制彩屏了,让你的学习充满乐趣22、nRF24L01无线数据传输芯片接口,可以插nRF24L01芯片,做高速无线数据传输。23、LCD1602液晶接口,字符液晶两行,每行可以显示16个字符。24、LCD12864带字库液晶接口。25、LCD12864图形液晶接口。26、DS18B20单线多点温度采集接口。一根线上便可拓展多个DS18B20温度传感器,先提供两个。27、提供ISP下载接口,可下载AVR、AT的单片机。支持AVR单片机。28、40针扩展接口,可以无限扩展。以后的DZR-01A开发板配件将从此端口扩展出去。29、PS2鼠标键盘接口。配合红外遥控器甚至可以遥控我们的电脑!(配例程)30、AVR/51复位按键。可以复位51 STC AVR单片机,全部支持31、TEA5767的IIC总线控制。学习IIC控制32、SD卡的SPI总线控制。扩展大容量存储器33、红外遥控接收器,可采集红外遥控发出的信号,可使用遥控信号控制其他设备。34、外接5V供电电源座。35、RXD、TXD、POWER电源指示灯36、40PIN紧锁座(非常方便单片机芯片的取放)37、带LM1117-33稳压芯片(为彩屏液晶,SD卡和无线模块供电)38、USB供电(USB可以提供500MA的电流,完全能满足开发板的需求了)39、预留电源+5V,GND接口各四个(方便用户扩展其他外围电路时取电和共地)

问题十:如何在51单片机开发板上烧写程序 淘宝搜索ISP烧录线。

烧录线一头连接单片机上的某几只脚,一头连接电脑。

用软件把你的程序转换成hex格式的,然后用烧录软件通过下载线烧录到单片机里面。

买isp线的时候记得要看看支不支持你的单片机型号。

/数显秒表——火柴天堂作品-20121210/

/源程序默认硬件环境:52单片机,110592MHz晶振,四位共阳数码管,P0段选,P20-P23高电平位选,P20最高位,P23最低位,P14-17四独立按键(开始,停止,继续,清零)/

/功能要求:数码管高2位显示“分”,低2位显示“秒”,中间使用小数点(常亮)分隔/

#include"reg52h"//包含52头文件

#define TRUE 1//定义布尔量'1':真

#define FALSE 0//定义布尔量'0':假

#define uchar unsigned char//定义 无符号字符型数据 简称

#define uint unsigned int//定义 无符号整型数据 简称

#define th0 0x4c

#define tl0 0x00//50ms at 110592MHz(定时器工作模式1 状态)

#define th1 0xfc

#define tl1 0x66//1ms at 110592MHz(定时器工作模式1 状态)

#define T1sAt50msCount 20//定义 1s 在 50ms 计时基准状态下 的计数值 为20

#define SEG_Num 4

#define SEG_Data P0//数码管段驱动接口

#define SEG_En P2//数码管位驱动接口

#define SEG_AllOff (SEG_En&=0xf0)//关闭所有数码管(位驱动)

#define DisTimeAt1msCount 4//单'位'数码管显示时间,数码管刷新频率f=1/(Nt),其中 N为数码管位数,t 为单'位'数码管显示时间

uchar code SEG_B_List[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管代码表"0-9"

sbit KeyStart=P1^4;//开始键

sbit KeyStop=P1^5;//停止键

sbit KeyGoOn=P1^6;//继续键

sbit KeyClear=P1^7;//清零键

#define NotKeyValue 0//无按键键值

#define KeyStartValue 1//开始键键值

#define KeyStopValue 2//停止键键值

#define KeyGoOnValue 3//继续键键值

#define KeyClearValue 4//清零键键值

uchar Sec=0,Min=0;//秒、分 寄存器

uchar bdata Flag=2;//标志位 寄存器

sbit T1sTimesUpFlag=Flag^0;//1s时间到标志位

sbit DisplayFlag=Flag^1;//显示(刷新)标志位

sbit ClockStartFlag=Flag^2;//时钟开始标志位

sbit ClearFlag=Flag^3;//清零(请求)标志位

void Timer0() interrupt 1//定时器0中断函数

{

static uchar t50ms;

TL0=tl0;

TH0=th0;

if(!ClearFlag)//无 清零请求

{

t50ms=++t50ms%T1sAt50msCount;//先对50ms计时变量加1,后对变量范围进行限制(0~19)(即对20取模)

if(!t50ms) T1sTimesUpFlag=TRUE;//若计时变量归0,表示计时变量曾经到达20(1s),则对1s计时标志位 置位

}

else//有 清零请求

{

t50ms=0;//清 50ms寄存器

ClearFlag=FALSE;//清 清零标志位

}

}

void Timer1() interrupt 3

{

static uchar t1ms;

TL1=tl1;

TH1=th1;

t1ms=++t1ms%DisTimeAt1msCount;//先计数值加1,后对计数范围进行限制0~(DisTimeAt1msCount-1)

if(!t1ms) DisplayFlag=TRUE;//若定时计数值归0,则表示计数值曾到达 单'位'显示时间(DisTimeAt1msCount),显示标志 置位

}

void TimerInit()

{

TMOD=0x11;//开启定时器0、定时器1,并都工作在模式1

TH0=th0;

TL0=tl0;

TR0=0;//未启动T0定时器 计时(上电时,秒表停止状态)

ET0=1;//允许定时器0中断

TH1=th1;

TL1=tl1;

TR1=1;//启动T1定时器 计时

ET1=1;//允许定时器1中断

EA=1;//开启系统中断功能

}

void TimesUpdata()//时间更新函数

{

if(T1sTimesUpFlag)//若 1s计时标志位 为 真,即 1s定时时间到

{

Sec=++Sec%60;//秒Sec在0-59范围内加1

if(!Sec) Min=++Min%60;//若秒Sec 重归0,则分Min在0-59范围内加1

//if(!Sec) Min=++Min%100;//分Min 计数范围0-99(与上一条语句2选1)

T1sTimesUpFlag=FALSE;//清 1s计时标志位

}

}

uchar KeyScan()

{

if(KeyStart && KeyStop && KeyGoOn && KeyClear) return NotKeyValue;//无按键按下,返回 无按键键值

if(!KeyStart) return KeyStartValue;//开始键按下,返回 开始键键值

if(!KeyStop) return KeyStopValue;//停止键按下,返回 停止键键值

if(!KeyGoOn) return KeyGoOnValue;//继续键按下,返回 继续键键值

if(!KeyClear) return KeyClearValue;//清零键按下,返回 清零键键值

return NotKeyValue;//误 *** 作,返回 无按键键值

}

void KeyResp()//按键响应函数

{

static uchar KeyValue;//定义静态变量 存储按键值,设置位

static bit KeyDownFlag,KeyReadyFlag;//定义静态变量 按键按下标志位,按键准备(响应)标志位

uchar key_value=KeyScan();//调用 按键扫描函数,并将扫描结果放在 key_value中

if(key_value!=NotKeyValue)//若扫描结果 有按键

{

KeyValue=key_value;//存储按键值

KeyDownFlag=TRUE;//按键按下标志位 置位

KeyReadyFlag=TRUE;//按键准备(响应)标志位 置位

}

else KeyDownFlag=FALSE;//若扫描结果 无按键,则 清 按键按下标志位

if(KeyReadyFlag && !KeyDownFlag)//若按键准备就绪,且无按键按下,则表示已松手情况

{

switch(KeyValue)//选择对应按键处理

{

case KeyStartValue://开始键 处理

TR0=1;//开启 时钟定时器

ClockStartFlag=TRUE;//置 时钟开始标志位

break;//开始键处理结束

case KeyStopValue://停止键 处理

TR0=0;//关闭时钟定时器

ClockStartFlag=FALSE;//清 时钟开始标志位

break;//停止键处理结束

case KeyGoOnValue://继续键 处理

TR0=1;//开启时钟定时器

ClockStartFlag=TRUE;//置 时钟开始标志位

break;//继续键处理结束

case KeyClearValue://清零键 处理

Sec=0;//清 秒

Min=0;//清 分

ClearFlag=TRUE;//置 清零标志位

break;//清零键处理结束

default:break;//其他键处理,无 *** 作

}

KeyValue=0;//清 按键值

KeyReadyFlag=FALSE;//清 按键准备(就绪)标志位

}

}

float Pow_Self(float x,uint y)//自编简易 x 的 y 次方函数,y只能是 非负整数

{

float sum;

if(x==0 && y==0) return;//0 的 0 次方无意义

else if(x==0) sum=0;//可有可无,y!=0的情况已经包含x=0,不加不影响结果,但影响运算速度

else if(y==0) sum=1;//除上述情况外,任何数的 0 次方均为 1

else if(y==1) sum=x;//任何数的 1 次方 均为 本身

else if(y>1) sum=Pow_Self(x,--y)x;//递归调用,降幂

return sum;//返回计算结果

}

void Display(uint dis_num)//显示函数,显示内容为 无符号整型数据 dis_num

{

static uchar dis_loca;//定义静态变量 显示位置

dis_loca=++dis_loca%SEG_Num;//先对 显示位置 加1,后对变量范围进行限制 0~(SEG_Num-1)

SEG_AllOff;//关闭所有数码管显示(位驱动)

SEG_Data=SEG_B_List[(dis_num/(uint)(Pow_Self(10,dis_loca)))%10];//将显示内容(dis_num) 本次需显示的位(dis_loca)上的数值转成代码,并送到数据端口

if(dis_loca==2) SEG_Data &=0x7f;//显示 小数点,用于区分 Min 跟 Sec

SEG_En|=1<<(SEG_Num-1-dis_loca);//开启本次需要显示的位驱动(高驱动)

}

void ClockDisplay()//时钟显示函数

{

if(DisplayFlag)//若 显示标志位 为 真

{

Display(Min100+Sec);//调用 显示函数,显示内容为:高2位显示 分Min,低2位显示 秒Sec

DisplayFlag=FALSE;//清 显示标志

}

}

void main()//主函数

{

TimerInit();//调用 定时器初始化函数

while(1)//循环系统

{

KeyResp();//调用 按键响应函数

TimesUpdata();//调用 时间更新函数

ClockDisplay();//调用 时钟显示函数

}

}

程序就免了,给你几个建议。

你最好把按键的程序和逻辑控制分开写,这样比较清晰,按键驱动的结果就是消抖以后的按键状态,处理完清除,最好用固定时钟驱动少用延时,按键驱动看着容易做好了还是不容易的。

逻辑控制无非就是if else。。。用全局量记录之前的状态,最好有个简单明了的逻辑状态图否则很容易乱套,然后 *** 作继电器就是两个io口就是了。

你用的这个和89c都是stc比较老的型号了,建议你到官网看看,很多新型号跑得更快,程序上能不能通用注意两点,死等延时的时间和硬件上的区别。

stc很多型号都用30和31口下载程序,所以按键会有影响,建议换个io口

继电器的常开和常闭是接线决定的,按键常开和常闭可以用上下拉电阻来控制,硬件上处理一下,主要是要保证系统刚上电之前的这段时间的状态是对的。

51和stm32是完全不同的cpu,如果要移植到stm32上初始化和寄存器 *** 作是不一样的,c语言的层面上大概只有逻辑控制这块儿能用,而且stm32是33V硬件上也要处理。

这个做成并不难,做好就要花些心思,自己做才有意义解决问题就是学习的过程。

以上就是关于51单片机 用stc烧写 我的是学习板 然后 扫描不到串口 怎么破如图 我也是不全部的内容,包括:51单片机 用stc烧写 我的是学习板 然后 扫描不到串口 怎么破如图 我也是不、急求一个89c51设计的电子时钟,有原理图和C程序、单片机开发板怎么用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9605220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存