c语言编程:8051单片机系统的时钟为11.0592,把0~99从串行口输出。 3.若8051的晶振频率fosc为11.0592MHz,串行...

51\u5355\u7247\u673a\u4e2d\uff0c\u901a\u8fc7\u4e32\u884c\u53e3\uff0c\u5c0626\u4e2a\u82f1\u6587\u5b57\u6bcd\u53d1\u9001\u51fa\u53bb\u3002\u5df2\u77e5\u5355\u7247\u673a\u65f6\u949f\u9891\u7387\u4e3a11.0592MHZ\uff0c\u8981\u6c42\u91c7\u7528\u4e32\u53e3\u65b9\u5f0f1

\u4f60\u597d\uff01\u662f\u7528\u7684\u5f00\u53d1\u677f\u8fd8\u662f\u4eff\u771f\u8f6f\u4ef6\uff0c\u53d1\u4e00\u4e0b\u539f\u7406\u56fe

\u4e32\u884c\u53e3\u5de5\u4f5c\u5728\u65b9\u5f0f1\uff1a
1\u3001\u6ce2\u7279\u7387=2\u7684SMOD\u6b21/32*\u5b9a\u65f6\u5668T1\u7684\u6ea2\u51fa\u7387\uff1b
2\u3001\u5b9a\u65f6\u5668T1\u7684\u6ea2\u51fa\u7387=\u8ba1\u6570\u901f\u7387/(256-X)=fosc/12/(256-X);
\u5c062\u4ee3\u51651\u5f97
3\u3001\u6ce2\u7279\u7387=2\u7684SMOD\u6b21/32*fosc/12/(256-X);
\u5c06\u4f60\u7684\u53c2\u6570\u4ee3\u51653\u5f97
4800=2\u76840\u6b21\u65b9/32*11059200/12/(256-X);
4800=1/32*11059200/12/(256-X);
256-X=11059200/32/12/4800=6;
X=256-6=250=0xFA;
X\u5373\u4e3aTH1\u521d\u503c

#include <reg51.h>

#define XTAL 11059200 // CPU晶振频率
#define baudrate 9600 // 通信波特率
#define uchar unsigned char
#define uint unsigned int
char aa, bb = 0;
//-----------------------------------------------------------
void main(void)
{
PCON = 0x00; // 波特率不倍增.
SCON = 0x50; // 设定串行口工作方式.
TMOD = 0x21; // T1定时方式2, 用于产生波特率.
// T0定时方式1, 用于定时.
TL1 = (uchar)(256 - (XTAL / (384L * baudrate))); // T1赋初值.
TH1 = (uchar)(256 - (XTAL / (384L * baudrate)));
TR1 = 1; // 启动定时器1
TL0 = (65536 - 4608) % 256; //[email protected]
TH0 = (65536 - 4608) / 256;
TR0 = 1; // 启动定时器0
ET0 = 1;
EA = 1; // 中断总允许.
while(1);
}
//-----------------------------------------------------------
void T0_INT() interrupt 1
{
TL0 = (65536 - 9216) % 256; //[email protected]
TH0 = (65536 - 9216) / 256;
aa++;
aa %= 2;
if (aa == 0) {
SBUF = (bb / 10) * 16 + (bb % 10);
bb++;
bb %= 100;
}
}
//-----------------------------------------------------------

//16进制发送的100个数,接收用16进制显示
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar a;
void delay_main(uint z)//-----------------主延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void send_char_com( unsigned char ch)
{
ES=0;
TI=0;
SBUF=ch;
while (!TI );
TI= 0 ;
ES=1 ;
}

