国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

�������gӭ�M(j��n)�������зf���¿Ƽ����޹�˾�ٷ��W(w��ng)վ��

���F(xi��n)�ڵ�λ�ã����(y��) ��„�YӍ >> ��„?l��)^�l >> N76E003֮����

N76E003֮����

�P(gu��n)�I�֣����Ɔ�Ƭ�C(j��) N76E003 �l(f��)���r(sh��)�g��2019-05-22

N76E003�����ɂ�(g��)�߂�����(qi��ng)���Ԅ�(d��ng)��ַ�R(sh��)�e�͎��e(cu��)�`�z�y(c��)���ܵ�ȫ�p�����������ڃɂ�(g��)���ڵĿ���λ��һ�ӵģ����˅^(q��)�փɂ�(g��)���ڿ���λ������1�Ŀ���λ�ԡ�_1���Y(ji��)β������SCON_1��������Ԕ���Դ���0������
ÿ��(g��)���ڶ���һ�Nͬ������ģʽ��ģʽ0�����Nȫ�p������ģʽ��ģʽ1��2����3���@��ζ���հl(f��)����ͬ�r(sh��)�B�m(x��)�M(j��n)�������ڽ��Վ��н��վ�������ζ���ڽ��յ�ǰһ��(g��)��(sh��)��(j��)�ڱ��xȡ֮ǰ�����ھ��ܽ��յڶ���(g��)��(sh��)��(j��)�����պͰl(f��)�Ͷ��nj�(du��)SBUF�M(j��n)�в����L��(w��n)����(xi��)��SBUF��(sh��)��(j��)��ֱ�ӂ����l(f��)�ͼĴ��������xȡSBUF���L��(w��n)һ��(g��)���Ъ�(d��)��������ַ�Ľ��ռĴ��������ڹ���4�N����ģʽ���κ�һ�Nģʽ���κ��Բ���SBUF��ָ����_(k��i)ʼһ�΂�ݔ��ע������ʹ�ô��ڹ���ǰ���������ù��_P0.7�� P0.6 (RXD �� TXD���_) ���� P0.2�� P1.6 (RXD_1 �� TXD_1)�������1��N76E003�ṩ���`��Ĺ��_�������Ɍ�����0��TXD��RXDͨ�^(gu��)UART0PX (AUXR1.2)����λ����

 

 

 

 

13.1 ģʽ 0
ģʽ0���c�ⲿ�O(sh��)���M(j��n)��ͬ��ͨ�ŵķ�ʽ����ԓģʽ�������Д�(sh��)��(j��)��RXD�_�M(j��n)���հl(f��)����TXD �_���ڮa(ch��n)����λ�r(sh��)����@�N��ʽ�����԰��p������ʽ�M(j��n)��ͨ����ÿ�����ջ�l(f��)��8λ��(sh��)��(j��)����(sh��)��(j��)�����λ�����Ȱl(f��)�ͻ�������������O(sh��)�Þ�FSYS/12(SM2 (SCON.5) �� 0) �� FSYS/2 ��SM2 �� 1�����o(w��)Փ�l(f��)�ͻ���Ք�(sh��)��(j��)�����Еr(sh��)犌�һֱ��MCU�a(ch��n)������˴���ģʽ 0 �����C(j��)ģʽ���D13?1 �@ʾ����ģʽ0��ݔ�r(sh��)��D

 

��D��ʾ����(sh��)��(j��)���p��RXD���_�M(j��n)���հl(f��)��TXD���_�Á�(l��i)ݔ����λ�r(sh��)犡���������λ�r(sh��)犁�(l��i)һλλ����/�l(f��)�͔�(sh��)��(j��)�c��������ͨӍ����(sh��)��(j��)�����Ƴ������λ�_(k��i)ʼ�������ʵ���TXD����λ�r(sh��)��l�ʡ�

 

 

 

��SBUF�Č�(xi��)�딵(sh��)��(j��)����(hu��)�_(k��i)���l(f��)�����˕r(sh��)��λ�r(sh��)犆���(d��ng)��(sh��)��(j��)��RXD�_�����Ƴ���ֱ��8λ��(sh��)��(j��)��ݔ�������ݔ��(bi��o)־λTI (SCON.1) �� 1��ʾ 1 ��(g��)�ֹ�(ji��)��(sh��)��(j��)��ݔ�����
��(d��ng)REN (SCON.4)=1 �� RI(SCON.0)=0 �r(sh��)�����_(k��i)ʼ���Ք�(sh��)��(j��)��ԓ�l�����V���ڿ������Д�(sh��)��(j��)Ҫ��λ�M(j��n)�����@��(g��)�^(gu��)�̌����m(x��)��8λ��(sh��)��(j��)�����ꮅ��Ȼ����՘�(bi��o)־RI����1���Ñ���������RI�����|�l(f��)������һ�ֹ�(ji��)��(sh��)��(j��)��

 

