急急急!!80C51单片机波特率问题!!
- 提问者网友:愿为果
- 2021-03-19 00:33
- 五星知识达人网友:duile
- 2021-03-19 00:48
若该接口每秒钟传送9600个字符,不考虑字符间隔则波特率为9600×10 = 96000。
- 1楼网友:执傲
- 2021-03-19 02:09
刚好我这有份资料!可以参考参考!
7. i/o并行口直接驱动led显示
1. 实验任务
如图13所示,利用at89s51单片机的p0端口的p0.0-p0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。
2. 电路原理图
图4.7.1
3. 系统板上硬件连线
把“单片机系统”区域中的p0.0/ad0-p0.7/ad7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:p0.0/ad0与a相连,p0.1/ad1与b相连,p0.2/ad2与c相连,……,p0.7/ad7与h相连。
4. 程序设计内容
(1. led数码显示原理
七段led显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。
led数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阴极的字形码见表2
“0” | 3fh |
| “8” | 7fh |
|
“1” | 06h |
| “9” | 6fh |
|
“2” | 5bh |
| “a” | 77h |
|
“3” | 4fh |
| “b” | 7ch |
|
“4” | 66h |
| “c” | 39h |
|
“5” | 6dh |
| “d” | 5eh |
|
“6” | 7dh |
| “e” | 79h |
|
“7” | 07h |
| “f” | 71h |
|
(2. 由于显示的数字0-9的字形码没有规律可循,只能采用查表的方式来完成我们所需的要求了。这样我们按着数字0-9的顺序,把每个数字的笔段代码按顺序排好!建立的表格如下所示:table db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
5.程序框图
图4.7.2
6. 汇编源程序 org 0 start: mov r1,#00h next: mov a,r1 mov dptr,#table movc a,@a+dptr mov p0,a lcall delay inc r1 cjne r1,#10,next ljmp start delay: mov r5,#20 d2: mov r6,#20 d1: mov r7,#248 djnz r7,$ djnz r6,d1 djnz r5,d2 ret table: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end 7. c语言源程序 #include <at89x51.h> unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char dispcount; void delay02s(void) { unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=248;k>0;k--); } void main(void) { while(1) { for(dispcount=0;dispcount<10;dispcount++) { p0=table[dispcount]; delay02s(); } } }