void main(void)
{
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1定时方式2
PCON=0x00; //cup正常工作
TCON = 0x50; //设定时器1开始计数
TH1 = 0xfd; // 9600 11.0592MHz 1200波特率e8
TL1 = 0xfd;
TI = 1;//发送数据标志
TR1 =1; //启动定时器1
ES=0;
EA=1;
while(1)
{

if (a==100)
{a=0;
delay_main(1000);

}
send_char_com(a);
delay_main(10);
a=a+1;

}
}

  • c璇█缂栫▼:8051鍗曠墖鏈虹郴缁鐨勬椂閽熶负11.0592,鎶0~99浠庝覆琛屽彛杈撳嚭銆俖鐧惧害...
    绛旓細include <reg51.h> define XTAL 11059200 // CPU鏅舵尟棰戠巼 define baudrate 9600 // 閫氫俊娉㈢壒鐜 define uchar unsigned char define uint unsigned int char aa, bb = 0;//--- void main(void){ PCON = 0x00; // 娉㈢壒鐜囦笉鍊嶅.SCON = 0x50; // 璁惧畾涓茶鍙e伐浣滄柟寮.TMOD = ...
  • 鐢C璇█缂栧啓8051鍗曠墖鏈绋嬪簭
    绛旓細/ /* MCU: AT89S52 /* MCU-crystal: 12M /* Version: 01 /* Last Updata: 2009-2-21 /* Author:/* Description:/* 浣跨敤瀹氭椂鍣0,瀹氭椂涓柇2ms涓娆″鏁扮爜绠℃樉绀烘壂鎻忥紱/* 涓変釜浣嶇瑕佷互鎵弿鏂瑰紡鏄剧ず锛屼娇鐢ㄥ叡闃崇锛岃鏁伴熷害涓1S锛/* 娈礎-H鎺ュ埌P0.1...7锛屼綅閫変负 P1.0,1,2锛/* 娴佹按...
  • 姹傚ぇ绁炲府鎴戠湅涓,鐢C璇█缂栫▼,鍗曠墖鏈鏂归潰鐨8051绯诲垪銆
    绛旓細include<REG52.h> sbit LED1=P0^0;sbit LED2=P0^1;sbit LED3=P0^2;sbit LED4=P0^3;sbit LED5=P0^4;sbit LED6=P0^5;sbit LED7=P0^6;sbit LED8=P0^7;sbit K1=P3^3;sbit K2=P3^5;void delay(){ unsigned int x,y;gor(x=0;x<100;x++)for(y=0;y<100;y++);} void ...
  • 8051鍗曠墖鏈篶璇█缂栦竴涓绋嬪簭 8涓寜閿寜涓嬫樉绀虹浉搴1鍒8
    绛旓細8 涓嫭绔嬫寜閿紵include<reg51.h> define uchar unsigned char define uint unsigned int uchar i;uchar code tab[]={ 0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ };sbit key1=P1^0...
  • 鍗曠墖鏈8051鎬庝箞缂栫▼?
    绛旓細1銆佷笅涓猭eil3杞欢锛屾柊寤哄伐绋嬩箣鍚庯紝鏂板缓鏂囦欢锛屽啓鏂囦欢鍚嶇殑鏃跺欙紝鍐.asm鍚庣紑鐨勫氨鏄啓姹囩紪璇█锛屽啓.c鍚庣紑鐨勫氨鏄啓C璇█銆2銆佽嚦浜庢庝箞缂栫▼锛鍗曠墖鏈虹紪绋锛岄噸鐐瑰氨鏄帉鎻″崟鐗囨満鏈夊摢浜汭/o鍙o紝鍝簺瀵勫瓨鍣紝鍝簺鐗规畩瀵勫瓨鍣ㄣ3銆佹帹鑽愮湅涓涓嬭棰戙婂崄澶╁浼氬崟鐗囨満銆嬶紝鎼滀竴涓嬮兘鏈夌殑锛屽鍒濆鑰呴潪甯告湁甯姪銆4銆佸彟澶栬ˉ鍏...
  • 8051鍗曠墖鏈鐨勬眹缂绋嬪簭缂栫▼闂!!!
    绛旓細6Mhz,涔熷氨鏄寚浠ゅ懆鏈熸槸2us,0.5ms闇瑕250涓鏁,250<256,涓轰簡閫熷害鍜屾晥鐜,鎴戜滑璁╁畾鏃跺櫒1宸ヤ綔鍦ㄨ嚜鍔ㄩ噸杞芥ā寮忎笅,涔熷氨鏄ā寮2;C璇█鏁翠釜绋嬪簭缂栫▼濡備笅;include <reg52.h> bit P1_2_Turn_Cnt = 0; //---鐢ㄤ簬P1.2鐨勮鏁扮炕杞,鍥犱负鍙湁涓ゆ,澶у彲涓嶅繀鐢╱nsigned char绫诲瀷鐨 unsigned char P1_3_Turn...
  • 瀹屽叏鎵嬪唽--51鍗曠墖鏈篊璇█寮鍙戣瑙e唴瀹圭畝浠
    绛旓細杩欐湰璇﹀敖鐨勬寚鍗楁繁鍏ユ祬鍑哄湴鎺㈣浜8051鏍稿績鍗曠墖鏈虹殑浣撶郴鐭ヨ瘑鍜屽紑鍙戠瓥鐣ャ備互ATMEL鍏徃鍑哄搧鐨凙T89S51鍗曠墖鏈轰负渚嬶紝璇︾粏璁茶В浜嗗崟鐗囨満鍦宓屽叆寮忕郴缁涓殑瀹為檯搴旂敤锛屽挨鍏跺叧娉ㄤ簡鍏跺疄鐢ㄦу拰閫氱敤鎬с傚叏涔﹀垎涓13涓珷鑺傦紝娑电洊浜嗗崟鐗囨満鐨勫熀纭姒傚康锛屾繁鍏ヨВ鏋愪簡8051鍐呮牳缁撴瀯锛屼互鍙婂崟鐗囨満鐨勬眹缂栦笌C璇█缂栫▼鎶宸с傚畠杩樻兜鐩栦簡鍗曠墖鏈虹殑...
  • 璋佽兘甯垜鐢ㄤ笅闈㈣繖鍘熺悊鍥,鐢C璇█缁8051鍗曠墖鏈虹紪绋璁╄繍鏀捐緭鍑洪鐜囦负浜ゆ祦...
    绛旓細绋嬪簭鐢ㄥ惊鐜粨鏋 鍒嗘瓒婂锛屽畠灏辫秺鎺ヨ繎姝e鸡娉㈠舰 鎴戝ぇ姒傜粰浣犲啓涓 浣犲畬鍠勪笅 include<reg51.h> include<absacc.h> void delay();void code abc[ ]={杩欓噷鍐欎綘绠楀嚭鏉ョ殑涓绯诲垪鐨勫紏锛泇oid main(){ unsigned char i=0;while(1){ for锛坕=0;i<16;i++锛墈 XBYTE[0xA000]=abc[ i ]; i++...
  • 8051鍗曠墖鏈鍜孉DC0809 杩炴帴鐨C璇█缂栫▼
    绛旓細涔熷彲浠ュ皢ADC0809鐨勫畬鎴愬紩鑴氭帴鍒鍗曠墖鏈鐨勫閮ㄤ腑鏂紩鑴氫笂,杩欐牱灏卞彲浠ュ湪涓柇涓鍙.浠g爜鑷繁鎵句笅鍚,缃戜笂寰堝鐨.杩欎釜缁欎綘鍙傝:define voldata P2 sbit adra=P0^0;sbit adrb=P0^1;sbit adrc=P0^2;sbit ale=P0^3;sbit st=P0^4;sbit eoc=P0^5;sbit oe=P0^6;unsigned char getvol(unsigned char ...
  • 濡備綍鐢c璇█缂栧啓8051鍗曠墖鏈闊充箰绋嬪簭
    绛旓細uchar code jie7[8]={0,12,14,16,17,19,21,23}; //C璋冪殑7涓 diao=*song;for(i=0,i1=0;;){ gaodi=0; //楂樹綆=0 banyin=0;//鍗婇煶=0 yinchang=4;//闊抽暱1鎷 if((*(song+i)=='|') || (*(song+i)==' ')) i++;//鎷嶅瓙闂撮殧鍜屼竴涓┖鏍艰繃婊 switch(*(song+i)){...
  • 扩展阅读:学编程一年大概多少钱 ... cnc培训班大概多少钱 ... 少儿编程是学什么的 ... 免费自学编程的app ... cnc编程快速自学 ... 吓人的编程代码 ... 小学生学python还是c++ ... 编程必背100个代码 ... 年轻人做cnc有出息吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网