13.2 ģʽ 1
ģʽ1�鮐��ȫ�p���Ĺ�����ʽ������ͨӍģʽͨ������PC�g���{(di��o)�ƽ��{(di��o)����������ƽӿ��gͨӍ��ģʽ1����10λ��(sh��)��(j��)ͨ�^(gu��)TXD�l(f��)����ͨ�^(gu��)RXD���ա�10λ��(sh��)��(j��)�M�����£���ʼλ��߉݋0����8λ��(sh��)��(j��)�����λ��ǰ����ֹͣλ��߉݋1�����������ɶ��r(sh��)��1�Q���� SMOD (PCON.7) �O(sh��)�Þ�1��ʹ�����ʼӱ�.�D13?2�鴮��ģʽ1�l(f��)�ͺͽ��յĕr(sh��)��D.

��SBUF��(xi��)�딵(sh��)��(j��)�_(k��i)ʼ��ݔ����ݔ�l(f��)����TXD���_�����������_(k��i)ʼλ���S����8λ��(sh��)��(j��)λ�������ֹͣλ��ֹͣλ���F(xi��n)����TI��SCON.1������1 ��ʾһ��(g��)�ֹ�(ji��)��ݔ��ɣ�����λ�Ă�ݔ�ٶ�ȡ�Q�ڲ�������
��(d��ng)�����ʰl(f��)����������REN(SCON.4) =1�r(sh��)��ϵ�y(t��ng)�����S�r(sh��)�_(k��i)ʼ���ղ�������(d��ng)RXD�_�ςɜy(c��)��1��0����׃�r(sh��)����(sh��)��(j��)���_(k��i)ʼ���ɘӲ�����(j��)�����ʵĕr(sh��)��l�ʽ�����ֹͣλ��횷���һ���ėl�������յ���(sh��)��(j��)�����b�d��SBUF��

1. RI (SCON.0) = 0

2. ҪôSM2 (SCON.5) = 0, Ҫô���յ�ֹͣλSTOP= 1��ͬ�r(sh��)SM2 = 1�ұ���ַ��Given������ϏV����ַ��Broadcast address��ƥ��r(sh��)��ԔҊ(ji��n) 13.7 ���C(j��)ͨӍ �� 13.8 �Ԅ�(d��ng)��ַ�R(sh��)�e��
��������l���M����SBUF�����d�����Ք�(sh��)��(j��)��RB8��SCON.2����ֹͣλ����RI������1������l�����M����RI���֞�0���](m��i)�Д�(sh��)��(j��)���d����ɽ����^(gu��)�̺������ڿ��������ȴ�RXD�_�ϳ��F(xi��n)��һ��(g��)1-0��ݔ���_(k��i)ʼ�µĔ�(sh��)��(j��)������

13.3 ģʽ 2
ģʽ2��ȫ�p������ͨ��, �cģʽ1��ͬ������ģʽ2��11λ�հl(f��)����(sh��)��(j��)����ʼλ��߉݋0����8λ��(sh��)��(j��)�����λ��ǰ������9λ��(sh��)��(j��)��TB8��RB8����ֹͣλ(߉݋1)�M������9λ����żУ�(y��n)λ����C(j��)ͨ�ŕr(sh��)�Á�(l��i)�^(q��)��?j��n)?sh��)��(j��)�͵�ַ����������ϵ�y(t��ng)�r(sh��)��l�ʵ�1/32 ��1/64���� SMODλ(PCON.7)��(l��i)���á��D13?3 ָʾ����ģʽ2�Ă�ݔ�r(sh��)����

 

��SBUF�Ќ�(xi��)�딵(sh��)��(j��)����(d��ng)TXD���_�l(f��)�ͣ��������_(k��i)ʼλ��Ȼ����8λ��(sh��)��(j��)��TB8��SCON.3���������ֹͣλ��ֹͣλ�l(f��)�ͺ�TI����λ��(bi��o)־��ݔ�����
��(d��ng)REN=1�r(sh��)�����ڿ��M(j��n)�н��ղ�����RXD�ϵ��½��ر�ʾ�����^(gu��)���_(k��i)ʼ����(sh��)��(j��)����(j��)�����ò������M(j��n)�вɘӺͽ��ա�ֹͣλ��횷���һ���ėl�������յ���(sh��)��(j��)�����b�d��SBUF��

1. RI (SCON.0) = 0,

2. ҪôSM2(SCON.5) = 0, Ҫô9thλ = 1ͬ�r(sh��) SM2 = 1�ұ���ַ��Given������ϏV����ַ��Broadcast address��ƥ����ԔҊ(ji��n) 13.7 ���C(j��)ͨӍ �� 13.8 �Ԅ�(d��ng)��ַ�R(sh��)�e��
��������l���M�����t��9λ��(sh��)��(j��)�M(j��n)��RB8(SCON.2)��8λ��(sh��)��(j��)�M(j��n)��SBUF����RI��λ����t��(sh��)��(j��)������(hu��)�b�d����RI���֞�0����ɽ����^(gu��)�̺������ڿ������ȴ�RXD�_�ϵ���һ��(g��)1-0��׃���_(k��i)ʼ�µĔ�(sh��)��(j��)������
13.4 ģʽ 3
����������ģʽ 3�cģʽ 2��ͬ��ģʽ3���ö��r(sh��)��1����������鲨���ʕr(sh��)����D13?3 ģʽ3�Ă�ݔ�r(sh��)�����cģʽ2�](m��i)�в�ͬ��

13.5 ������
���ڵIJ�ͬģʽ�IJ����ʕr(sh��)�Դ���ٶ�����ȫ��ͬ����ԔҊ(ji��n)�� 13�C3. �����O(sh��)����ͬ�IJ�������
��ģʽ1��ģʽ3������0�IJ����ʕr(sh��)�Դ��ͨ�^(gu��)BRCK (T3CON.5)�x�񶨕r(sh��)��1�򶨕r(sh��)��3����(du��)�ڴ���1��ֻ�в��ö��r(sh��)��3����Ψһ�ĕr(sh��)�Դ��

��(d��ng)���ö��r(sh��)��1���鲨���ʰl(f��)��������Ҫ�P(gu��n)�]���r(sh��)��1�Дࡣ���r(sh��)��1�����Þ�Ӌ(j��)��(sh��)�����Ƕ��r(sh��)�������N����ģʽ�����������͑�(y��ng)���У���(hu��)���Þ鶨�r(sh��)���������Ԅ�(d��ng)���b�dģʽ�����r(sh��)��ģʽ2����������ö��r(sh��)��3���鲨���ʰl(f��)������ͬ��Ҳ��Ҫ�P(gu��n)�]���r(sh��)��3�Дࡣ

ģʽ1��ģʽ3�IJ������ǿ�׃����ȡ�Q�ڶ��r(sh��)��1��2��003оƬ����������ʣ������f(shu��)���r(sh��)��1ÿ���һ�������ڰl(f��)��һ�Δ�(sh��)��(j��)����ô�҂�?c��)�ôȥ�?j��)���@�ɂ�(g��)ģʽ�IJ������O(sh��)�Õr(sh��)���P(gu��n)�ļĴ�����ֵ���������ù�ʽȥӋ(j��)����  

