我抄了一個用按鍵控制的串口發送程式,然后把它改成了每隔著2s發送,但是仿真不成功
uj5u.com熱心網友回復:
#include <reg51.h>#include <intrins.h>#define uchar unsigned char #define uint unsigned intunsigned char flag, tmp, n;unsigned char code name[]={"successful"};void Init(void); bit key_scan(); uint count2s=0; void key_event(); void delayms(unsigned char ms); void send_data(unsigned char txd); main(){ Init(); TR1 = 1; n='d'; while(1) { if(key_scan()) ? { key_event();//發送字串d delayms(100)//延時100ms flag=0; } }}void Init(void){ TMOD = 0x21; //定時器1作業在八位自動裝載,定時器0為16為計時器 TH1 = 0xFd; TL1 = 0xFd; SCON = 0x50; PCON&= 0xef; TH0 = (65535 - 10000)/256;//計時10ms TL0 = (65535 - 10000)%256; EA=1; ET0=1; TR0=1; TR1=1; }bit key_scan() { if(count2s==1); count2s=0; flag=1; return(flag); }void key_event(){ if(flag==1) { send_data(n); }}void send_data(unsigned char txd){ SBUF = txd; while(!TI); TI = 0; }void delayms(unsigned char ms) { unsigned char i; while(ms--) { for(i = 0; i < 120; i++); }} void Timer0() interrupt 1{ TH0 = (65535 - 10000)/256; TL0 = (65535 - 10000)%256; count10ms ++; if (count10ms==200) //計時2s { count10ms = 0; count2s=1; } }轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/130790.html
標籤:單片機/工控
上一篇:請問各位大神們,L7805CV輸出電壓為6.4V是芯片壞了嗎?
下一篇:loto虛擬示波器的簡單使用心得
