51单片机
无
我不想火
任重而道远
展开
-
单片机 串口通信实验
思考题:设计两个单片机通过串口方式1进行全双工数据通信,要求将波特率设置为2400,晶振频率为11.0592MHz,请分别编写发送程序和接收程序,接收端需使用液晶屏幕显示接收内容,发送端可循环发送一个字符串(自己定义一个字符串,例如“Welcome to Wuhan”)。(1)电路图如下:(2)设计思路:1、电路:两个单片机都是用P0口连接LCD1602数据线的0~7位,P20连接寄存器选择位RS,P21连接读写选择位RW,P2^2连接使能位E。然后甲机的RXD连乙机的TXD,甲机的TXD连乙机原创 2020-08-11 07:13:58 · 5217 阅读 · 0 评论 -
单片机 ADC0809模数转换实验
电路图如下:1、简单描述ADC0809工作过程ADC0809工作过程:(1)把通道地址送到ADDA~ADDC上,选择一个模拟输入端。(2)在通道地址信号有效期间,ALE上的上升沿把该地址锁存到内部地址锁存器。(3)START引脚上的下降沿启动A/D转换。(4)变换开始后EOC引脚呈现低电平,EOC重新变成高电平时表示转换结束。(5)OE信号打开输出锁存器的三态门并送出转换结果。2、在LCD1602上实现采样电压值的显示,输出参考下图(可自定义显示格式,但必须显示实际电压,精确到0.01V)原创 2020-08-11 07:13:47 · 21489 阅读 · 4 评论 -
单片机 DAC0832数模转换实验
1、描述DA0832实现DA转换的基本原理1、DAC0832是一个八位D/A转换器,D/A转换电路是一个R-2RT型电阻网络,可实现8位数据的转换。2、数据总线——DI7~DI0:转换数据输入控制总线(控制输入寄存器的打开)——ILE(数据锁存允许信号,高电平有效),CS(片选信号,低电平有效),WR1(写信号,低电平有效)控制DAC寄存器的写入——WR2(写信号,低电平有效),XFER(数据传输控制信号,低电平有效)3、通过对两个输入寄存器进行控制,可以采用双缓冲、单缓冲、直通的输入方式。原创 2020-08-10 12:45:51 · 14852 阅读 · 10 评论 -
单片机 LCD1602显示实验
1、请描述液晶显示器的显示原理,及其与数码管相比的技术特点。显示原理:液晶显示器是利用偏光板这个特性来完成的,利用上下两片栏栅之间相互垂直的偏光板之间充满了液晶,再利用电场控制液晶分支的旋转,来改变光的行进方向。与数码管相比:数码管是元件,显示器是器件。数码管在单片机中,一般仅做数字显示,而LCD可以显示数字、字符、汉字和图形。还有LCD显示器体积小,厚度薄,重量轻、耗能少、工作电压低(1.5到6V)且无辐射,无闪烁并能直接与CMOS集成电路匹配。2、定义uchar变量data,要求在LCD原创 2020-08-10 11:32:53 · 5998 阅读 · 0 评论 -
单片机 LCD1602屏幕的某一随机位置上反复出现字符‘8’然后擦除
在LCD1602屏幕的某一随机位置上反复出现字符‘8’然后擦除,注意字符‘8’出现在每个位置上的机率应尽量相同。产生随机位置的方法:用定时器加 rand()随机函数来实现单片机上电之后通过按键start去启动取随机数,若是单片机上电就立即取随机数的话,那每次上电随机的结果都是一样的。所以用循环来判断是否和前面取的随机数相同,相同则进入下次取随机数,不同则存入数组。代码如下:#include <reg51.h> #include <intrins.h>#include原创 2020-08-10 11:13:36 · 877 阅读 · 0 评论 -
单片机 串口采用中断服务收发数据
下图中左边的单片机用串口接收数据,用C语言编程,实现将接收的数值送到数码管进行实时显示(接收数据范围为0~9)。(1) 已知晶振频率=11.0592MHz;(2) 要求配置串口工作在异步方式,8位数据位,波特率=2400;(3) 必须用中断服务程序对接收数据进行处理并驱动显示,主程序中的后台循环while应为空。//发送#include <reg51.h>sbit button =P1^0;void delay(unsigned int n);char cnt原创 2020-08-10 11:08:02 · 1344 阅读 · 0 评论 -
单片机 灯光规律闪烁
用C51语言实现以下功能:设计一个灯光闪烁装置,闪烁模式为:电路图如下:代码如下:#include <reg51.h>unsigned char code display_list[4]={0xe7,0xdb,0xbd,0x7e};void delay(unsigned int n){unsigned int cnt; for(;n>0;n--){ for(cnt=0;cnt<1000;cnt++); }}void main(void){ uns原创 2020-08-10 10:56:16 · 667 阅读 · 0 评论 -
单片机编程实现2位秒表计时(利用仿真软件proteus)
如图,要求编程实现2位秒表计时,计时范围为00-99,溢出回零。同时还要具备以下功能:当点触START按键后才开始计时;计时过程中若点触RESET按键,则时间回零。晶振频率等于12MHz,秒误差不大于50%,建议使用软件延时实现1秒周期。代码如下:#include <reg51.h>unsigned char code display_list1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uns原创 2020-08-10 10:46:19 · 5647 阅读 · 2 评论 -
斐波那契数列汇编语言编程计算前16项之和
斐波那契数列的前4项为1,1,2,3。已知斐波那契数列满足规则:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n ≥ 3,n ∈ N*),请用51单片机汇编语言编程计算出斐波那契数列前16项之和=(第1空)(用10进制表示)代码如下:dn0 data 20h;dn1 data 22hdn2 data 24hsum data 26hn data 29h ORG 0000Hstart: MOV R0,#16; MOV n,#1 MOV s原创 2020-08-10 10:41:21 · 2531 阅读 · 0 评论 -
单片机 基础题目
1、当8051单片机上电开机后,运行的第一条指令放在( )存储器的()地址空间里。A.数据存储器,0003HB.程序存储器,0000HC.寄存器, 0013HD.外部程序存储器,000BH答案:B难易程度:易答案解析:复位后寄存器的值题型:单选题2、有关存储器的说法,哪一个不正确( )。A.数据存储器和程序存储器是两个独立的存储器B.数据存储器的工作寄存器区域和位寻址区域相互独立,不重叠C.特殊功能寄存器属于内部数据存储空间的一部分D.内部数据存储器的位寻址区域与字节寻址区域相互独原创 2020-08-10 10:32:10 · 2281 阅读 · 0 评论 -
单片机8051指令集
原创 2020-08-10 10:29:03 · 1568 阅读 · 0 评论 -
单片机 P0口、P1口 寄存器和引脚的不同
已知8051单片机的P0口8个引脚开路,P1口8个引脚均通过1k电阻上拉到电源(VCC)。MOV A, #10MOV B, #20MOV P1, AMOV P0, BADD A, BMOV B, P0ADD A, P1执行以上程序后,寄存器A =(第1空),B=(第2空),P0锁存器=(第3空),P1锁存器=(第4空)。答案:第一空:29;0x1d;0x1D;1dh;1dH;1Dh;1DH第二空:0;0x00;00h;00H第三空:20;0x14;14h;14H第四空:1原创 2020-08-10 10:23:30 · 3247 阅读 · 0 评论