13.6 ���e(cu��)�`�z�y(c��)
���e(cu��)�`�z�y(c��)���ڮ���ģʽ (ģʽ 1, 2 �� 3)����(d��ng)���ڿ����ɔ_��(zh��ng)�Z����(d��o)�›](m��i)�Йz�y(c��)����Ч��ֹͣλ�r(sh��)�����l(f��)�����e(cu��)�`�����ڿ��ԙz�y(c��)���e(cu��)�`����ͨ�^(gu��)ܛ����ʾ���e(cu��)��
FE�鎬�e(cu��)�`��(bi��o)־��λ��SCON��7λ���@��(g��)λ������������SM0 ����(d��ng)SMOD0 (PCON.6)��1�r(sh��)�����e(cu��)�`�z�y(c��)���ܴ��_(k��i)��������FE��(bi��o)־��SM0��FE�䌍(sh��)���໥��(d��)���Ę�(bi��o)־λ��
��(d��ng)���e(cu��)�`�l(f��)���r(sh��)��F(xi��n)E��(bi��o)־��Ӳ����λ�������Ҫ��F(xi��n)E���ڴ����Д�����Йz�y(c��)��ע���ڌ�(du��)FE��(bi��o)־λ�M(j��n)���x��(xi��)�r(sh��)��ͬ�r(sh��)SMOD0��횞�1�����FE����λ����ô�´μ�ʹ���յ������_��(sh��)��(j��)��Ҳ����(hu��)�����������(du��)ԓλ����������ܛ����(l��i)�����

 

13.7 ���C(j��)ͨӍ
N76E003����֧�ֶ��C(j��)ͨӍ����׌һ��(g��)���C(j��)��master device�������(g��)�ęC(j��)��slave device���l(f��)�Ͷ���������Ϣ����ͬһ���о���ʹ��ԓ�����^(gu��)���в���Ҫ�Д������ęC(j��)�O(sh��)�乤����ԓ����ֻ����ģʽ2��ģʽ3���M(j��n)�����Ñ��O(sh��)��SM2(SCON.5)��1���_(k��i)�@��(g��)�������Ա㮔(d��ng)һ��(g��)��(sh��)��(j��)�����պ�����(d��ng)?sh��)?λ��1�r(sh��)�������Д����a(ch��n)����ģʽ2�£���9λ��ֹͣλ������(d��ng)SM2��1�r(sh��)�������9λ��0������(hu��)�l(f��)���Дࡣ��ԓ��r������9λ�ܺ�(ji��n)�εİяęC(j��)��ַ�͔�(sh��)��(j��)���_(k��i)��
��(d��ng)���C(j��)��Ҫ�����(g��)�ęC(j��)�е�һ��(g��)�l(f��)�͔�(sh��)��(j��)�r(sh��)��������Ҫ�l(f��)��Ŀ��(bi��o)�ęC(j��)�ĵ�ַ��ע����ַ�ֹ�(ji��)�c��(sh��)��(j��)�ֹ�(ji��)�Dz�ͬ�ģ��ڵ�ַ�ֹ�(ji��)�У���9λ��1������(sh��)��(j��)�ֹ�(ji��)�е�9λ��0����ַ�ֹ�(ji��)��(hu��)�|�l(f��)���ЏęC(j��)����ÿ�_(t��i)�ęC(j��)�z����յ���

��ַ�Ƿ��c����ƥ�䡣��ַƥ��ďęC(j��)�����SM2����(zh��n)����Ք�(sh��)��(j��)��δ����ַ���ďęC(j��)��SM2 ��횱������Ķ�ϵ�y(t��ng)��(hu��)���m(x��)������ͬ�r(sh��)���Խ��Ք�(sh��)��(j��)��.
���ö��C(j��)ͨ�Ų��E���£�
1. �O(sh��)�������O(sh��)��(���C(j��)�c�ęC(j��))�鴮��ģʽ2��3��
2. ���ЏęC(j��) SM2 λ�Þ�1��
3. ���C(j��)��ݔ�f(xi��)�h��
�C ��һ��(g��)�ֹ�(ji��)����ַ��Ŀ��(bi��o)�ęC(j��)��ַ (��9λ = 1)
�C ��һ��(g��)�ֹ�(ji��)����(sh��)��(j��)�� (��9λ = 0)��
4. ��(d��ng)Ŀ��(bi��o)�ęC(j��)���յ���һ��(g��)�ֹ�(ji��), ��?y��n)�?λ��(sh��)��(j��)��1���ЏęC(j��)���Д���Ŀ��(bi��o)�ęC(j��)���^������ַ������SM2 λ�ȴ����պ���Ĕ�(sh��)��(j��)�������ęC(j��)�t�^�m(x��)�����\(y��n)����

5. ���յ����Д�(sh��)��(j��)������ SM2 �� 1 �ȴ���һ��ַ��
SM2 ��ģʽ 0 �Ÿo(w��)Ч���� SM2 �� 1��ģʽ1�����ڙz�y(c��)��Ч��ֹͣλ��ͬ�r(sh��)������(hu��)�a(ch��n)���Д������Чֹͣλ�ѽ�(j��ng)������
13.8 �Ԅ�(d��ng)��ַ�R(sh��)�e
�Ԅ�(d��ng)��ַ�R(sh��)�e��������˶��C(j��)ͨӍ���ܣ����SUARTͨ�^(gu��)Ӳ�����^����(l��i)�R(sh��)�e�؄e�ĵ�ַ��Ϣ�ڽ��յı���������ԓ���ܿ��Թ�(ji��)ʡܛ���R(sh��)�e��ַ����ռ�õij�����g���H��(d��ng)�����R(sh��)�e��������ַ�r(sh��)����������λRIλ��Ո(q��ng)���Д�����(d��ng)���C(j��)ͨ������ʹ�ܕr(sh��)��SM2��λ������ʹ���Ԅ�(d��ng)��ַ�R(sh��)�e��
�����Ҫ���Ñ�������ģʽ1��ʹ���Ԅ�(d��ng)��ַ�R(sh��)�e���������@�N��������ֹͣλȡ���ھ�λ�Ĕ�(sh��)��(j��)λ���H��(d��ng)��������Ď���ַ�c������ַƥ�����Ч��ֹͣλ�r(sh��)��RI��λ��

ʹ���Ԅ�(d��ng)��ַ�R(sh��)�e���������Sһ��(g��)���C(j��)ͨ�^(gu��)�ęC(j��)��ַ�x�����cһ��(g��)��ׂ�(g��)�ęC(j��)ͨ�������ЏęC(j��)����ͨ�^(gu��)���V������ַ“(li��n)ϵ���Ѓɂ�(g��)���⹦�ܼĴ������ڶ��x�ęC(j��)��ַ SADDR�͏ęC(j��)��ַ�ڴaSADEN�� SADEN ���ڶ��xSADDR����Щλ��������Щλ�����P(gu��n)��. SADEN�ڴa�����cSADDR�ԡ�߉݋�c���ķ�ʽ�Ԅ�(chu��ng)��ÿ��(g��)�ęC(j��)�ġ�Given�� ��ַ��ʹ�� ��Given����ַ���S���ęC(j��)���R(sh��)�e��

 

���з��������f(shu��)��ԓ���ܵ��`�(y��ng)��
���� 1, �ęC(j��) 0��
SADDR = 11000000b
SADEN = 11111101b
Given = 110000X0b
���� 2, �ęC(j��) 1:
SADDR = 11000000b
SADEN = 11111110b
Given = 1100000Xb
�������������SADDR����ͬ����SADEN�Ĕ�(sh��)��(j��)���څ^(q��)�փɂ�(g��)�ęC(j��)���ęC(j��)0Ҫ��λ0�顱 ��������λ1���ęC(j��)1Ҫ��λ1�顱 ����λ0��������һ��(g��)�ęC(j��)0Ψһ�ĵ�ַ11000010B�����ڏęC(j��)1Ҫ��λ1��0��һ��(g��)�ęC(j��)1Ψһ�ĵ�ַ����1λ11000001b���ų��ęC(j��)0���@�ɂ�(g��)�ęC(j��)�����x����ͬһ�r(sh��)�g����ַλ0 = 0���ęC(j��)0���͵�1λ= 0���ęC(j��)1���������ʹ�ÏV����ַ(Boadcast address) 11000000b�Ϳ���ͬ�r(sh��)��ַ��
����(f��)�s��(y��ng)�ÿ������ų��ęC(j��)0֮�����x��ęC(j��)1��2��

���� 1, �ęC(j��) 0:
SADDR = 11000000b
SADEN = 11111001b
Given = 11000XX0b
���� 2, �ęC(j��) 1:
SADDR = 11100000b
SADEN = 11111010b
Given = 11100X0Xb
���� 3, �ęC(j��) 2:
SADDR = 11000000b
SADEN = 11111100b
Given = 110000XXb
���������������3��(g��)�ęC(j��)�ķքe���ڵ�ַ�ĵ�3λ���ęC(j��)0Ҫ��λ0 = 0��������11100110b��Q���ęC(j��)1Ҫ��λ1= 0��������11100101b�R(sh��)�e���ęC(j��)2Ҫ��λ2= 0���䪚(d��)���ĵ�ַ��11100011b��Ҫ�x��ęC(j��)0��1��ȥ���ęC(j��)2����ʹ�õ�ַ11100100b����?y��n)����DZ�Ҫ�ĵ?λ= 1��(l��i)�ų��ęC(j��)2��
ÿ��(g��)�ęC(j��)�ġ��V������ַ��Ӌ(j��)����ͨ�^(gu��)߉݋��SADDR��SADEN���Y(ji��)���е���λ��ҕ�顰�o(w��)�P(gu��n)��λ�����磺

SADDR = 01010110b
SADEN = 11111100b
Broadcast = 1111111Xb
ʹ�á��o(w��)�P(gu��n)��λ���ڏV��ģʽ�����ṩ���`��đ�(y��ng)�á����^(gu��)�ڴ󲿷֑�(y��ng)�×l�������V����ַȫ��ʹ��FFH��
��(f��)λ����SADDR��SADEN��ʼ����00H���@����(du��)�����С��o(w��)�P(gu��n)����ַ�a(ch��n)��һ��(g��)��Given����ַ���Լ�һ��(g��)���V������ַ��(du��)��(y��ng)����XXXXXXXXb��ַ�����С��o(w��)�P(gu��n)��λ�����@����Ч�ؽ�ֹ���Ԅ�(d��ng)��ַģʽ�����S΢���������֘�(bi��o)��(zh��n)����ģʽ����ʹ���@��(g��)���ܡ�

N76E003��������(qi��ng)��51��(n��i)�ˆ�Ƭ�C(j��)��һ���@�N�����ṩ��(ji��n)�εĴ���UARTʹ�õġ�
��ô�҂��ȿ��@��(g��)��Ƭ�C(j��)һ���ׂ�(g��)������
�փ�(c��)���ᵽ��N76E003�����ɂ�(g��)�߂�����(qi��ng)���Ԅ�(d��ng)��ַ�R(sh��)�e�͎��e(cu��)�`�z�y(c��)���ܵ�ȫ�p�����ڡ�Ҳ����2��(g��)�������քe�д���0�ʹ���1.
�҂�Ҳ���ԏ��փ�(c��)�l(f��)�F(xi��n)ÿ��(g��)���ھ߂�4�Nģʽ��Ҋ(ji��n)�±�

�ٷ����ṩ�����́�(l��i)�����@�ɂ�(g��)������ȫ������õ�ģʽ1
����0����ʹ�ö��r(sh��)��1���߶��r(sh��)��3�a(ch��n)�������������ṩ�ˌ�(du��)��(y��ng)���հl(f��)����(sh��)
����1����ʹ�ö��r(sh��)��3�a(ch��n)�������������ṩ�ˌ�(du��)��(y��ng)���հl(f��)����(sh��)��
�����ϴ��Ҳ�ò�������ģʽ�ġ���Ҏ(gu��)�đ�(y��ng)���������������߀�](m��i)�����^(gu��)���ڵ�����ģʽ��
�����Ҫ�����ԅ����@��(g��)��(k��)����(sh��)�M(j��n)�Ќ�(du��)��(y��ng)�ļĴ����޸���

�P(gu��n)�ڲ����ʣ����ڶ��r(sh��)���IJ�����������

 

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

/******************************************************************************
 * FUNCTION_PURPOSE: Serial interrupt, echo received data.
 * FUNCTION_INPUTS : P0.7(RXD) serial input
 * FUNCTION_OUTPUTS: P0.6(TXD) serial output
 * Following setting in Common.c
 ******************************************************************************/
#if 0
//void InitialUART0_Timer1(UINT32 u32Baudrate)    //T1M = 1, SMOD = 1
//{
//        P06_Quasi_Mode;        
//        P07_Quasi_Mode;
//    
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    TMOD |= 0x20;    //Timer1 Mode1
//    
//    set_SMOD;        //UART0 Double Rate Enable
//    set_T1M;
//    clr_BRCK;        //Serial port 0 baud rate clock source = Timer1

// 
//#ifdef FOSC_160000
//    TH1 = 256 - (1000000/u32Baudrate+1);               /*16 MHz */
//#endif        
//    set_TR1;
//}
////---------------------------------------------------------------
//void InitialUART0_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
//{
//        P06_Quasi_Mode;
//        P07_Quasi_Mode;    
//    
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    set_SMOD;        //UART0 Double Rate Enable
//    T3CON &= 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
//    set_BRCK;        //UART0 baud rate clock source = Timer3

//#ifdef FOSC_160000
//    RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);          /*16 MHz */
//  RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);            /*16 MHz */
//#endif
//    set_TR3;         //Trigger Timer3
//}
#endif

/*******************************************************************************
 * FUNCTION_PURPOSE: Main function 
 ******************************************************************************/
void main (void)
{

#if 0    
    InitialUART0_Timer1(9600);           //UART0 Baudrate initial,T1M=0,SMOD=0
    while(1)
    Send_Data_To_UART0(0x55);
#else
        InitialUART0_Timer3(115200);
    while(1)
    Send_Data_To_UART0(0x55);
#endif
            
    
        
}
  
//void InitialUART0_Timer1(UINT32 u32Baudrate)    //T1M = 1, SMOD = 1
//{
//        P06_Quasi_Mode;        
//        P07_Quasi_Mode;
//    
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    TMOD |= 0x20;    //Timer1 Mode1
//    
//    set_SMOD;        //UART0 Double Rate Enable
//    set_T1M;
//    clr_BRCK;        //Serial port 0 baud rate clock source = Timer1

// 
//#ifdef FOSC_160000
//    TH1 = 256 - (1000000/u32Baudrate+1);               /*16 MHz */
//#endif        
//    set_TR1;
//}

 

 

SCON = 0x52; //01010010 SM0=0,SM1=1����ģʽһ��REN=1,���_(k��i)����0��ģʽ1��2��3ģʽ�µĽ��չ��ܡ�TI=1���ڰl(f��)���Д���(bi��o)־λ���ڰl(f��)�͵���(sh��)��(j��)���һλ����Ӳ����λ����(d��ng)����0�Д�ʹ��������(zh��)���Д����(w��)����ԓλ�����ܛ����(l��i)�����

 TMOD |= 0x20;    //Timer1 Mode2

set_SMOD;

#define set_SMOD PCON |= SET_BIT7

#define SET_BIT7        0x80

#define set_T1M     CKCON   |= SET_BIT4

#define set_BRCK T3CON |= SET_BIT5

#ifdef FOSC_160000
TH1 = 256 - (1000000/u32Baudrate+1); /*16 MHz */
#endif
#ifdef FOSC_166000
TH1 = 256 - (1037500/u32Baudrate); /*16.6 MHz */
#endif
set_TR1;
set_TI; //For printf function must setting TI = 1
}

 

��ʽ1�IJ�����=      ��   ��2^smod /32��*T1�����������  (��2^smod /32��*16000000)/(256-x)

ͨ�����ǹ̶�����һ�㶼�Ǹ���(j��)��ʹ�õIJ����ʁ�(l��i)�󶨕r(sh��)����ֵ��

TH1 = 256 - (1000000/u32Baudrate+1); 
256-TH1-1=1000000/u32Baudrate

u32Baudrate=1000000/(256-TH1-1)

set_TR1;

 


set_TI; //For printf function must setting TI = 1

void Send_Data_To_UART0 (UINT8 c)
{
    TI = 0;
    SBUF = c;
    while(TI==0);
}

 �����@��(g��)��һ��(g��)������ģʽ1��С����

#include <stdio.h>
#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_Define.h"

/******************************************************************************
 * FUNCTION_PURPOSE: Serial interrupt, echo received data.
 * FUNCTION_INPUTS : P0.7(RXD) serial input
 * FUNCTION_OUTPUTS: P0.6(TXD) serial output
 * Following setting in Common.c
 ******************************************************************************/
#if 0
//void InitialUART0_Timer1(UINT32 u32Baudrate)    //T1M = 1, SMOD = 1
//{
//        P06_Quasi_Mode;        
//        P07_Quasi_Mode;
//    
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    TMOD |= 0x20;    //Timer1 Mode1
//    
//    set_SMOD;        //UART0 Double Rate Enable
//    set_T1M;
//    clr_BRCK;        //Serial port 0 baud rate clock source = Timer1

// 
//#ifdef FOSC_160000
//    TH1 = 256 - (1000000/u32Baudrate+1);               /*16 MHz */
//#endif        
//    set_TR1;
//}
////---------------------------------------------------------------
//void InitialUART0_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
//{
//        P06_Quasi_Mode;
//        P07_Quasi_Mode;    
//    
//    SCON = 0x52;     //UART0 Mode1,REN=1,TI=1
//    set_SMOD;        //UART0 Double Rate Enable
//    T3CON &= 0xF8;   //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1)
//    set_BRCK;        //UART0 baud rate clock source = Timer3

//#ifdef FOSC_160000
//    RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);          /*16 MHz */
//  RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);            /*16 MHz */
//#endif
//    set_TR3;         //Trigger Timer3
//}
#endif

void DelayTime(UINT32 u32CNT)
{
    UINT32 i;
    i=u32CNT;
    while(i--);
    
    
}


/*******************************************************************************
 * FUNCTION_PURPOSE: Main function 
 ******************************************************************************/
void main (void)
{

#if 1    
    InitialUART0_Timer1(9600);                        //UART0 Baudrate from Timer1
    while(1)
        {
      Send_Data_To_UART0(0x33);
         
            Timer0_Delay1ms(500);//������500mS
        
        }
#else
        InitialUART0_Timer3(115200);                    //UART0 Baudrate from Timer3
    while(1)
        {
            Send_Data_To_UART0(0x55);
            Timer0_Delay1ms(500);   //������500mS
        }
#endif
            

        
        
}

 ����0���x���r(sh��)��3�򶨕r(sh��)��1���҂�?c��)ٿ�һ�£������?ģʽ��

ģʽ2��ȫ�p������ͨ��, ģʽ2��11λ�հl(f��)����(sh��)��(j��)����ʼλ��߉݋0����8λ��(sh��)��(j��)�����λ��ǰ������9λ��(sh��)��(j��)��TB8��RB8����ֹͣλ(߉݋1)�M������9λ����żУ�(y��n)λ����C(j��)ͨ�ŕr(sh��)�Á�(l��i)�^(q��)��?j��n)?sh��)��(j��)�͵�ַ����������ϵ�y(t��ng)�r(sh��)��l�ʵ�1/32 ��1/64���� SMODλ(PCON.7)��(l��i)���á��D13?3 ָʾ����ģʽ2�Ă�ݔ�r(sh��)����

������ģʽ�� Ҫ���ö��r(sh��)��1���r(sh��)���

#include "N76E003.h"
#include "SFR_Macro.h"
#include "Common.h"
#include "Delay.h"
#include "Function_define.h"

#define BUFFER_SIZE        16
UINT8  UART_BUFFER[BUFFER_SIZE],temp;
UINT16 u16CNT=0,u16CNT1=0;
bit riflag;


/**
 * FUNCTION_PURPOSE: serial interrupt, echo received data.
 * FUNCTION_INPUTS: P0.7(RXD) serial input
 * FUNCTION_OUTPUTS: P0.6(TXD) serial output
 */
void SerialPort0_ISR(void) interrupt 4 
{
    if (RI==1) 
    {                                       /* if reception occur */
        clr_RI;                             /* clear reception flag for next reception */
        UART_BUFFER[u16CNT] = SBUF;
        u16CNT ++;
                riflag =1;
    }
    if(TI==1)
    {
        clr_TI;                             /* if emission occur */
    }
}

/************************************************************************************************************
*    Main function 
************************************************************************************************************/
void main (void)
{
        P12_PushPull_Mode;
        P06_Quasi_Mode;
        P07_Quasi_Mode;
    
        SCON = 0xD0;            // Special setting the mode 3 and 
        TMOD |= 0x20;        //Timer1 Mode1
    
    set_SMOD;            //UART0 Double Rate Enable
    set_T1M;             //sys clk
    clr_BRCK;            //Serial port 0 baud rate clock source = Timer1
        TH1 = 256 - (1000000/115200+1);               /*16 MHz */
        set_TR1;
    
        set_RB8;                    //This bit is for setting the stop bit 2 high/low status, 
    
        clr_TI; 
    set_ES;           //enable UART interrupt
    set_EA;           //enable global interrupt

    while(1)
        {
            if (riflag)
            {
                P12 = ~P12;        //In debug mode check UART_BUFFER[u16CNT] to check receive data
                riflag = 0;
            }
        }
    
}

 

����(l��i)���Ǵ���һ����(du��)�ڴ���1��ֻ�в��ö��r(sh��)��3����Ψһ�ĕr(sh��)�Դ��

 

#include "N76E003.h"
#include "Common.h"
#include "Delay.h"
#include "SFR_Macro.h"
#include "Function_define.h"

#define BUFFER_SIZE        16
UINT8  UART_BUFFER[BUFFER_SIZE],temp;
UINT16 u16CNT=0,u16CNT1=0;
bit riflag;

/******************************************************************************
 * FUNCTION_PURPOSE: Serial port 1 interrupt, echo received data.
 * FUNCTION_INPUTS : P0.2(RXD) serial input
 * FUNCTION_OUTPUTS: P1.6(TXD) serial output
 * Following setting in Common.c
 ******************************************************************************/
#if 0
//void InitialUART1_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
//{
//        P02_Quasi_Mode;        //Setting UART pin as Quasi mode for transmit
//        P16_Quasi_Mode;        //Setting UART pin as Quasi mode for transmit
//    
//      SCON_1 = 0x50;       //UART1 Mode1,REN_1=1,TI_1=1
//    T3CON = 0x08;       //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1
//        clr_BRCK;
//    
//#ifdef FOSC_160000
//        RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);          /*16 MHz */
//        RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);            /*16 MHz */
//#endif
//#ifdef FOSC_166000
//        RH3    = HIBYTE(65536 - (1037500/u32Baudrate));              /*16.6 MHz */
//        RL3    = LOBYTE(65536 - (1037500/u32Baudrate));                /*16.6 MHz */
//#endif
//    set_TR3;         //Trigger Timer3
//}
#endif

void SerialPort1_ISR(void) interrupt 15 
{
    if (RI_1==1) 
    {                                       /* if reception occur */
        clr_RI_1;                             /* clear reception flag for next reception */
        UART_BUFFER[u16CNT] = SBUF_1;
        u16CNT ++;
                riflag =1;
    }
    if(TI_1==1)
    {
        clr_TI_1;                             /* if emission occur */
    }
}


/****************************************************************************************************************
 * FUNCTION_PURPOSE: Main function 
  
 !!! N76E003 UART1 pin also occupied by debug pin, 
 please remove Nu-link or not in debug mode to test UART1 function.

 External UART1 connect also disturb debug download

 ***************************************************************************************************************/
void main (void)
{
    P12_PushPull_Mode;        // For I/O toggle display
    
#if 0    
//for Simple use UART1 transmit out
        InitialUART1_Timer3(115200);        
    while(1)
    Send_Data_To_UART1(0x55);
        
#else            
// For interrupt setting check receive 
        InitialUART1_Timer3(115200);
        set_ES_1;                    //For interrupt enable
        set_EA;
        
        while(1)
        {
            if (riflag)
            {
                    P12 = ~ P12;            //Receive each byte P12 toggle, never work under debug mode
                    riflag = 0;
            }
        }

#endif
          
        
}
void InitialUART1_Timer3(UINT32 u32Baudrate) //use timer3 as Baudrate generator
{
        P02_Quasi_Mode;        //Setting UART pin as Quasi mode for transmit
        P16_Quasi_Mode;        //Setting UART pin as Quasi mode for transmit
    
      SCON_1 = 0x50;       //UART1 Mode1,REN_1=1,TI_1=1
    T3CON = 0x08;       //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1
        clr_BRCK;
    
#ifdef FOSC_160000
        RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);          /*16 MHz */
        RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);            /*16 MHz */
#endif
#ifdef FOSC_166000
        RH3    = HIBYTE(65536 - (1037500/u32Baudrate));              /*16.6 MHz */
        RL3    = LOBYTE(65536 - (1037500/u32Baudrate));                /*16.6 MHz */
#endif
    set_TR3;         //Trigger Timer3
}
SCON_1 = 0x50;       //UART1 Mode1,REN_1=1,TI_1=1

 T3CON = 0x08;       //T3PS2=0,T3PS1=0,T3PS0=0(Prescale=1), UART1 in MODE 1

 

 

 

 

#ifdef FOSC_160000
        RH3    = HIBYTE(65536 - (1000000/u32Baudrate)-1);          /*16 MHz */
        RL3    = LOBYTE(65536 - (1000000/u32Baudrate)-1);            /*16 MHz */
#endif
#ifdef FOSC_166000
        RH3    = HIBYTE(65536 - (1037500/u32Baudrate));              /*16.6 MHz */
        RL3    = LOBYTE(65536 - (1037500/u32Baudrate));              /*16.6 MHz */
#endif
  set_TR3;         //Trigger Timer3

 

 

 set_ES_1;                    //For interrupt enable
        set_EA;

����1ֻ���ö��r(sh��)��3������0ֻ�������r(sh��)��1��3�����Ǵ���0ģʽ��ֻ���ö��r(sh��)��1������������ģʽ����

߀��һ��(g��)���^��Ҫ�Ć�(w��n)�}������ICP��䛵ĕr(sh��)�����c����һ���غϵ������������_��(f��)�õ��P(gu��n)ϵ�����Դ��ڹ��ܰl(f��)�����Õr(sh��)���͕�(hu��)���F(xi��n)��䛲��M(j��n)ȥ����r���@�r(sh��)ֻ��Ҫ׌�����հl(f��)���˔�(sh��)��(j��)���ܟ�䛳�������

“(li��n)ϵ��ʽ0755-82591179

���棺0755-82591176

�]�䣺vicky@yingtexin.net

��ַ�����������A�^(q��)���νֵ����δ��973�f(w��n)����(r��n)�S��(chu��ng)�I(y��)�@A��2��A08